Powershell-créer une tâche planifiée à exécuter en tant que système / service local
quelqu'un peut-il me dire comment créer une tâche programmée en utilisant powershell qui fonctionne comme système local ou service local?
Tout fonctionne bien sauf l'appel à ITaskFolder.RegisterTaskDefinition().
si je passe en $ null, ou "", que les callbombs disant nom d'utilisateur ou mot de passe invalide. Toutes les pensées"
$Rootfolder.Registrertaskdefinition ("Test", $Taskdef, 6, "LOCAL SERVICE","", 3)
3 réponses
je pense que vous devez utiliser "nt authority\localservice", comme le nom d'utilisateur.
Gentillesse,
Dan
cet extrait de code va utiliser le PowerShellPackPlanificateur de Tâches module pour programmer l'exécution d'une tâche en tant que SYSTÈME immédiatement:
New-Task |
ForEach-Object {
$_.Principal.Id = "NTAuthority\SYSTEM"
$_.Principal.RunLevel = 1
$_
} |
Add-TaskAction -Script {
"SystemTask" > C:\myTest.txt
} |
Add-TaskTrigger -OnRegistration |
Register-ScheduledTask SystemTask
Pour ceux qui peuvent utiliser PowerShell 3.0Windows 8 ou Windows Server 2012, de nouvelles applets de commande vous permettent de le faire de façon simple, lors de l'enregistrement de votre tâche planifiée avec l'applet de commande Register-ScheduledTask
et comme argument -User "System"
Voici une tâche planifiée créée entièrement avec PS, son but est de redémarrer un service Mon Service, en utilisant le compte système, 3 minutes après le démarrage du système:
$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: vous devrez exécuter powershell comme un administrateur pour ce script.