使用Windows Powershellpipe理EC2实例

我在使用Windows 7客户端的PowerShell时pipe理Windows 2k8 Server SP2实例(托pipe在EC2上)时遇到了问题。 当我尝试运行时:

Invoke-Command {Get-Service} -ComputerName ec2-184-73-111-34.compute-1.amazonaws.com 

我收到以下错误:

连接到远程服务器失败,并显示以下错误消息:WinRM客户端无法在指定的时间内完成操作。 检查计算机名称是否有效并可通过networking访问,并且启用了Windows远程pipe理服务的防火墙例外。 有关更多信息,请参阅about_Remote_Troubleshooting帮助主题。

在服务器上我有:(1)与RDP连接(服务器可达),(2)运行Enable-PSRemoting

在我的客户端,我有:(1)添加EC2实例给TrustedHosts

我也尝试在Windows防火墙完全禁用的服务器上运行上述命令,但是这也没有解决问题。 我也已经validation了Windows远程pipe理的防火墙例外。

我一直在引用的教程是: http : //blogs.iis.net/thomad/archive/2010/08/12/managing-windows-amazon-ec2-machines-remotely-with-powershell.aspx

在EC2上,您需要打开端口5985,安全组的默认WinRM远程端口,以便您可以从您的IP地址连接到实例。

在云中的实例中,做一个:

 winrm quickconfig -quiet 

在你的工作站上:

 set-item wsman:\localhost\Client\TrustedHosts -value "*" -force Invoke-Command {Get-Service} -ComputerName <hostname> -Credential administrator 

这应该让你去。

这两台机器必须在同一个域上。 我不明白你是如何做到的。 “在我的客户端,我有:(1)添加EC2实例给TrustedHosts。” 还不够。 您需要将EC2服务器添加到基于地面的域,或者让EC2服务器成为该Windows7客户端的域控制器。

另一种从地面“pipe理”EC2服务器的方法是利用来自微软“SysInternals”工具集合的PsExec.exe。 您可以在他们的“PsTools”免费工具包中find该gem。 因此,在适合您的Microsoft下载网站上,searchPsTools和PsExec就在那里。

PsExec让你远程控制你的域之外的机器。

只是因为RDP被授权并不意味着其他服务。 您必须允许通过端口使用ec2-authorize来访问目标系统端口上的端口。 PowerShell使用什么端口与目标系统进行通信? 你授权了那个港口吗?