使用PowerShell修改具有最高权限的任务的触发器

问题描述 投票:0回答:1

我有一个 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
    

如果需要任何详细信息,请告诉我。

powershell powershell-4.0 windows-task-scheduler
1个回答
1
投票

为了获得

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
© www.soinside.com 2019 - 2024. All rights reserved.