从Azure市场获得的Microsoft VM上自动启动应用程序

时间:2018-10-18 15:44:42

标签: azure virtual-machine azure-marketplace

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

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

某些背景... (1)我已经使用Windows任务管理器创建了一个任务,并且如果我可以保证客户创建的admin用户的用户名和密码与创建原始VM时使用的用户名和密码相同,则可以使用该任务,否则可以使用该任务失败,因为它找不到原始用户ID。

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

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

自从您在Azure中以来,您有两个不同的选择,但这是我建议的选择。

使用SetupComplete.cmd or Unattend.xml file process-Windows内置的,因此不需要进行任何特殊操作。基本上,您将创建自己的自定义SetupComplete脚本,该脚本具有执行所需的逻辑以安装我们的应用程序并重新配置Windows服务器,使其以在使用映像创建新VM时创建的新用户身份运行。请注意,在Azure中,Microsfot使用的是SetupComplete,因此您应调用SetupComplete2.cmd。我已使用此技术来运行自定义PowerShell脚本。因此,SetupComplete2.cmd将调用PowerShell脚本。您可以根据需要选择任意多个,只需按顺序命名它们就可以使它们两个运行。脚本将需要放置在C:\ Windows \ OEM文件夹中。

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

最后,您可能可以在Azure中使用Custom Script extensions,但我不知道强制将这些扩展作为市场映像的一部分的过程。

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