无法在系统用户的PowerShell中运行exe文件

3
我正在尝试在 Windows-7 64 位电脑上从 PowerShell 脚本运行 exe。在此脚本中,我希望以另一个用户的身份运行 exe。当调用脚本的用户是实际用户时,它可以工作。但在我的情况下,这个 PowerShell 脚本将由系统用户账户执行,而对于系统用户,此脚本不起作用。这里是一个简单的代码,用于打开记事本。对于系统用户,此代码将失败。
$username = 'MyDomain\MyUser'
$password = 'mypswd'
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
Start-Process -Credential $cred  "notepad.exe"

我已将执行策略设置为无限制。当我以系统用户身份运行此脚本时,会出现以下错误:

Start-Process:由于错误:拒绝访问,无法执行此命令。 在D:\ temp \ trythis.ps1:4字符处 + Start-Process <<<< -Credential $cred "notepad.exe" + CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOp erationException + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.C ommands.StartProcessCommand

是否有任何方法可以以系统用户身份运行此脚本?

1个回答

0

这里最可能的问题是权限问题(我唯一能够重现您的问题的方法是为该帐户设置拒绝条目)。

我建议按照以下步骤确认权限是否正确。以下说明适用于Windows XP,SP3-请根据您的版本进行调整!

  1. 右键单击“notepad.exe”,然后单击属性
  2. 单击安全选项卡
  3. 单击高级按钮
  4. 单击有效权限选项卡
  5. 单击选择...按钮
  6. 输入要检查的帐户并确认该帐户具有适当的读取和执行权限。

我尝试了您的方法,但仍然遇到同样的问题。为了重现这个问题,我正在使用来自Sysinternals的psexec实用程序。我首先在命令提示符中运行此命令“psexec -i -s powershell”,然后在powershell提示符中输入问题中显示的代码。 - Manoj Attal
你是在使用 PsExec 远程执行吗?如果是的话,那么可能会涉及到不同的权限设置。如果不是的话,那么使用 PsExec 的目的是什么? - RB.
是的,我正在远程执行这个操作。实际上,这将由我们的集成服务器调用。 - Manoj Attal

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