J'ai une tâche onstartup que je veux exécuter automatiquement, que quelqu'un soit connecté ou non.
Je l'ai configuré comme Run whether user is logged in or not
, Do not store password1
et Run with highest privileges
, ce qui, je suppose, fonctionnerait, en utilisant le code ci-dessous:
schtasks /create /tn "My OnStartup Task" /TR "powershell blah.ps1" /sc ONSTART /f /NP /RL HIGHEST
Après avoir activé l'historique du planificateur de tâches, je reçois des erreurs comme:
Event ID: 104: Task Scheduler failed to log on "<Task Author>" . Failure occurred in "LsaLogonUser" . User Action: Ensure the credentials for the task are correctly specified. Additional Data: Error Value: 2147943711.
Event ID: 311: Task Scheduler failed to start Task Engine "" process due to an error occurring in "LUAIsElevatedToken" . Command="taskeng.exe" . Additional Data: Error Value: 2147943711.
Event ID: 101: Task Scheduler failed to start "\My OnStartup Task" task for user "<Machine>\<Task Author>". Additional Data: Error Value: 2147943711.
J'ai spécifiquement défini de ne pas stocker le mot de passe, mais les erreurs indiquent qu'il essaie d'utiliser le mot de passe. Je me souviens avoir lu quelque part que la case à cocher de stockage du mot de passe ne compte pas non plus pour "ne pas s'exécuter de manière interactive", ou quelque chose du genre. Quelqu'un pourrait-il m'orienter dans la bonne direction ici?
la source
Ma solution (notée ici pour aider les autres en plus de la réponse acceptée):
La tâche était exécutée sous un utilisateur local . Exécutez si l'utilisateur est connecté ou non coché; Ne stockez pas le mot de passe non coché.
Tout allait bien jusqu'à ce que nous renommions la machine - j'ai ensuite dû réaffecter l'utilisateur sous lequel le travail s'exécute pour être le même utilisateur - mais sous un autre ordinateur.
la source