我有一个以SYSTEM身份运行的脚本,如果我尝试start-process notepad.exe
它运行良好。如果我添加-credentials $cred
,则显示拒绝访问。我传递的凭据具有本地管理员访问权限,那么为什么存在拒绝访问权限?使用powershell上的procmon我无法识别任何拒绝访问操作,我可以看到powershell访问notepad.exe并获得成功结果。
任何想法?
在一个论坛帖子中我读到,用-credentials作为SYSTEM执行命令是不可能的。是这样吗? 如果是的话,有没有解决办法?
在我的背景下,我使用软件分发,其中任何安装以SYSTEM身份运行,从那里我想以不同的用户身份执行powershell脚本。
答案 0 :(得分:1)
我找到了解决方案:
$secpasswd = ConvertTo-SecureString 'password' -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ('domain\user', $secpasswd)
Invoke-Command -ScriptBlock { Start-Process powershell c:\temp\mmc.ps1 -verb runas -wait} -ComputerName localhost -Credential $mycreds -Verbose
它不完全是我想要的,因为在这里你需要首先启用psremoting。但它就像一个解决方法。
任何想法如果没有invoke-command这是可能的,将不胜感激