Powershell winrm受信任主机不工作
我正在尝试在一些机器上设置远程管理。我可以从我的计算机在远程机器上成功执行命令,但我不希望任何人能够这样做 我尝试在远程计算机上设置受信任的主机,并重新启动了该服务,但它似乎没有做任何事情 例如,在远程计算机上:Powershell winrm受信任主机不工作,powershell,winrm,Powershell,Winrm,我正在尝试在一些机器上设置远程管理。我可以从我的计算机在远程机器上成功执行命令,但我不希望任何人能够这样做 我尝试在远程计算机上设置受信任的主机,并重新启动了该服务,但它似乎没有做任何事情 例如,在远程计算机上: winrm set winrm/config/client '@{TrustedHosts="someIncorrectName"}' 然后重新启动winrm服务 为什么我仍然可以从笔记本电脑上运行远程命令?它不应该阻止命令被执行吗 我以以下方式运行该命令: Invoke-Comm
winrm set winrm/config/client '@{TrustedHosts="someIncorrectName"}'
然后重新启动winrm服务
为什么我仍然可以从笔记本电脑上运行远程命令?它不应该阻止命令被执行吗
我以以下方式运行该命令:
Invoke-Command -cn remoteMachine -Credential $cred -scriptblock {get-process}
其中$cred是使用get-credential-domain/username生成的
我读过一些关于TrustedHosts的文章,他们似乎给出了关于TrustedHosts功能的相互矛盾的报告。有些人似乎说,它阻止命令在未列在可信主机列表中的计算机上执行。其他人说这是一个可以在那台机器上运行命令的计算机列表
MSDN说:“指定受信任的远程计算机列表。”这似乎意味着它是第二个选项(可以在机器上执行命令的计算机列表)
我做错了什么
谢谢受信任的主机不会做你认为它会做的事情。与Unix.rhosts不同,此设置适用于PowerShell客户端,而不是远程服务器端点。这就是为什么可以在以下位置找到它:
WSMan:\localhost\Client
如果它与侦听器相关,它将位于服务
节点下
正如另一个答案所涉及的,这通常用于非域或混合环境,以防止客户端向不受信任的远程计算机发送NTLM质询响应或基本身份验证尝试。为什么?因为远程恶意服务器可能会捕获此信息并使用它危害您的网络。当您处于混合环境中时,唯一可用的保护是SSL,许多人可能会选择通过AllowUnencrypted=$false
禁用SSL,这也是在WSMAN
驱动器的客户端
节点中
那么,如何限制传入连接?您现在应该已经建立了连接,并开始查看远程服务器上的WSMAN:\localhost\Service
节点。如果您这样做,您将看到:
WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Service
Type Name SourceOfValue Value
---- ---- ------------- -----
System.String RootSDDL ...
System.String MaxConcurrentOperations 4294967295
System.String MaxConcurrentOperationsPerUser 1500
System.String EnumerationTimeoutms 240000
System.String MaxConnections 300
System.String MaxPacketRetrievalTimeSeconds 120
System.String AllowUnencrypted false
Container Auth
Container DefaultPorts
System.String IPv4Filter *
System.String IPv6Filter *
System.String EnableCompatibilityHttpList... false
System.String EnableCompatibilityHttpsLis... false
System.String CertificateThumbprint
System.String AllowRemoteAccess true
现在,向下查看此列表,您将看到一些命名恰当的属性,如IPv4Filter
和IPv6Filter
。猜猜这些是做什么的;-)