PowerShell远程工作组计算机

问题描述:

我想从我的域远程PowerShell加入PC到我们的DMZ服务器,但我不知道如何让它工作。PowerShell远程工作组计算机

DMZ服务器在已启用的默认端口5985上为HTTP配置了一个侦听器。机器中的两个NIC都标记为公共网络,因此我更改了公用配置文件的Windows远程管理(HTTP-In)防火墙规则,以接受来自我的IP以及已配置的本地子网的连接。

在我的客户端计算机(Windows 10)上,我将服务器的主机名添加到WSMan:\ localhost \ Client \ TrustedHosts,并向注册表添加LocalAccountTokenFilterPolicy(值:1,类型:DWORD)。

我使用服务器(服务器名\用户名)的本地凭据创建凭证对象,然后尝试$Sess = New-PSSession -ComputerName DMZCOMPUTER -Port 5985 -Credential $Cred连接始终尝试使用Kerberos连接到显然不工作的计算机。

如果我尝试$Sess = New-PSSession -ComputerName DMZCOMPUTER -Port 5985 -Credential $Cred -Authentication Basic我收到一个错误,表示当前禁用了未加密的流量。其他认证方案产生不同的错误消息,但我从来没有能够远程。

我是否在某处丢失配置?需要什么设置(服务器&客户端)使用远程PowerShell连接到加入域的客户端的工作组服务器。

+0

您应该阅读本文:https://blogs.msdn.microsoft.com/wmi/2009/07/24/powershell-remoting-between-two-workgroup-machines/和本书:https: //devopscollective.gitbooks.io/secrets-of-powershell-remoting/content/index.html – 4c74356b41

+0

@ 4c74356b41 - 我实际上已经看过那个链接,它让我走得比别人更远,但是我已经排序了他出来和链接实际上有不正确的信息,现在我已经知道了 – Martin

我终于明白了这一点,有几个问题与我在做什么。首先在https://blogs.msdn.microsoft.com/wmi/2009/07/24/powershell-remoting-between-two-workgroup-machines/处的链接有一些不正确的信息。它声明LocalAccountTokenFilterPolicy注册表项应该在客户机上,这是不正确的,它应该在服务器机器上。

另一个修复程序就是我正在使用TrustedHosts值中的服务器的FQDN,然后在尝试创建会话时仅使用主机名。

如果任何人试图得到这个工作要遵循的步骤是:在服务器上

  1. 运行Enable-PSRemoting
    • 这将启动WinRM服务和它的启动设置为自动
    • 它会创建一个HTTP监听器
      • 您可以通过运行winrm enumerate winrm/config/listener
    • 这将使Windows远程管理防火墙规则
    • 它将创建和配置LocalAccountTokenFilterPolicy注册表项
    • 将重置四次会议权限的主机
      • 您可以验证这一点运行Get-PSSessionConfiguration
  2. 启动WinRM的小号在客户机上ervice
  3. 运行Set-Item WSMan:\localhost\Client\TrustedHosts -Value <hostname or FQDN or server>
    • 您可以添加到-ConcatenateSet-Item结束时,如果你想要一台服务器添加到列表中
  4. 运行$Cred = Get-Credential我只是进入了一个用户名和kevmar建议的密码(不是服务器名\用户名)
  5. 运行命令如$S = New-PSSession -ComputerName <same name exactly that you put in the TrustedHosts> -Credential $Cred
  6. 如果一切正常,那么命令应该只返回
  7. 如果您收到提到的Kerberos错误检查,你在你的ComputerName参数使用相同的名称和TrustedHosts
  8. 如果您收到拒绝访问错误检查LocalAccountTokenFilterPolicy服务器上配置
+2

哇,我永远不会没有这个职位没有域和公共网络配置文件工作。我一直在SERVER上设置TrustedHosts。您仍然必须在公共网络中将客户端IP添加到服务器防火墙中,如下所示: “Set-NetFirewallRule -Name WINRM-HTTP-In-TCP -RemoteAddress ” (名称不是您在防火墙控制面板中看到的名称,但注册表项。) 很好,复制品与pssessions一起使用。 – js2010

+0

公共网络的“enable-psremoting -force -skipnetworkprofilecheck”。 – js2010

+1

在win7中,您可以安装powershell 4(wmf 4),然后运行“enable-psremoting -force -skipnetworkprofilecheck”,即使启用uac的系统用户以及公共网络配置文件也是如此。尽管如此,仍然没有PowerShell防火墙命令。 https://www.microsoft.com/en-us/download/details.aspx?id=40855(Windows6.1-KB2819745-x64-MultiPkg.msu)Microsoft建议不要使用PS 2.0启用它。 https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/enable-psremoting?f=255&MSPPError=-2147217396 – js2010

首先尝试使用您的用户名和密码创建凭证对象。跳过尝试指定凭证中的域或服务器名称。

然后尝试连接IP地址而不是计算机名称。您仍然需要将其添加到可信主机值。

最后使用的是Test-WSMan来解决您的问题。提供的错误消息应该给你一个关于问题是什么的强烈暗示。

+1

感谢您的帮助。这使我朝着正确的方向发展,Test-WSMan有助于解决问题。 – Martin