我正在尝试配置PowerShell脚本,该脚本将在Windows任务计划程序中为多个服务帐户运行 . 我找到了一种方法来通过此链接Running PowerShell as another user, and launching a script中的第二个答案与给定用户一起运行PowerShell脚本 .

作为参考,这是PowerShell片段:

$username = 'userA'
$password = 'passwordA'

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword
Start-Process C:\BatchPath\MyBatch.bat -Credential $credential

现在,在Windows任务计划程序中,我配置了作业,在执行中我将其设置为运行Powershell.exe并附加参数'-ExecutionPolicy Bypass C:\ ScriptPath \ Script.ps1' . 如果此任务计划程序条目的用户配置为userA,则它可以正常工作 . 如果我在userB上配置任务调度程序条目,那么它将失败 . userA和userB都是计算机上的管理员 .

在第二种情况下,我希望脚本文件由userB启动,但PowerShell Start-Process会强制批处理文件作为userA运行 . 从观看任务管理器我看不到批处理文件中的作业已启动 .

这个例子有点肤浅,但在PowerShell脚本的最终形式中,它将运行具有不同服务帐户的不同批处理文件 .