Powershell winrm Trusted Hosts无法正常工作

nav*_*eye 5 powershell winrm

我试图在几台机器上设置远程管理.我可以从我的计算机上成功执行远程计算机上的命令,但我不希望任何人能够这样做.

我尝试在远程计算机上设置可信主机,然后重新启动服务,但它似乎没有做任何事情.

例如,在远程计算机上:

 winrm set winrm/config/client '@{TrustedHosts="someIncorrectName"}'
Run Code Online (Sandbox Code Playgroud)

然后我重新启动winrm服务.

为什么我仍然可以从笔记本电脑上运行远程命令?它不应该阻止执行命令吗?

我按以下方式运行命令:

Invoke-Command -cn remoteMachine -Credential $cred -scriptblock {get-process}
Run Code Online (Sandbox Code Playgroud)

使用get-credential域/用户名生成$ cred.

我已经阅读了一些关于TrustedHosts的内容,他们似乎就它的作用给出了相互矛盾的报道.有些人似乎说它可以防止命令在"可信主机"列表中未列出的计算机上执行.其他人说它是可以在该机器上运行命令的计算机列表.

MSDN说:"指定受信任的远程计算机列表." 这似乎意味着它是第二个选项(可以在机器上执行命令的计算机列表).

我究竟做错了什么?

谢谢

x0n*_*x0n 6

TrustedHosts不会按照您的想法执行操作.与Unix .rhosts不同,此设置适用于PowerShell 客户端,而不适用于远程服务器端点.这就是它的原因:

WSMan:\localhost\Client
Run Code Online (Sandbox Code Playgroud)

如果它与侦听器相关,则它将位于Service节点下.

正如另一个答案所涉及的,这通常用于非域或混合环境,以防止客户端向不受信任的远程计算机发送NTLM质询 - 响应或基本身份验证尝试.为什么?因为远程流氓服务器可能会捕获此信息并使用它来危害您的网络.当您处于混合环境中时,唯一可用的保护是SSL,许多人可能会AllowUnencrypted = $false再次选择在驱动器的Client节点中禁用此功能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                                                                        
Run Code Online (Sandbox Code Playgroud)

现在,向下看这个列表,你会看到一些有针对性的命名属性,比如IPv4FilterIPv6Filter.猜猜这些做什么;-)