【发布时间】: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