【问题标题】:Powershell winrm Trusted Hosts not workingPowershell winrm 受信任主机不工作
【发布时间】:2012-08-24 13:28:22
【问题描述】:

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

我已尝试在远程计算机上设置受信任的主机,并重新启动服务,但它似乎没有做任何事情。

例如,在远程机器上:

 winrm set winrm/config/client '@{TrustedHosts="someIncorrectName"}'

然后我重新启动 winrm 服务。

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

我按以下方式运行命令:

Invoke-Command -cn remoteMachine -Credential $cred -scriptblock {get-process}

$cred 是使用 get-credential 域/用户名生成的。

我读过一些关于 TrustedHosts 的文章,他们似乎给出了相互矛盾的报告,说明它的作用。有些人似乎说它可以防止在受信任主机列表中未列出的计算机上执行命令。其他人说这是可以在该机器上运行命令的计算机列表。

MSDN 说:“指定受信任的远程计算机的列表。”这似乎暗示它是第二个选项(可以在机器上执行命令的计算机列表)。

我做错了什么?

谢谢

【问题讨论】:

    标签: powershell winrm


    【解决方案1】:

    TrustedHosts 不会像您认为的那样做。与 Unix .rhosts 不同,此设置适用于 PowerShell client,而不是远程服务器端点。这就是它出现在以下位置的原因:

    WSMan:\localhost\Client
    

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

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

    那么,如何限制传入连接?您现在应该已经建立连接并开始查看远程服务器上的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                                                                        
    

    现在,查看此列表,您会看到一些恰当命名的属性,例如 IPv4FilterIPv6Filter。猜猜这些是做什么的;-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      • 2012-07-05
      • 1970-01-01
      相关资源
      最近更新 更多