PowerShell / REST Microsoft Azure: Get-AzPolicyStateSummary?
Moin!
Ich möchte den Ist-Status der Policy Compliance in einer Subscription reporten.
Ich ziehe also folgend die Daten:
$azState = Get-AzPolicyStateSummary -SubscriptionId $subscriptionId
$exportObject.Compliance.TotalRessources = $azState.Results.ResourceDetails[0].Count + $azState.Results.ResourceDetails[1].Count + $azState.Results.ResourceDetails[2].Count
$exportObject.Compliance.CompliantRessources = $azState.Results.ResourceDetails[0].Count
$exportObject.Compliance.NonCompliantRessources = $azState.Results.ResourceDetails[1].Count
$exportObject.Compliance.Exceptions = $azState.Results.ResourceDetails[2].Count
$exportObject.Compliance.Percentage = [math]::Round((1.0 - $exportObject.Compliance.NonCompliantRessources / ($exportObject.Compliance.CompliantRessources + $exportObject.Compliance.NonCompliantRessources + $exportObject.Compliance.Exceptions)) * 100)
Beziehen kann ich so erfolgreich die Resource Compliance in Prozent, die Gesamtzahl der Ressourcen sowie die Aufteilung wie viel Compliant, Non-Complient und 'Other' sind.
Problematisch ist aber, dass ich nicht die Non-Compliant Initiatives und Non-Compliant Policies beziehen kann. Die Werte, wie ich sieh auch beziehe scheinen nie mit diesen Werten übereinzustimmen. Entweder kriege ich deutlich niedrigere oder deutlich höhere Werte.
Hat daher jemand eine Idee, wie ich die Daten richtig filtern kann oder z.B. über die Graph API die korrekten Daten beziehen kann?
1 Antwort
Hi,
Ressourcen aus "Get-AzPolicyStateSummary" werden auf Ebene von Policy-Definitionen und Initiative-Ebene aufgelistet, nicht auf der Ebene von einzelnen Ressourcen.
Habe aber gerade keine Zeit für intensivere Recherche.
Ich würde etwas die Richtung machen:
foreach ($result in $azState.Results)
{
if ($result.InitiativeId -ne $null)
{
# Compliance für Initiatives
}
elseif ($result.PolicyDefinitionName -ne $null)
{
# Compliance für Policies
}
}
Hmm ok, vielleicht kann ich später weiter helfen
Habe ich schon mit einem Filter versucht;
Führt leider zu den genannten "falschen Werten".