在 Windows 计算机上远程运行命令

在 Windows 计算机上远程运行命令

我在 Amazon EC2(Amazon 的云计算平台,提供云中的虚拟机)上有一个 Windows Server 2008 实例。它有一个外部 IP,并且我在该机器上有一个管理员帐户。我想远程“引导”此实例,即我想运行命令来下载、安装和配置其上的应用程序,所有这些都无需登录一次。另外,我无法在源计算机上使用 psexec。

我已经弄清楚了如何使用 WMI 对远程、已加入域的计算机执行此操作。但是,我无法对 EC2 上的远程计算机执行此操作。以下是一些具体限制:

  1. 远程计算机不属于我的域,因此没有 Kerberos
  2. 远程计算机没有我信任的证书,反之亦然

我确信我遇到了一些身份验证/信任限制。如果我有管理员权限,有什么办法可以在远程运行单个命令吗?我并不局限于使用 WMI,但我确实需要以某种方式运行命令。感觉这应该是一个已解决的问题。

答案1

虽然这不是您直接寻找的答案,但请记住,您可以构建一个自定义 AMI,该 AMI 在服务器上线时已包含适当的引导代码。这是迄今为止您所面临的问题最常见的解决方案,事实上,这也是 Amazon 希望您解决此问题的方式。

只需添加一个程序,在启动时,该程序会连接到您控制的服务器并下载要运行的命令列表。或者,您可以添加一个程序来监听入站连接,然后再次向服务器发送一组要运行的指令。显然,您可以集成任何形式的安全性。

关于重建 AMI 映像,有许多教程。以下是来自亚马逊的教程: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?creating-an-ami-windows.html

答案2

我在 EC2 上运行 Windows,可以做很多你提到的事情 - 你说得对,这个问题已经解决了。在我看来,目前云管理提供商为 Windows 提供的最佳解决方案是右尺度最近添加了对 Windows 的支持。

我使用 RightScale 的免费开发者帐户,它们可以让你做上面提到的所有事情。这是传统 Windows 管理的一个细微转变。他们有 Chef Recipes(或脚本)的概念,这些脚本由实例下载并在启动时运行。这些是可用于配置/安装软件的脚本。它实际上是一个非常引人注目的工具,功能强大得令人惊讶。如果你不想使用任何云管理提供商,如 Rightscale、Scalr.net 或 Kaavo 等,我建议运行你自己的 Chef 服务器或使用类似的工具(Puppet、CfEngine 等),并使用它来配置和部署你的云实例。Chef 的最新发布支持 Windows 客户端。

如果您只是希望快速从笔记本电脑/台式机远程向云实例发出命令,那么您只需安装 Powershell 2.0 附带的 Windows Management Framework 即可。使用 Powershell 2.0,您可以发出远程命令(“Invoke-Command”,与 ssh 非常相似),并让它在您的实例上执行您想要的任何内容 - 单行命令或整个脚本。使用 Windows 域进行身份验证非常简单。您只需在您的桌面上创建一个管理员用户,并使用与您的实例相同的用户名/密码,Invoke-Command 就可以正常工作。

相关内容