PowerShell 远程连接到工作组计算机

问题描述 投票:0回答:3

我正在尝试将 Powershell 从加入域的 PC 远程连接到 DMZ 中的服务器,但我不知道如何让它工作。

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 从加入域的客户端连接到工作组服务器需要哪些设置(服务器和客户端)。

powershell powershell-remoting
3个回答
12
投票

我最终明白了这一点,我所做的事情存在一些问题。首先,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的建议输入了用户名和密码(不是服务器名\用户名)
  5. 运行命令,例如
    $S = New-PSSession -ComputerName <same name exactly that you put in the TrustedHosts> -Credential $Cred
  6. 如果一切正常,命令应该返回
  7. 如果您收到提及 Kerberos 的错误,请检查您在
    ComputerName
    参数和 TrustedHosts 中是否使用相同的名称
  8. 如果出现访问被拒绝错误,请检查
    LocalAccountTokenFilterPolicy
    是否已在服务器
  9. 上配置

1
投票

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

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

最后要使用的是

Test-WSMan
来解决您的问题。提供的错误消息应该会强烈提示您问题所在。


0
投票

德米特里: 下午好

$servers 包含主机名列表,当主机名数量达到 20 个时,New-PSSession -ComputerName $servers -credential $cred-ThrottleLimit 70 有效,但如果超过 20 个(即 50 个),则会出现错误:

  • 指定的用户名或密码不正确。
  • 使用Kerberos认证,无需指定认证方式和用户名等。 Get-PSSession 中也没有任何内容。但是,如果我删除一半的计算机(最多 20 台),那么,正如我已经说过的,由于某种原因,一切都会正常。 可能是什么原因?.

尚不清楚为什么添加一台计算机时一切都会崩溃。我将其删除并记录所有内容。目前尚不清楚这个 20 台计算机的阈值从何而来(我在任何地方都没有发现类似的问题。所有计算机都是可信的。

© www.soinside.com 2019 - 2024. All rights reserved.