我有一个 PowerShell 脚本,它读取作业名称和触发器的 csv 文件,然后使用 Set-ScheduledTask cmdlet 更新任务计划程序上的作业触发器。我能够更新作业的触发器。但很少有任务以最高权限运行。我的脚本失败,显示“访问被拒绝”
下面是我使用的代码:
$user= "SYSTEM\serviceaccount" # Specify the account to run the script
$password="password"
$mySettings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
$pricipalSettings= New-ScheduledTaskPrincipal -UserId $user -LogonType Password -RunLevel Highest
Set-ScheduledTask -TaskPath $taskPath -TaskName $jobName -User $user -Password $password -Trigger $TriggerFinal -Settings $mySettings
以下是我遇到的错误
Set-ScheduledTask : Access is denied.
At C:\UpdateTriggers.ps1:50 char:9
+ Set-ScheduledTask -TaskPath $taskPath -TaskName $jobName -Trigger $Trigg ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (PS_ScheduledTask:Root/Microsoft/...S_ScheduledTask) [Set-ScheduledTask], CimException
如果需要任何详细信息,请告诉我。
为了获得
DOMAIN
,您只需在CMD中执行以下操作:echo %userdomain%
此脚本创建一个具有最高级别权限的任务计划程序。
$User= "DOMAIN\user"
$Trigger = New-ScheduledTaskTrigger -Once -At $TriggerInfo
$Action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument "-NonInteractive -NoLogo -NoProfile -File c:/Users/user/documents/script.ps1"
Register-ScheduledTask -TaskName "TaskScheduler" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force
检查这个:
-RunLevel Highest –Force