2010-01-04 6 views
9

Kann mir jemand sagen, wie eine geplante Aufgabe erstellen Powershell verwenden, die als das lokale System oder lokalen Dienst laufen?Powershell - Erstellen Sie geplante Tasks ausgeführt wird als lokales System/Service

Alles funktioniert gut, außer dem Aufruf von ITaskFolder.RegisterTaskDefinition().

Wenn ich pass in $ null oder „“, als die Anruf Bomben sagen Benutzername oder Passwort ungültig. Irgendwelche Gedanken“

$ Rootfolder.RegisterTaskDefinition ("Test", $ Taskdef, 6, "LOCAL SERVICE", "", 3)

Antwort

2

Ich glaube, Sie müssten "NT AUTHORITY \ Localservice"verwenden, wie der Benutzername

Güte,

Dan

5

Dieser Codeausschnitt wird die PowerShellPack ‚s Taskplaner-Modul planen Sie eine Aufgabe ausgeführt werden soll als SYSTEM sofort verwenden.

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

Dank Medien. Ich werde das morgen überprüfen. – devlife

3

Für diejenigen, die Powershell 3.0 auf Windows 8 oder Windows Server 2012, neue Cmdlets lassen Sie es auf einfache Art und Weise tun können, wenn die geplante Aufgabe mit dem Cmdlet Register-ScheduledTask und als Argument -User "System"

Registrierung

Hier eine geplante Aufgabe vollständig mit PS erstellt ist, ist sein Zweck ein Dienst Mein Service neu zu starten, das Konto System, 3 Minuten nach dem System begonnen hat:

$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" 

Hinweis: Sie müssen Powershell als Administrator für dieses Skript ausführen.

+0

Ich bekomme nur: Register-ScheduledTask: Zugriff verweigert. In Zeile: 7 Zeichen: 1 + Register-ScheduledTask -Action $ action -Trigger $ trigger -TaskName $ Taskname -De ... + ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ + CategoryInfo: PermissionDenied: (PS_ScheduledTask: Wurzel/Microsoft/... S_ScheduledTask) [Register-ScheduledTask], CimException + VollständigQualifiedErrorId: HRESULT 0x80070005, Register-ScheduledTask –

+1

Macht nichts .... Sie müssen die Powershell-Eingabeaufforderung als Administrator ausführen lassen. –

+0

@ColinMackay Ich habe meine Antwort aktualisiert, um eine Anmerkung zum Ausführen des Skripts als Administrator hinzuzufügen. Glücklich, dass es dir geholfen hat und danke für deinen Kommentar – Djidiouf

Verwandte Themen