2

我在使用 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:连接到远程服务器失败,并显示以下错误消息:客户端无法连接到请求中指定的目标。验证目标上的服务是否正在运行并且正在接受请求。请查阅在目标(最常见的是 IIS 或 WinRM)上运行的 WS-Management 服务的日志和文档。如果目标是 WinRM 服务,在目标上运行以下命令来分析和配置 WinRM 服务:“winrm quickconfig”。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。在 C:\PowerShell\Test7.ps1:25 char:16 + Enter-PSSession <<<< -ComputerName -Port -Credential $cred + CategoryInfo : InvalidArgument: (:String) [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:连接到远程服务器失败,并显示以下错误消息:客户端无法连接到请求中指定的目标。验证目标上的服务是否正在运行并且正在接受请求。请查阅在目标(最常见的是 IIS 或 WinRM)上运行的 WS-Management 服务的日志和文档。如果目标是 WinRM 服务,在目标上运行以下命令来分析和配置 WinRM 服务:“winrm quickconfig”。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。在 C:\PowerShell\Test7.ps1:21 char:16 + Enter-PSSession <<<< -ConnectionUri $powershell_uri -Credential $cred # -ComputerName -Port -Credential $cred + CategoryInfo : InvalidArgument: (http://: /:

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

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

4

1 回答 1

4

在远程计算机上:

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

  2. 以管理员模式启动PowerShell并输入命令:
    Enable-PSRemoting
    exit

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

在管理计算机上:

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

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

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

这应该够了吧。

于 2016-08-11T22:13:18.500 回答