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)

10
demandé sur devlife 2010-01-04 19:46:36

3 réponses

je pense que vous devez utiliser "nt authority\localservice", comme le nom d'utilisateur.

Gentillesse,

Dan

2
répondu Daniel Elliott 2010-01-04 16:59:30

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
5
répondu Start-Automating 2010-01-04 23:00:45

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.

3
répondu Djidiouf 2016-07-25 00:49:02