PowerShell远程处理到工作组计算机

时间:2016-10-25 19:43:32

标签: powershell powershell-remoting

我正在尝试远程PowerShell从我的域加入PC到我们DMZ中的服务器,但我无法弄清楚如何让它工作。

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

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

我使用服务器的本地凭据(servername \ username)创建一个凭证对象,然后我尝试$Sess = New-PSSession -ComputerName DMZCOMPUTER -Port 5985 -Credential $Cred连接总是尝试使用Kerberos连接到显然不起作用的机器。< / p>

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

我错过了某处的配置吗?使用远程PowerShell从域加入的客户端连接到工作组服务器所需的设置(服务器和客户端)。

2 个答案:

答案 0 :(得分:9)

我最终想到了这一点,我正在做的事情有几个问题。首先,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服务
  3. 运行Set-Item WSMan:\localhost\Client\TrustedHosts -Value <hostname or FQDN or server>
    • 如果您尝试将服务器添加到列表中,可以将-Concatenate添加到Set-Item的末尾
  4. 运行$Cred = Get-Credential我刚刚输入了kevmar建议的用户名和密码(不是servername \ username)
  5. 运行$S = New-PSSession -ComputerName <same name exactly that you put in the TrustedHosts> -Credential $Cred
  6. 等命令
  7. 如果一切正常,命令应该返回
  8. 如果您收到提及Kerberos的错误,请检查您是否在ComputerName参数和TrustedHosts
  9. 中使用了相同的名称
  10. 如果您收到拒绝访问错误,请检查服务器
  11. 上是否配置了LocalAccountTokenFilterPolicy

答案 1 :(得分:1)

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

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

最后一件事是使用Test-WSMan来解决您的问题。提供的错误消息应该为您提供有关问题的强烈提示。