在powershell中使用WinRM成功配置和侦听



我正在本地和远程计算机上使用命令提示符测试WinRM连接,我的问题分为两部分。

第一部分

我通过使用ping命令来ping测试TCP/IP连接:本地计算机和远程计算机的IP地址、默认网关和DNS服务器,它在本地和远程计算机上都能完美运行。

但是在使用WinRM命令进行测试时,我使用此命令来定位侦听器和地址

winrm e winrm/config/listener

它为我的本地机器提供了这个输出

Listener
Address = *
Transport = HTTP
Port = 5985
Hostname
Enabled = true
URLPrefix = wsman
CertificateThumbprint
ListeningOn =<IP Address>,127.0.0.1, ::1,fe80::100:7f:fffe%13,fe80::803:5e43:50ef:c50%11

但当我在远程机器上运行时,相同的命令会给我一个输出,除了之外,其他一切都一样

Listener[Source="GPO"]
.
.
.
ListeningOn=null

我想对它进行配置,使其正确侦听。

第二部分

当我在远程机器上一个接一个地运行这些命令时

winrm id -r:<machine name>
winrm get winrm/config -r:<machine name>
winrm get wmicimv2/Win32_Service?Name = WinRM -r:<machine name>

它给出一个WSMan故障,错误消息为:

The client cannot connect to the destination specified in the request. Verify
that the service on the destination is running and is accepting requests.Consult
the logs and documentation for WS-Management service running on the destination,
most commonly IIs or WinRM. If the destination is the WinRM service, run the 
following command on the destination to analyse and configure the WinRM service:
"winrm quickconfig". 

然而,当我在本地机器上运行时,同样的命令也能正确运行。

winrm id 
winrm get winrm/config
winrm get wmicimv2/Win32_Service?Name = WinRM

最多,我面临的所有问题都在我的远程机器上。发生这种情况的原因是什么?我如何将其配置为成功侦听和连接?非常感谢。


第二部分,我现在可以在其他具有正确输出的远程机器上运行这些。

我在这个发布问题的特定远程机器上做了一些更改,因此,在我修复部件之前,它不会运行这些命令,但除此之外,如果没有任何更改,它将像在我的其他远程机器上一样运行。

如果有人能帮助我完成我必须摆脱的第一部分,我仍然会很感激

Listener[Source=GPO]
..
.
ListeningOn=null

当我运行命令时

winrm e winrm/config/listener

因为这是导致问题的原因,但我不知道如何禁用/删除组策略设置。

要确定哪个组策略正在配置WinRM,可以从管理命令提示符运行以下命令:

gpresult /h result.html & result.html

在显示的结果中,找到Windows组件/Windows远程管理(WinRM)/HWinRM服务。Winning GPO是您可以启用/禁用GPO设置的位置。使用GPMC(组策略管理控制台)来管理组策略。

ListeningOn=null当管理员在允许自动配置侦听器中错误地配置了组策略IPv4筛选器设置时,会出现,通常使用受影响服务器上不存在的IP或网络。

要重置IP地址(ListeningOn),您可能需要重新创建侦听器(删除旧的HTTP侦听器并创建一个新的侦听器)。请找到下面的例子。


在PowerShell中:

Remove-WSManInstance winrm/config/Listener -SelectorSet @{Address="*";Transport="http"}
New-WSManInstance winrm/config/Listener -SelectorSet @{Address="*";Transport="http"}

以下是要绑定的特定IP地址的语法:

New-WSManInstance winrm/config/Listener -SelectorSet @{Address="IP:192.168.100.2";Transport="http"}

在命令提示符中:

winrm delete winrm/config/Listener?Address=*+Transport=HTTP
winrm create winrm/config/Listener?Address=*+Transport=HTTP

进一步阅读:

  • 配置WinRM侦听器的三种方法
  • Windows远程管理器(WinRM)服务未启动

相关问题:只允许PowerShell从一个地址进行远程处理。

我遇到了同样的问题,发现当GPO设置:允许通过WinRM进行远程服务器管理将IPv4筛选器设置为我的jumphost的IP地址时,winrm e winrm/config/listener命令会生成ListeningOn=null问题。

我通过将Filter设置为*并在防火墙级别上对权限进行排序来解决这个问题。

我通过更改GPO解决了这个问题,与Neossian的回答完全一样(对不起,没有信誉可以添加评论)但是"IPv4筛选器"不能为空,也不能接受CIDR表示法(这是我的一个巨大错误)。正如Craneum已经说过的,使用"*"在您的本地网络设备连接的任何接口或某个范围的IP地址上侦听(如"192.168.0.1-192.168.0.254"或类似的内容)。

请勿使用"192.168.0.0/24"符号。是的,帮助部分对此非常清楚,但我使用了错误的符号。

问题是,您输入的IP范围不是可以访问系统的范围,而是定义了可以用作系统WinRM接口的IP范围。意味着您必须指定一个IP地址范围,其中包括GPO正在影响的所有客户端IP。

确保在[计算机配置]/[策略]/[管理模板]/[Windows组件]/[Windows远程管理(WinRM)]/[WinRM服务]下的"允许通过WinRM进行远程服务器管理"中定义了筛选器(IPv4和/或IPv6)。

我建议IPv4和IPv6都使用"*"筛选器,除非您知道要筛选什么。

相关内容

最新更新