2010-01-04 8 views
9

Qualcuno può dirmi come creare un'operazione pianificata utilizzando PowerShell che viene eseguito come sistema locale o di servizio locale?PowerShell - Crea operazione pianificata per l'esecuzione del sistema/servizio come locale

Tutto funziona alla grande tranne la chiamata a ITaskFolder.RegisterTaskDefinition().

Se passo in $ null, o "", rispetto alle call bomb che dicono nome utente o password non validi. Ogni pensiero"

$ Rootfolder.RegisterTaskDefinition ("Test", $ taskdef, 6, "SERVIZIO LOCALE", "", 3)

risposta

2

penso che avrebbe bisogno di usare "NT AUTHORITY \ LocalService" come il nome utente

Gentilezza,

Dan

5

Questo frammento di codice utilizzerà moduli Utilità di pianificazione 's il PowerShellPack per pianificare un'operazione per l'esecuzione come sistema immediatamente:.

New-Task | 
    ForEach-Object { 
     $_.Principal.Id = "NTAuthority\SYSTEM" 
     $_.Principal.RunLevel = 1 
     $_ 
    } | 
    Add-TaskAction -Script { 
     "SystemTask" > C:\myTest.txt 
    } | 
    Add-TaskTrigger -OnRegistration | 
    Register-ScheduledTask SystemTask 
+0

Grazie Media. Lo controllerò domani. – devlife

3

Per coloro che possono utilizzare PowerShell 3.0 su Windows 8 o Windows Server 2012, nuovi cmdlet vi permetterà di farlo in modo semplice al momento della registrazione la vostra operazione pianificata con il cmdlet Register-ScheduledTask e come argomento -User "System"

Ecco un'operazione pianificata creata interamente con PS, il suo scopo è quello di riavviare un servizio il mio servizio, utilizzando l'account sYSTEM, 3 minuti dopo che il sistema ha iniziato:

$taskname = "Restart My Service" 
$taskdescription = "Restart My Service after startup" 
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' ` 
    -Argument '-NoProfile -WindowStyle Hidden -command "& Restart-Service -displayname \"My Service\""' 
$trigger = New-ScheduledTaskTrigger -AtStartup -RandomDelay (New-TimeSpan -minutes 3) 
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Minutes 2) -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1) 
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $taskname -Description $taskdescription -Settings $settings -User "System" 

NB: sarà necessario eseguire powershell come amministratore per quello script.

+0

Ho appena ricevuto: Register-ScheduledTask: accesso negato. Alla riga: 7 caratteri: 1 + Register-ScheduledTask -Action $ action -Trigger $ trigger -TaskName $ taskname -De ... + ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ + CategoryInfo: PermissionDenied: (PS_ScheduledTask: Root/Microsoft/... S_ScheduledTask) [Register-ScheduledTask], CimException + FullyQualifiedErrorId: HRESULT 0x80070005, Register-ScheduledTask –

+1

Non importa .... Devi avere il prompt dei comandi di PowerShell in esecuzione come amministratore. –

+0

@ColinMackay Ho aggiornato la mia risposta per aggiungere una nota bene sull'esecuzione dello script come amministratore. Felice che ti abbia aiutato e grazie per il tuo commento – Djidiouf

Problemi correlati