在从 Azure 市场获取Microsoft VM 上自动启动应用程序



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

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

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

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

任何帮助将不胜感激。

由于你在 Azure 中,你有几个不同的选项,但这是我推荐的选项。

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

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

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

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

最新更新