无法使用PowerShell Enter-PSSession连接到远程服务器

时间:2013-03-11 15:47:01

标签: powershell remote-management

我在使用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

“&lt;&gt;”内的位特定于各个机器。运行此脚本时,我收到以下错误:

  

Enter-PSSession:连接到远程服务器失败   带有以下错误消息:客户端无法连接到   请求中指定的目标。验证该服务   目的地正在运行并正在接受请求。查阅日志和   运行WS-Management服务的文档   目的地,最常见的是IIS或WinRM。如果目的地是   WinRM服务,在目的地运行以下命令   分析和配置WinRM服务:“winrm quickconfig”。更多   有关信息,请参阅about_Remote_Troubleshooting H elp主题。在   C:\ PowerShell \ Test7.ps1:25 char:16   + Enter-PSSession&lt;&lt;&lt;&lt; -ComputerName -Port -Credential $ cred       + CategoryInfo:InvalidArgument :(:String)[Enter-PSSession],PSRemotingTransportException       + FullyQualifiedErrorId:CreateRemoteRunspaceFailed

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

$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 H elp主题。在   C:\ PowerShell \ Test7.ps1:21 char:16   + Enter-PSSession&lt;&lt;&lt;&lt; -ConnectionUri $ powershell_uri -Credential $ cred#-ComputerName -Port -Credential   $ CRED       + CategoryInfo:InvalidArgument:(http://:/:Uri)[Enter-PSSession],   PSRemotingTransportException       + FullyQualifiedErrorId:CreateRemoteRunspaceFailed

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

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

2 个答案:

答案 0 :(得分:3)

在远程计算机上:

  1. 在:控制面板\网络和Internet \网络和共享中心
    确保远程计算机不在公共位置,但将其设置为工作私人
  2. 以管理员模式启动PowerShell并输入命令:
    启用,PSRemoting
    退出

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

  4. 在管理计算机上:

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

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

      使用完整的远程计算机的网络路径。 这会将远程计算机网络名称添加到可信主机。
    2. 这应该可以解决问题。

答案 1 :(得分:0)

在评论中解决:防火墙配置错误。

相关问题