16

我正在本地和远程机器上使用命令提示符测试 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 Fault:

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

最多,我面临的所有问题都在我的远程机器上。是什么导致这种情况发生,我该如何配置它以成功收听和连接?谢谢你。


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

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

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

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

当我运行命令时

winrm e winrm/config/listener

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

4

6 回答 6

20

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

gpresult /h result.html & result.html

在显示的结果中,找到Windows Components/Windows Remote Management (WinRM)/WinRM Service。Winning GPO 是您可以启用/禁用 GPO 设置的地方。使用 GPMC(组策略管理控制台)来管理组策略。

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

于 2013-09-04T17:45:25.690 回答
9

要重置 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

进一步阅读:

相关问题:Allow PowerShell remoting only from one address

于 2018-01-07T05:24:59.210 回答
5

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

我通过将过滤器设置为*并对防火墙级别的权限进行排序来解决此问题。

于 2016-02-23T10:30:07.137 回答
1

我解决了这个更改 GPO 的问题,正如 Neossian 所回答的那样(抱歉,只是添加评论没有声誉)。但是“IPv4 过滤器”不能为空,也不能接受 CIDR 表示法(这是我的巨大错误)。正如 Craneum 所说,使用“*”来侦听本地网络设备连接的任何接口或某些 IP 地址范围(如“192.168.0.1-192.168.0.254”或类似的东西)。

不要使用“192.168.0.0/24”表示法。是的,帮助部分对此非常清楚,但我使用了错误的符号。

于 2020-02-13T14:49:44.900 回答
1

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

于 2020-02-28T17:00:18.753 回答
0

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

除非您知道要过滤什么,否则我建议对 IPv4 和 IPv6 使用“*”过滤器。

于 2020-01-31T05:19:25.463 回答