分配 PowerShell 脚本以在 Window Server 2012 上使用 PowerShell 在启动时运行

Jam*_*yer 6 amazon-web-services windows-server-2012 powershell-v3.0

我正在尝试编写一个 PowerShell 脚本,该脚本将在使用 AWS 提供的配置工具在 AWS 上创建 Windows 2012 实例时运行。

我的问题是我想在机器启动后更改名称,然后重新启动机器并进行设置过程。其主要原因是在设置过程中安装的其中一个应用程序 Boundary 在首次安装时采用了服务器的名称。然后似乎不可能在他们的门户中更改它的名称。

理想情况下,我会有两个 PowerShell 脚本,一个用于启动设置过程,通过 AWS 初始化,另一个在机器第一次重新启动时运行。理想情况下,第二个脚本将排队等待初始设置脚本在下次启动时运行。所以我想我的问题是:

  1. 这可能吗?
  2. 我将如何去做这件事。

我的 Google foo 让我失望了,所以任何答案都将不胜感激。

小智 2

这绝对是可能的。您需要的基本构建块是:

  • 亚马逊的“用户数据”功能,允许在实例首次启动时运行用户定义的脚本。这里有更多详细信息: https: //forums.aws.amazon.com/message.jspa ?messageID=342503 。
  • Windows 任务计划程序用于安排任务在 Windows 重新启动后执行。有关如何执行此操作的更多详细信息,请参阅 schtasks.exe 命令(只需在命令提示符下键入 schtasks.exe)。

您将需要两个脚本:

  1. 通过“用户数据”功能运行。负责在 Windows 启动时使用 Windows 任务计划程序安排第二个脚本的执行,更改 Windows 计算机名称并重新启动 Windows。调度命令应该类似于:

    schtasks.exe /create /TN my-task /SC ONSTART /TR SCRIPT_FILE /RU 用户名 /RP 密码

  2. 运行您的应用程序。

第二个脚本还可能删除计划任务 - 取决于您是否希望该虚拟机从重新启动后自动恢复。