我相信Register-ScheduledTask您可以指定-User "System"或执行以下操作:
$principal = New-ScheduledTaskPrincipal -UserId SYSTEM -LogonType ServiceAccount -RunLevel Highest
Run Code Online (Sandbox Code Playgroud)
我该怎么做Register-ScheduledJob?
此命令将运行本地管理员的上下文,因此它有权执行此操作。我只是在 cmdlet 中没有看到这个选项。
编辑:windows 是否通过设计使这成为不可能?如果我打开一个交互式 PS 会话作为系统(使用 psexec)并尝试创建一个计划作业,我会收到一个错误:
PS C:\Windows\system32> Register-ScheduledJob -Name systemsssss -ScriptBlock {'s
dfsdfsdfsd'}
Register-ScheduledJob : An error occurred while registering scheduled job
definition systemsssss to the Windows Task Scheduler. The Task Scheduler
error is: (32,4):UserId:.
At line:1 char:1
+ Register-ScheduledJob -Name systemsssss -ScriptBlock {'sdfsdfsdfsd'}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Microsoft.Power...edJobDefini
tion:ScheduledJobDefinition) [Register-ScheduledJob], ScheduledJobExceptio
n
+ …Run Code Online (Sandbox Code Playgroud)