Powershell远程处理:无法连接到Windows 2012 EC2实例

时间:2013-07-10 09:26:53

标签: windows powershell amazon-web-services amazon-ec2 powershell-remoting

我正在尝试使用Windows 7客户端尝试远程控制附加了弹性IP的Windows Server 2012 EC2实例。这是默认配置,因此WinRM服务应该启动并运行,但是为了更好地衡量,我还在服务器上运行以下命令:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force 
set-item WSMan:\localhost\Client\TrustedHosts -Value * -Force
set-item WSMan:\localhost\Shell\MaxMemoryPerShellMB -Value 0 -Force
Enable-PSRemoting

在客户端上,我然后运行

$remoteUsername = "##########" 
$remotePassword = "#######"
$remoteHostname = "00.000.000.00" #this is my elastic IP
$securePassword = ConvertTo-SecureString -AsPlainText -Force $remotePassword
$cred = New-Object System.Management.Automation.PSCredential $remoteUsername, $securePassword

test-WSman -computername "54.252.195.14"

但我得到的结果是

Connect-WSMan : The WinRM client cannot complete the operation within the time specified. Check if the machine name is valid and is reachable over the network and firewall exception for Windows Remote Management service is enabled. 
At ***************.ps1:14 char:14
+ Connect-WSMan <<<<  -Credential $cred $remoteHostname
    + CategoryInfo          : InvalidOperation: (*********) [Connect-WSMan], InvalidOperationException
    + FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.ConnectWSManCommand

然后我尝试在客户端上运行以下代码,但这也没有帮助:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force 
set-item WSMan:\localhost\Client\TrustedHosts -Value * -Force
set-item WSMan:\localhost\Shell\MaxMemoryPerShellMB -Value 0 -Force
Enable-PSRemoting

关于如何在EC2上运行和自动运行Windows AMI,没有太多信息,是否有人能帮助我找出错误?客户端和服务器不在同一个域中,但我认为更改可信任主机会使远程连接成为可能吗?

更新

在遵循下面的Barak建议后,我能够在正确的端口上建立从服务器到自身的telnet连接,但仅限于使用私有IP时,而不是在使用弹性IP时。

安全规则如下:

-1 icmp 0.0.0.0/0
22 tcp 0.0.0.0/0
443 tcp 0.0.0.0/0
3389 tcp 0.0.0.0/0
5985 tcp 0.0.0.0/0
5986 tcp 0.0.0.0/0
8888 tcp 0.0.0.0/0

2 个答案:

答案 0 :(得分:3)

首先,您需要弄清楚是否可以建立与远程计算机的连接。最简单的方法是从Windows命令提示符处尝试以下命令:

telnet <ip> 5985

如果未安装telnet客户端,请通过添加/删除Windows组件添加它。 如果无法建立连接,则会出现错误。这是最可能的错误。可能的原因:

  1. 阻止连接的客户端防火墙(本地或网络)
  2. EC2安全组配置
  3. 服务器防火墙规则。
  4. 由于您可以通过远程桌面访问远程计算机,因此请在服务器上运行相同的命令,以确保WinRM服务实际正在工作并侦听默认端口。

    如果可以从客户端计算机建立连接,请打开服务器上的事件查看器并转到: “应用程序和服务日志” - &gt;微软 - &gt; Windows - &gt; “Windows远程管理” - &gt;操作 并在事件日志中查找错误。

答案 1 :(得分:0)

我也一直在反对这个问题。我认为它与通过使用localhost的set-item wsman:\ localhost \ listener \ listener * \ port -value 5985命令启用PowerShell监听有关。 Localhost是内部IP地址,而不是公共IP。我不知道如何将2个IP映射到彼此。