Powershell Invoke-Command 在一台计算机上连接非常慢



所以我正在尝试使用Invoke-Command在Azure中的远程服务器上运行命令。为了测试,我使用了一个超级简单的脚本:

Invoke-Command -ComputerName MyServer -ScriptBlock { Write-Output "HI"}

我已经在一大堆配置相同的其他服务器上运行了此命令(据我所知(,它们都在一秒钟或更短的时间内运行。对于此特定服务器,需要 2 分钟或更长时间。我不知道为什么。它最终会正确执行,但建立远程 pssession 需要很长时间。

我尝试/验证过的一些事情:

  • Powershell 版本在此计算机和其他计算机上相同 (5.1.14393(。操作系统版本相同。
  • 我尝试完全禁用Windows防火墙,没有运气
  • 我尝试使用显式凭据而不是 Kerberos
  • 所有计算机上的网络适配器设置/IP 4 设置都相同。服务器是否位于同一子网中并不重要。
  • 从问题机器,我可以远程调用命令到其他机器就好了(<1 秒执行(。在有问题的机器上,调用命令本身需要 2+ 分钟
  • 我尝试使用此处所述的选项设置 PSSessionOptions。
  • 尝试使用ISE与命令行,没有区别
  • 尝试使用输入,没有区别
  • 已尝试在此服务器和其他服务器上使用psexec。它可以工作,大约需要 20-30 秒,但在所有服务器上都是一致的,包括有问题的服务器。
  • 我已经重新启动了 WinRM 服务,重新启动了计算机,在 Azure 中重新部署了计算机,没有骰子。
  • DISM和SFC修复映像和已安装的文件

据我所知,这台机器与它的"兄弟"相同,后者在相似的时间、相同的方式、相同的子网上设置,具有相同的路由规则。唯一的区别是机器尺寸,但我查询了其他不同尺寸的机器,它们按预期工作。

我没主意了。思潮?

我对此有类似的问题:命令似乎只是挂起。原来是代理。

在脚本中使用以下行绕过它:

netsh winhttp reset proxy

最新更新