我有一个包含以下代码的脚本:
$secpasswd = ConvertTo-SecureString "Ukn545454" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("$env:USERDOMAIN\user1", $secpasswd)
invoke-command -ComputerName "MyW10comp" -ScriptBlock {Start-proccess -FilePath PowerShell.exe -Credential $using:mycreds}
我有8台计算机(其中一台也是w10,但也是32位的),并且在每个计算机上脚本运行良好,但是在其中的Windows 10 64位操作系统上,它说:
This command cannot be run due to the error: Access is denied.
+ CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException
+ FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand
+ PSComputerName : MyW10Comp
如果我在本地运行脚本,一切都会顺利进行! 我可以在计算机上检查什么以查看问题所在?
谢谢
答案 0 :(得分:0)
这听起来像a double-hop problem。我不明白,考虑到您的会话已在您的上下文中运行,为什么您会启动一个传递凭据的过程:
$cred = [pscredential]::new(
'domain\user',
('pass' | ConvertTo-SecureString -AsPlainText -Force)
)
Invoke-Command -ComputerName MyW10comp -Credential $cred -ScriptBlock {
Start-Process -FilePath cmd
}
此示例应解决您的问题。