Estou tentando executar Register-ScheduledJob
de um script em execução como SYSTEM (de uma ferramenta de implantação externa), mas recebo um erro. Isso deve ser invocado inicialmente como SYSTEM devido à maneira como a ferramenta de implantação funciona.
Para reproduzir esse problema (requer o powershell.exe executando como SYSTEM), criei outro trabalho agendado da seguinte forma:
SYSTEM
powershell.exe
Register-ScheduledJob -name testjob -filepath c:\target.ps1 > C:\testjob.txt 2>&1
Note: if you want to reproduce this yourself, you'll also have to create
c:\target.ps1
as an empty file.
Esse trabalho pode ser executado a partir da interface do usuário do Agendador de tarefas e você pode ver a saída em c:\testjob.txt
.
Quando o script é executado em Register-ScheduledJob
, ele mostra o seguinte erro:
Register-ScheduledJob : An error occurred while registering scheduled job
definition testjob to the Windows Task Scheduler. The Task Scheduler error is:
(32,4):UserId:.
At line:1 char:1
+ Register-ScheduledJob -name testjob -filepath c:\target.ps1 > C:\testjob.txt ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Microsoft.Power...edJobDefini
tion:ScheduledJobDefinition) [Register-ScheduledJob], ScheduledJobExceptio
n
+ FullyQualifiedErrorId : CantRegisterScheduledJobDefinition,Microsoft.Pow
erShell.ScheduledJob.RegisterScheduledJobCommand
Até onde eu sei, isso tem alguma coisa como não ser capaz de criar um trabalho como o usuário SYSTEM. Eu não estou realmente preocupado com o que target.ps1
realmente executa como (por exemplo, não tem que ser SYSTEM), desde que seja uma conta que eu não precise gerenciar uma senha.
Meu script tem que ser invocado inicialmente como SYSTEM (de um serviço que está sendo executado como SYSTEM), então como posso usá-lo para criar um trabalho agendado?