【发布时间】:2019-09-19 16:02:28
【问题描述】:
所以我尝试使用 Invoke-Command 在 Azure 中的远程服务器上运行命令。为了测试,我使用了一个超级简单的脚本:
Invoke-Command -ComputerName MyServer -ScriptBlock { Write-Output "HI"}
我已经在一大堆其他配置相同的服务器上运行了这个命令(据我所知),它们都在一秒钟或更短的时间内运行。对于这个特定的服务器,它需要 2 分钟或更长时间。我不知道为什么。它最终会正确执行,但建立远程 pssession 需要很长时间。
我已经尝试/验证的一些事情:
- Powershell 版本在这台机器和其他机器上是相同的 (5.1.14393)。操作系统版本相同。
- 我已尝试完全禁用 Windows 防火墙,但不成功
- 我尝试使用显式凭据而不是 Kerberos
- 网络适配器设置/IP 4 设置在所有机器上都相同。服务器是否在同一个子网上都没有关系。
- 从问题机器我可以远程调用命令到其他机器就好了(
- 我尝试将 PSSessionOptions 设置为described here。
- 尝试使用 ISE 与命令行,没有区别
- 尝试使用 enter-pssession,没有区别
- 尝试在此服务器和其他服务器上使用 psexec。它可以工作,大约需要 20-30 秒,但在所有服务器(包括问题服务器)上都是一致的。
- 我已经重启了 WinRM 服务,重启了机器,在 Azure 中重新部署机器,没有骰子。
- DISM 和 SFC 修复映像和安装文件
据我所知,这台机器与它的“兄弟”是相同的,它是在相同的时间、以相同的方式、在相同的子网上、具有相同的路由规则设置的。唯一的区别是机器大小,但我查询了其他不同大小的机器,它们都按预期工作。
我没有想法。想法?
【问题讨论】:
-
我没有弄清楚这里的实际问题是什么,而是使用我们的标准运行手册创建了一个全新的 Azure VM(即它与当前的问题机器相同),并且调用命令脚本现在可以在~1 秒,就像其他功能机器一样。我还是不知道老家伙怎么了。
标签: performance powershell remote-access invoke-command