pwsh/dev/functions/buildPolicyAllJSON.ps1 (58 lines of code) (raw):

function buildPolicyAllJSON { Write-Host 'Creating PolicyAll JSON' $startPolicyAllJSON = Get-Date $htPolicyAndPolicySet = [ordered]@{} $htPolicyAndPolicySet.Policy = [ordered]@{} $htPolicyAndPolicySet.PolicySet = [ordered]@{} $htPolicyAndPolicySet.PolicyAssignment = [ordered]@{} foreach ($policy in ($tenantPoliciesDetailed | Sort-Object -Property Type, ScopeMGLevel, PolicyDefinitionId)) { $htPolicyAndPolicySet.Policy.($policy.PolicyDefinitionId.ToLower()) = [ordered]@{ PolicyType = $policy.Type ScopeMGLevel = $policy.ScopeMGLevel Scope = $policy.Scope ScopeId = $policy.scopeId PolicyDisplayName = $policy.PolicyDisplayName PolicyDefinitionName = $policy.PolicyDefinitionName PolicyDefinitionId = $policy.PolicyDefinitionId PolicyEffect = $policy.PolicyEffect PolicyCategory = $policy.PolicyCategory UniqueAssignmentsCount = $policy.UniqueAssignmentsCount UniqueAssignments = $policy.UniqueAssignments UsedInPolicySetsCount = $policy.UsedInPolicySetsCount UsedInPolicySets = $policy.UsedInPolicySet4JSON CreatedOn = $policy.CreatedOn CreatedBy = $policy.CreatedByJson UpdatedOn = $policy.UpdatedOn UpdatedBy = $policy.UpdatedByJson JSON = $policy.Json } } foreach ($policySet in ($tenantPolicySetsDetailed | Sort-Object -Property Type, ScopeMGLevel, PolicySetDefinitionId)) { $htPolicyAndPolicySet.PolicySet.($policySet.PolicySetDefinitionId.ToLower()) = [ordered]@{ PolicySetType = $policySet.Type ScopeMGLevel = $policySet.ScopeMGLevel Scope = $policySet.Scope ScopeId = $policySet.scopeId PolicySetDisplayName = $policySet.PolicySetDisplayName PolicySetDefinitionName = $policySet.PolicySetDefinitionName PolicySetDefinitionId = $policySet.PolicySetDefinitionId PolicySetCategory = $policySet.PolicySetCategory UniqueAssignmentsCount = $policySet.UniqueAssignmentsCount UniqueAssignments = $policySet.UniqueAssignments PoliciesUsedCount = $policySet.PoliciesUsedCount PoliciesUsed = $policySet.PoliciesUsed4JSON CreatedOn = $policySet.CreatedOn CreatedBy = $policySet.CreatedByJson UpdatedOn = $policySet.UpdatedOn UpdatedBy = $policySet.UpdatedByJson JSON = $policySet.Json } } foreach ($key in $htCacheAssignmentsPolicy.keys | Sort-Object) { $htPolicyAndPolicySet.PolicyAssignment.($key.ToLower()) = $htCacheAssignmentsPolicy.($key).Assignment } Write-Host " Exporting PolicyAll JSON '$($outputPath)$($DirectorySeparatorChar)$($fileName)_PolicyAll.json'" $htPolicyAndPolicySet | ConvertTo-Json -Depth 99 | Set-Content -Path "$($outputPath)$($DirectorySeparatorChar)$($fileName)_PolicyAll.json" -Encoding utf8 -Force $endPolicyAllJSON = Get-Date Write-Host "Creating PolicyAll JSON duration: $((New-TimeSpan -Start $startPolicyAllJSON -End $endPolicyAllJSON).TotalSeconds) seconds" }