【问题标题】:Unable to use PowerShell Enter-PSSession to connect to remote server无法使用 PowerShell Enter-PSSession 连接到远程服务器
【发布时间】:2013-03-11 15:47:01
【问题描述】:

我在使用 PowerShell 连接到远程服务器时遇到问题,其中远程计算机使用非默认端口号。设置如下:我有一个带有多个虚拟机的虚拟主机服务器。所有这些虚拟机都具有相同的 IP 地址,但使用不同的端口访问,例如:

a.b.c.d:3000
a.b.c.d:3001
etc

所以,我目前的 PowerShell 脚本是:

$password = ConvertTo-SecureString "<MyPassword>" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("<Domain\UserName>", $password)
Enter-PSSession -ComputerName <IPAddress> -Port <PortNumber> -Credential $cred

“”中的位特定于各个机器。运行此脚本时出现以下错误:

Enter-PSSession : 连接到远程服务器失败 出现以下错误消息:客户端无法连接到 请求中指定的目的地。验证服务上的 目的地正在运行并正在接受请求。查阅日志和 WS-Management 服务的文档 目的地,最常见的是 IIS 或 WinRM。如果目的地是 WinRM 服务,在目标上运行以下命令 分析和配置 WinRM 服务:“winrm quickconfig”。更多 有关信息,请参阅 about_Remote_Troubleshooting 帮助主题。在 C:\PowerShell\Test7.ps1:25 字符:16 + Enter-PSSession

我尝试的另一种变体如下:

$password = ConvertTo-SecureString "<MyPassword>" -AsPlainText -Force
$cred= New-Object System.Management.Automation.PSCredential ("<Domain\UserName>", $password)
$powershell_uri = "http://<IPAddress>:<PortNumber>"
Enter-PSSession -ConnectionUri $powershell_uri -Credential $cred

但这给出了以下错误:

Enter-PSSession:连接到远程服务器失败,原因是 以下错误消息:客户端无法连接到目标 请求中指定。验证目标上的服务 正在运行并正在接受请求。查阅日志和 WS-Management 服务的文档 目的地,最常见的是 IIS 或 WinRM。如果目的地是 WinRM 服务,在目标上运行以下命令 分析和配置 WinRM 服务:“winrm quickconfig”。更多 有关信息,请参阅 about_Remote_Troubleshooting 帮助主题。在 C:\PowerShell\Test7.ps1:21 字符:16 + Enter-PSSession

我在本地机器上设置了 TrustedHosts (winrm set winrm/config/client @{TrustedHosts=""}),在远程机器上我运行了“winrm quickconfig”命令。在远程机器上,我还运行了“winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port=""}" 命令。

对于如何在 PowerShell 中与这些机器建立连接的任何帮助将不胜感激。

【问题讨论】:

  • 不是默认端口,可能需要手动添加防火墙例外
  • 我为特定端口添加了防火墙例外(也尝试关闭防火墙)。我仍然收到上述错误。
  • 确保winrm服务正在运行:服务器端get-service winrm,客户端使用test-winrm重试
  • 我刚刚发现我对设置的理解略有不同。所有机器都有不同的 IP 地址,但都具有相同的端口号。它们都有端口转发到默认端口 5985。如果我尝试按上述方式连接但使用端口 5985,我会收到防火墙错误(我想我之前的尝试没有设法正确关闭它)。无论如何,我与 IT 人员有一张支持票,可以打开防火墙端口。完成后我会在这里更新,我有机会重试。到目前为止,谢谢杰基。
  • 感谢您的帮助。是的,防火墙似乎确实比我最初想象的更严格地锁定了。我现在可以连接到远程服务器了。

标签: powershell remote-management


【解决方案1】:

在远程计算机上:

  1. 在:控制面板\网络和 Internet\网络和共享中心
    确保远程计算机不在 公共 位置,但将其设置为 工作或私人

  2. 以管理员模式启动PowerShell并输入命令:
    启用-PSRemoting
    退出

  3. 转到控制面板 -> 系统和安全 ->Windows 防火墙,然后单击高级设置
    privatedomain 入站规则中将管理计算机的 IP 范围添加到 Windows 远程管理 (http-In)。

在管理计算机上:

  1. 以管理员模式启动 PowerShell 并输入命令:

    Set-Item WSMan:\localhost\Client\TrustedHosts -Concatenate remotecomputer.domain.suffix -Force

    使用您的完整远程计算机的网络路径。 这会将远程计算机网络名称添加到您的受信任主机。

这应该可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多