使用模板将 VM 加入现有域

Join a VM to an existing domain using template

我正在使用 arm 模板构建多个虚拟机并将它们加入现有的 domain.However,它失败并出现以下错误。

模板抱怨的资源确实存在。

要加入的模板如下所示。

{

      "apiVersion": "2015-06-15",
      "type": "Microsoft.Compute/virtualMachines/extensions",
      "name": "[toLower(concat(variables('varnodeNamePrefix'),copyIndex(1),'.',variables('varlocation'),'.cloudapp.azure.com','/joindomain'))]",
      "location": "[variables('varlocation')]",
      "dependsOn": [
        "[resourceId('Microsoft.Compute/virtualMachines', concat(variables('varnodeNamePrefix'),copyIndex(1)))]",
        "[resourceId('Microsoft.Storage/storageAccounts', concat(variables('varstorageName'),copyIndex(1)))]"
      ],


      "properties": {
        "publisher": "Microsoft.Compute",
        "type": "JsonADDomainExtension",
        "typeHandlerVersion": "1.3",
        "autoUpgradeMinorVersion": true,
        "settings": {
          "Name": "[variables('vardomainToJoin')]",
          "OUPath": "[variables('varouPath')]",
          "User": "[variables('vardomainUsername')]",
          "Restart": "true",
          "Options": "[variables('vardomainJoinOptions')]"
        },
        "protectedSettings": {
          "Password": "[variables('vardomainPassword')]"
        }
      },
      "copy": {
        "name": "dominjoin",
        "count": "[variables('varvmCount')]"
      }
    }

谢谢

您的扩展名应该是这样的:vm_name/extension_name,所以在您的情况下它应该是:

"name": "[toLower(concat(variables('varnodeNamePrefix'),copyIndex(1),'/joindomain'))]",

这对 azure 中的所有子资源都有效。要识别此扩展所属的 "to which" vm,它需要 vm 资源名称,而不是 fqdn 或 ip 地址或类似的东西(因为它是 Azure 级别的操作)。