提问人:Helena Raia 提问时间:8/4/2021 更新时间:8/4/2021 访问量:623
如何使用 powershell 在 Azure 计算机上远程运行命令?
How can I run a command remotely on an Azure machine with powershell?
问:
我正在尝试运行命令
Invoke-Command -ComputerName AzMachine1 -Credential $Cred -ScriptBlock{Test-Path $path}
在 Azure 计算机上。但是,它会返回以下错误“连接到远程服务器 AzMachine1 失败,并显示以下错误消息:WinRM 客户端收到 HTTP 来自远程 WS-Management 服务的状态代码 504”。我已经检查了 WinRM 服务是否正常运行,并且一切正常。
我不确定命令 Invoke-Command 是否适用于 Azure 计算机。有人可以证实这一点吗?
我还研究了模块 Az.Compute 和命令
Invoke-AzVMRunCommand
以下哪个命令最适合远程运行命令 Test-Path?
答:
0赞
Matthew
8/4/2021
#1
可以在 Azure VM 上运行 PowerShell 远程命令,但需要进行一些配置。
请参阅Microsoft说明:https://learn.microsoft.com/en-us/azure/virtual-machines/windows/winrm
评论
0赞
Helena Raia
8/4/2021
我无法访问命令所需的某些参数,这使事情变得更加困难。但是,命令 Invoke-Command 不适用于 Azure 中的计算机是否正常?
0赞
Matthew
8/5/2021
为了说明这一点,Invoke-Command 可以在 Azure 中的 VM 上运行,前提是已在 Azure 中的 VM 上配置了 WinRM 服务,客户端和 Azure 之间的防火墙允许连接,并且 WinRM 客户端已正确配置。WinRM 的替代方法是 Invoke-AzVMRunCommand,它使用 CustomScriptExtension 在 VM 上脱机执行命令。提交要执行的脚本可以查询外部服务(例如:Azure 表存储或 Web 服务)以获取运行时参数值。
0赞
Helena Raia
8/6/2021
哦,好吧,我不确定 Invoke-Command 是否在 Azure VM 上工作,因为它返回此错误消息“WinRM 客户端从远程 WS-Management 服务收到 HTTP 状态代码 504”,你能帮我理解这意味着什么吗?我已经检查过了,服务运行正常。不知道为什么会发生这种情况是防火墙。感谢您的帮助!
0赞
Matthew
8/11/2021
如果收到 HTTP 504,则表示你正在连接到 Azure VM 上的 WinRM 服务,因此问题可能出在 WinRM 服务或客户端的配置上。
0赞
Helena Raia
8/12/2021
您认为重新配置 WinRM 会解决问题吗?
评论