你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

了解计算机配置分配资源

分配 Azure Policy 时,如果类别为“Guest Configuration”,则会提供元数据来描述来宾分配。

提供本文档的视频演练

可以将来宾分配视为计算机和 Azure Policy 方案之间的链接。 例如,下面的代码片段将 Azure Windows 基线配置与策略范围内任何计算机的最低版本 1.0.0 相关联。

"metadata": {
    "category": "Guest Configuration",
    "guestConfiguration": {
        "name": "AzureWindowsBaseline",
        "version": "1.*"
    }
  //additional metadata properties exist
}

Azure Policy 如何使用计算机配置分配

计算机配置服务使用元数据信息自动为具有 AuditIfNotExistsDeployIfNotExists 策略效果的定义创建审核资源。 资源类型为 Microsoft.GuestConfiguration/guestConfigurationAssignments。 Azure Policy 使用来宾分配资源的 complianceStatus 属性来报告合规性状态。 有关详细信息,请参阅获取符合性数据

删除 Azure Policy 中的来宾分配

删除 Azure Policy 分配时,如果该策略创建了计算机配置分配,那么计算机配置分配也会被删除。

从计划中删除 Azure Policy 分配时,需要手动删除策略创建的任何计算机配置分配。 可以通过在 Azure 门户上导航到来宾分配页并删除该分配来完成此操作。

手动创建计算机配置分配

可以使用 Azure Policy 或任何客户端 SDK,在 Azure 资源管理器中创建来宾分配资源。

部署模板示例:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "apiVersion": "2021-01-25",
      "type": "Microsoft.Compute/virtualMachines/providers/guestConfigurationAssignments",
      "name": "myMachine/Microsoft.GuestConfiguration/myConfig",
      "location": "westus2",
      "properties": {
        "guestConfiguration": {
          "name": "myConfig",
          "contentUri": "https://mystorageaccount.blob.core.windows.net/mystoragecontainer/myConfig.zip?sv=SASTOKEN",
          "contentHash": "SHA256HASH",
          "version": "1.0.0",
          "assignmentType": "ApplyAndMonitor",
          "configurationParameter": {}
        }
      }
    }
  ]
}

下表描述了来宾分配资源的每个属性。

属性 说明
name 内容包 MOF 文件中配置的名称。
contentUri 指向内容包 (.zip) 的 HTTPS URI 路径。
contentHash 内容包的 SHA256 哈希值,用于验证是否未更改。
version 内容包的版本。 仅用于内置包,不用于自定义内容包。
assignmentType 分配行为。 允许的值:AuditApplyandMonitorApplyandAutoCorrect
configurationParameter 内容包 MOF 文件中的 DSC 资源类型、名称和值的列表,该文件下载到计算机之后将被重写。

删除手动创建的计算机配置分配

必须手动删除通过任何手动方法(如 Azure 资源管理器模板部署)创建的计算机配置分配。 删除父资源(虚拟机或已启用 Arc 的虚拟机计算机)时也会删除计算机配置分配。

若要手动删除计算机配置分配,请使用以下示例。 请务必替换用“<>”括号指示的所有示例字符串。

# First get details about the machine configuration assignment
$resourceDetails = @{
  ResourceGroupName = '<resource-group-name>'
  ResourceType      = 'Microsoft.Compute/virtualMachines/providers/guestConfigurationAssignments/'
  ResourceName      = '<vm-name>/Microsoft.GuestConfiguration'
  ApiVersion        = '2020-06-25'
}
$guestAssignment = Get-AzResource @resourceDetails

# Review details of the machine configuration assignment
$guestAssignment

# After reviewing properties of $guestAssignment to confirm
$guestAssignment | Remove-AzResource

后续步骤