部署后如何在Azure VM(win 7,8,10,服务器)上运行简单的自定义命令?

部署后如何在Azure VM(win 7,8,10,服务器)上运行简单的自定义命令?,azure,azure-cli2,Azure,Azure Cli2,我正在研究如何在Azure中新部署的windows VM上远程运行命令,并提出一些基本问题 “自定义脚本扩展”似乎是答案,但根据文档,它被声明为仅适用于服务器操作系统: 我想这是对的?如果是这样,那么非服务器windows操作系统呢 接下来,根据MS教程,我尝试对Windows Server 2016数据中心使用自定义脚本扩展,网址为: 我的目标是创建一个新的Windows虚拟机,并指示它在部署后创建一个新的目录 CLI步骤: 1. Create a resource group 2. Cr

我正在研究如何在Azure中新部署的windows VM上远程运行命令,并提出一些基本问题

“自定义脚本扩展”似乎是答案,但根据文档,它被声明为仅适用于服务器操作系统:

我想这是对的?如果是这样,那么非服务器windows操作系统呢

接下来,根据MS教程,我尝试对Windows Server 2016数据中心使用自定义脚本扩展,网址为:

我的目标是创建一个新的Windows虚拟机,并指示它在部署后创建一个新的目录

CLI步骤:

1. Create a resource group
2. Create a new virtual machine (Server 2016 Datacentre) 
3. Finally, run the following command:
az虚拟机扩展集--发布者Microsoft.Azure.Extensions--版本2.0--名称自定义脚本--虚拟机名称(nameOfMyVM)--资源组(nameOfMyResourceGroup)--设置“{”commandToExecute:“powershell.exe md c:\testFolder”}

这将返回错误:

Handler 'Microsoft.Azure.Extensions.CustomScript' has reported failure for VM Extension 'CustomScript' with terminal error code '1007' and error message: 'Install failed for plugin (name: Microsoft.Azure.Extensions.CustomScript, version 2.0.3) with exception The specified executable is not a valid application for this OS platform.'
要在VM上成功完成此操作,是否需要额外的步骤


谢谢

您正在对windows虚拟机使用Linux脚本扩展,试想一下这会有多成功?这是您要查找的链接:


此外,自定义脚本扩展也是一种选择,或者您可以使用DSC扩展或Azure自动化,具体取决于您实际需要的复杂程度。

正如4c74356b41所说,您正在为windows server使用Linux脚本扩展,我们应该使用CustomScriptExtension,而
发布者是Microsoft.Compute

我们可以使用CLI 2.0设置windows VM的扩展,以下是我的步骤:
1.创建一个json文件,如下所示:

{
  "commandToExecute": "powershell.exe mkdir C:\\test321"
}
2.使用CLI设置windows VM的扩展: 我们可以使用以下命令脚本:

az vm extension set -n CustomScriptExtension --publisher Microsoft.Compute --version 1.8 --vm-name jasonvm --resource-group vmm --settings C:\Users\jason\Desktop\test\jasontest5.json
结果如下:

C:\Users\jason>az vm extension set -n CustomScriptExtension --publisher Microsoft.Compute --version 1.8 --vm-name jasonvm --resource-group vmm --settings C:\Users\jason\Desktop\test\jasontest5.json
{
  "autoUpgradeMinorVersion": true,
  "forceUpdateTag": null,
  "id": "/subscriptions/5384xxxx-xxxx-xxxx-xxxx-xxxxe29a7b15/resourceGroups/vmm/providers/Microsoft.Compute/virtualMachines/jasonvm/extensions/CustomScriptExtension",
  "instanceView": null,
  "location": "centralus",
  "name": "CustomScriptExtension",
  "protectedSettings": null,
  "provisioningState": "Succeeded",
  "publisher": "Microsoft.Compute",
  "resourceGroup": "vmm",
  "settings": {
    "commandToExecute": "powershell.exe mkdir C:\\test321"
  },
  "tags": null,
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "typeHandlerVersion": "1.8",
  "virtualMachineExtensionType": "CustomScriptExtension"
}
==========================================================
更新

正如David所说,我们可以在不使用json文件的情况下使用此命令:

az vm extension set -n CustomScriptExtension --publisher Microsoft.Compute --version 1.8 --vm-name DVWinServerVMB --resource-group DVResourceGroup --settings "{'commandToExecute': 'powershell.exe md c:\\test'}"

谢谢你,杰森,这就成功了!也可以在没有json文件的情况下运行:az vm扩展集-n CustomScriptExtension--publisher Microsoft.Compute--version 1.8--vm名称DVWinServerVMB--ResourceGroup DVResourceGroup--settings“{'commandToExecute':'powershell.exe md c:\\test'}”谢谢您的分享,我将更新此答案。谢谢!尝试从ansible安装和扩展时正在处理此问题。不,ansible在哪里告诉你关于扩展的区别,微软的文档在这个主题上很难找到。你是救命恩人