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

Mar*_*tin 6 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连接到显然不起作用的机器.

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

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

Mar*_*tin 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. 如果您收到提及Kerberos的错误,请检查您是否在ComputerName参数和TrustedHosts中使用相同的名称
  8. 如果您收到拒绝访问错误,请检查服务器LocalAccountTokenFilterPolicy上是否已配置

  • 哇,没有这篇文章,如果没有域名和公共网络资料,我永远无法工作.我总是在SERVER上设置TrustedHosts.您仍然需要在公共网络中将客户端IP添加到服务器防火墙中:"Set-NetFirewallRule -Name WINRM-HTTP-In-TCP -RemoteAddress <clientip>"(名称不是您在防火墙控制面板中看到的名称,但注册表项.)好的副本项目与pssessions一起使用. (2认同)