【发布时间】:2015-05-11 06:42:12
【问题描述】:
现在我需要在远程机器上运行脚本来做一些部署工作:
Invoke-Command -ComputerName $hostName -Credential $cred -ScriptBlock $scriptBlock
如果 $hostName 是调用此命令的计算机,它会报告:
message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (myMachineName:String) [], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionStateBroken
无论是远程机器还是本地机器,我都想以统一的方式运行命令。
更新: 我正在使用 Azure 中的机器。此命令有效:
Invoke-Command -ComputerName XXX -Credential $cred -ScriptBlock $scriptBlock
但这个不是:
Invoke-Command -ComputerName XXX.cloudapp.net -Credential $cred -ScriptBlock $scriptBlock
有人可以帮忙吗?
【问题讨论】:
-
编写一个将包装
Invoke-Command的辅助命令行开关,检查目标计算机,如果是本地计算机,也许不要传递-ComputerName参数? -
也许我错过了一些东西,但我可以使用带有计算机名称的 invoke-command 作为调用此命令的计算机。我正在使用 3.0 版。
-
谢谢 n0rd 和 CB。我在 Azure 中使用 vm,并且已经更新了问题。
标签: powershell azure remoting