问题描述
我想通过Powershell创建任务,但出现此错误:
Register-ScheduledTask:访问被拒绝 在C:\ Users \ 4TL4S \ Documents \ Coding \ Bot_Dev \ juri_exc \ ui \ setup_bot_task.ps1:8 Zeichen:1
- Register-ScheduledTask“ Bot_Activation” -InputObject $ Task
-
db.response_graphs.aggregate( [ { $match : { "Response_measure" : "MasksMandatory" } },{ $project : { date_end: { $replaceAll: { input: "$date_end",find: "NA",replacement: "2020-08-01" }} } } ] )
- CategoryInfo:PermissionDenied:(PS_ScheduledTask:Root / Microsoft / ... S_ScheduledTask) [Register-ScheduledTask],CimException
- FullyQualifiedErrorId:HRESULT 0x80070005,Register-ScheduledTask
我认为这与“管理员”没有足够的权限有关...我该如何解决?是否可以将Task创建为System32?
这是脚本:
$Action = New-ScheduledTaskAction -Execute "cmd.exe"
$Trigger = New-ScheduledTaskTrigger -At "0am" -DaysOfWeek 1 -Weekly
$Principle = New-ScheduledTaskPrincipal "Administrator" -RunLevel Highest
$Settings = New-ScheduledTaskSettingsSet
$Task = New-ScheduledTask -Action $Action -Principal $Principle -Trigger $Trigger -Settings $Settings
Register-ScheduledTask "Bot_Activation" -InputObject $Task
解决方法
您需要使用“以管理员身份运行”选项来运行此提升的会话。
您可以将Start-Process
与参数-Verb
和参数runas
一起使用。看这个测试
Start-Process powershell -ArgumentList @'
$Action = New-ScheduledTaskAction -Execute "cmd.exe"
$Trigger = New-ScheduledTaskTrigger -At "0am" -DaysOfWeek 1 -Weekly
$Principle = New-ScheduledTaskPrincipal "Administrator" -RunLevel Highest
$Settings = New-ScheduledTaskSettingsSet
$Task = New-ScheduledTask -Action $Action -Principal $Principle -Trigger $Trigger -Settings $Settings
Register-ScheduledTask "Bot_Activation" -InputObject $Task
'@ -Verb runas