如果我没误会的话,你要检查策略[Preview]: Enable Monitoring in Azure Security Center中Vulnerabilities in security configuration on your machines should be remediated参数的状态。
目前,我们可以用
$policy = Get-AzPolicyAssignment | Where-Object {$_.Properties.displayName -eq '[Preview]: Enable Monitoring in Azure Security Center'}
但默认情况下我们似乎无法在此命令中获取参数的状态
如果您的最终目标是检查状态,如果是Disabled,那么您将其设置为AuditIfNotExists。
如果是这样,你可以使用下面的命令直接设置它,无论是Disabled还是AuditIfNotExists,都会设置为AuditIfNotExists(如果你想设置为Disabled ,只需将命令更改为systemConfigurationsMonitoringEffect = "Disabled")。
$policy = Get-AzPolicyAssignment | Where-Object {$_.Properties.displayName -eq '[Preview]: Enable Monitoring in Azure Security Center'}
Set-AzPolicyAssignment -Id $policy.ResourceId -PolicyParameterObject @{systemConfigurationsMonitoringEffect = "AuditIfNotExists"}
然后我们检查$policy.Properties.parameters,它出现了。检查门户,您会发现它也有效。
更新:
如果只使用Get-AzPolicyAssignment 不带任何参数,Initiative 策略将不会返回。
导航到门户中的Policy -> Assignments,找到你想要的Initiative类型策略,点击它,复制Assignment ID。
然后使用下面的命令。
Get-AzPolicyAssignment -Id <Assignment ID>
如果你想获取Initiative策略下的所有策略,试试下面的命令,$policies就是你想要的。
$initiative = Get-AzPolicyAssignment -Id <Assignment ID>
$policies = (Get-AzPolicySetDefinition -Id $initiative.Properties.policyDefinitionId).Properties.policyDefinitions
在门户中查看它们: