PowerShell Start-Process:因错误而无法执行该命令:拒绝访问。

6

我正在尝试使用给定的凭据从PowerShell脚本中运行start-process。然而,该命令失败,并显示以下错误:

Start-Process : This command cannot be executed due to the error: Access is denied  

这里是完整的错误日志:
18-Jun-2015 11:48:54    Start-Process : This command cannot be executed due to the error: Access is den
18-Jun-2015 11:48:54    ied.
18-Jun-2015 11:48:54    At C:\Windows\system32\config\systemprofile\AppData\Local\Temp\PRISMA-AMR-JOB1-
18-Jun-2015 11:48:54    87-ScriptBuildTask-8569094554411403512.ps1:38 char:18
18-Jun-2015 11:48:54    +     Start-Process <<<<  C:\Windows\System32\cmd.exe -arg "/C" -Credential $cr
18-Jun-2015 11:48:54    edential
18-Jun-2015 11:48:54        + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOp 
18-Jun-2015 11:48:54       erationException
18-Jun-2015 11:48:54        + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.C 
18-Jun-2015 11:48:54       ommands.StartProcessCommand

以下是错误的PowerShell调用示例:

以下是错误的PowerShell调用示例:

Start-Process C:\Windows\System32\cmd.exe -arg "/C" -Credential $credential

如果我在脚本执行的机器上使用适当的凭据打开命令提示符,则运行 cmd /C 正常。但是,如果是代表 start-process 运行的 PowerShell 脚本,则会失败。
也许我应该说一下,当我手动以目标凭据运行命令提示符时,我已登录为管理员,而 PowerShell 看起来是在系统帐户下运行。
看起来像是某些权限出了问题...你有什么想法吗?
编辑: 从https://serverfault.com/questions/185813/which-ad-permission-is-required-to-allow-impersonation-of-an-account/193717#193717中所说的, 我检查了本地策略 -> 用户权限分配中的模拟权限。系统存在,并且为了完整起见,我还添加了计算机帐户。重新启动。但运气不佳,问题依然存在!

检查您的凭据是否有效。说“开始记事本”。还要检查在运行计划任务时使用了哪些凭据。 - Vesper
@Vesper,我检查了脚本使用的凭据和用户名和密码的值都正确设置了。正如所说,运行PowerShell脚本的机器上使用的凭据是计算机帐户。这可能是错误的原因吗? - John-Philip
是的,很可能是因为显示cmd窗口的默认屏幕是系统本地的“安全”桌面,这被视为“权限提升”的安全错误,因此被禁止。尝试将用户凭据保存在该任务中,然后再试一次。 - Vesper
@Vesper,不确定您的意思。然而,我已经在启动进程调用中添加了-NoNewWindow参数,但没有更多的运气。 - John-Philip
我已经说过,你应该在Windows任务管理器中更改任务,使其不在本地系统下运行。 - Vesper
1个回答

13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接