0

我已将 Windows Server 2016 VM 映像部署到 Microsoft Azure Marketplace。该映像包含多个启动脚本和程序,当客户运行从 Marketplace 获得的映像创建的 VM 时需要执行这些启动脚本和程序。

每次客户重新启动 VM 时,如何使这些脚本和程序自动运行?

一些背景知识... (1) 我已经使用 Windows 任务管理器创建了一个任务,如果我可以保证客户创建一个管理员用户,其用户 ID 和密码与我在创建原始 VM 时使用的相同,这将有效,否则现有计划任务将失败,因为它找不到原始用户 ID。

(2) 我的一些组件已经是 Windows 服务,但我仍然需要运行脚本来执行一些特定于 VM 的安装步骤。这听起来不像是服务的角色。此外,Windows 服务的启动超时值对于需要执行的安装步骤来说太低了。

任何帮助,将不胜感激。

4

1 回答 1

0

自从您在 Azure 中以来,您有几个不同的选择,但这是我推荐的一个。

使用SetupComplete.cmd 或 Unattend.xml 文件进程- 这是内置在 Windows 中的,因此不需要发生任何特殊情况。您将基本上创建自己的自定义 SetupComplete 脚本,该脚本具有安装应用程序所需执行的逻辑,并重新配置 Windows 服务器以作为使用映像创建新 VM 时创建的新用户运行。请注意,在 Azure 中,Microsfot 使用的是 SetupComplete,因此您应该调用您的 SetupComplete2.cmd。我已经使用这种技术来运行自定义 PowerShell 脚本。因此 SetupComplete2.cmd 将调用 PowerShell 脚本。您可以拥有任意数量的这些,只需按您希望这两个运行的顺序为它们命名。脚本需要放在 C:\Windows\OEM 文件夹中。

您也可以另外使用 Unattend.xml,但这是一个完全不同的主题,我不熟悉使用。

最后,您可能能够在 Azure 中使用自定义脚本扩展,但我不知道将这些扩展强制作为市场映像的一部分的过程。

哦,最后一件事,我假设您正在创建的映像上运行 SysPrep。如果没有,那也是一件好事。

于 2018-10-18T16:35:15.513 回答