在使用ARM模板创建时将Azure VM添加到Azure AD组

cgh8pdjw  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(126)

希望你们都好,
一年前,我也有类似的要求,但这是为将机器添加到本地AD组。Add onprem AD group while provisioning Azure VM with ARM template -Azure virtual desktop
我用自定义扩展脚本成功了。现在,我们需要将机器添加到**only * Azure AD组(而不是与AAD同步的onprem组)。出于安全考虑,我们不得不限制在配置SPN上授予API权限。
我可以运行一个powershell脚本,将机器作为输入,手动将机器添加到AD组。
如何将powershell集成到ARM模板?因为委托的API权限需要SPN和用户验证AAD以执行活动。
想知道是否有人有一些想法?
问候纳文S

bkkx9g8r

bkkx9g8r1#

如何将powershell集成到ARM模板?
按照以下步骤使用ARM模板中的PowerShell脚本将计算机添加到组中
我遵循了这个MS Doc作为参考,使用ARM模板创建自定义脚本扩展。
1.将下面的PowerShell脚本上传到您的存储帐户2.为VM分配所需的角色,以便从存储帐户访问脚本。

$MachineName = "<VMName>"
    $GroupName   = "<ADGroupName>"
    $machine = Get-AzureADDevice -Filter "DisplayName eq '$MachineName'"
    if ($machine -eq $null) {
        Write-Host "Machine '$MachineName' not found."
        exit
    }
    $group = Get-AzureADGroup -Filter "DisplayName eq '$GroupName'"
    if ($group -eq $null) {
        Write-Host "Group '$GroupName' not found."
        exit
    } 
  Add-AzureADGroupMember -ObjectId $group.ObjectId -RefObjectId $machine.ObjectId
  Write-Host "Machine '$MachineName' added to group '$GroupName' successfully."

1.您可以通过导航到以下路径找到fileUris

Azure门户>存储帐户>您的存储帐户>选择容器

1.部署以下ARM模板

ARM模板。

{
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "variables": {},
      "resources": [
        {
          "type": "Microsoft.Compute/virtualMachines",
          "apiVersion": "2022-03-01",
          "name": "<VMName>",
          "location": "<ResourceGroup Location>",
          "properties": {},
          "resources": [
            {
              "type": "extensions",
              "name": "customScript",
              "location": "<ResourceGroup Location>",
              "dependsOn": [
                "[concat('Microsoft.Compute/virtualMachines/', 'sampleVM')]"
              ],
              "apiVersion": "2022-03-01",
              "properties": {
                "publisher": "Microsoft.Compute",
                "type": "CustomScriptExtension",
                "typeHandlerVersion": "1.10",
                "settings": {
                  "fileUris": [
                    "powershell_script_url"
                  ],
                  "commandToExecute": "powershell -ExecutionPolicy Unrestricted -File script.ps1 -MachineName 'sampleVM'"
                }
              }
            }
          ]
        }
      ],
      "outputs": {}
    }

ARM部署完成后,将在Azure VM中创建自定义扩展,并且设备也将添加到Azure AD组中。

相关问题