如果我没理解错的话,你想检查一下Vulnerabilities in security configuration on your machines should be remediated
policy 中参数的状态[Preview]: Enable Monitoring in Azure Security Center
。
目前,我们可以通过
$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
在门户中检查它们: