|
167 | 167 | If you do not want to execute the 'Azure Landing Zones (ALZ) Policy Version Checker' feature then use this parameter
|
168 | 168 | PS C:\>.\AzGovVizParallel.ps1 -ManagementGroupId <your-Management-Group-Id> -NoALZPolicyVersionChecker
|
169 | 169 |
|
| 170 | +.Parameter ALZPolicyAssignmentsChecker |
| 171 | + 'Azure Landing Zones (ALZ) Policy Assignments Checker' for Policy and Set assignments. Azure Governance Visualizer will clone the ALZ Library GitHub repository and collect the standard ALZ policy and set assignments. The ALZ data will be compared with the data from your tenant so that you can get an inventory for ALZ policy and set assignments that already exist in your tenant and compare with the standard assignments of ALZ. The 'Azure Landing Zones (ALZ) Policy Assignments Checker' results will be displayed in the TenantSummary. |
| 172 | + If you do want to execute the 'Azure Landing Zones (ALZ) Policy Version Checker' feature then use this parameter |
| 173 | + PS C:\>.\AzGovVizParallel.ps1 -ManagementGroupId <your-Management-Group-Id> -NoALZPolicyVersionChecker |
| 174 | +
|
| 175 | +.Parameter ALZManagementGroupsIds |
| 176 | + 'Azure Landing Zones (ALZ) Management groups Ids'. This is the list of Ids of the ALZ management groups hierarchy. |
| 177 | + This is required if ALZPolicyAssignmentsChecker is enabled. If a management group Id is not provided, the default Id will be checked |
| 178 | + PS C:\>.\AzGovVizParallel.ps1 -ManagementGroupId <your-Management-Group-Id> -ALZPolicyAssignmentsChecker -ALZManagementGroupsIds @{ |
| 179 | + root = '<Intermediary root management group Id>' |
| 180 | + platform = '<Platform management group Id>' |
| 181 | + connectivity = '<Connectivity management group Id>' |
| 182 | + identity = '<Identity management group Id>' |
| 183 | + management = '<Management management group Id>' |
| 184 | + landing_zones = '<Landing_zones management group Id>' |
| 185 | + corp = '<Corp management group Id>' |
| 186 | + online = '<Online management group Id>' |
| 187 | + sandboxes = '<Sandboxes management group Id>' |
| 188 | + decommissioned = '<Decommissioned management group Id>' |
| 189 | + } |
| 190 | +
|
170 | 191 | .PARAMETER NoDefinitionInsightsDedicatedHTML
|
171 | 192 | DefinitionInsights will be written to a separate HTML file `*_DefinitionInsights.html`. If you want to keep DefinitionInsights in the main html file then use this parameter
|
172 | 193 | PS C:\>.\AzGovVizParallel.ps1 -ManagementGroupId <your-Management-Group-Id> -NoDefinitionInsightsDedicatedHTML
|
|
341 | 362 | Define if the 'Azure Landing Zones (ALZ) Policy Version Checker' feature should not be executed
|
342 | 363 | PS C:\>.\AzGovVizParallel.ps1 -ManagementGroupId <your-Management-Group-Id> -NoALZPolicyVersionChecker
|
343 | 364 |
|
| 365 | + Define if the 'Azure Landing Zones (ALZ) Policy assignments Checker' feature should be executed |
| 366 | + PS C:\>.\AzGovVizParallel.ps1 -ManagementGroupId <your-Management-Group-Id> -ALZPolicyAssignmentsChecker -ALZManagementGroupsIds @{ |
| 367 | + root = '<Intermediary root management group Id>' |
| 368 | + platform = '<Platform management group Id>' |
| 369 | + connectivity = '<Connectivity management group Id>' |
| 370 | + identity = '<Identity management group Id>' |
| 371 | + management = '<Management management group Id>' |
| 372 | + landing_zones = '<Landing_zones management group Id>' |
| 373 | + corp = '<Corp management group Id>' |
| 374 | + online = '<Online management group Id>' |
| 375 | + sandboxes = '<Sandboxes management group Id>' |
| 376 | + decommissioned = '<Decommissioned management group Id>' |
| 377 | + } |
| 378 | +
|
344 | 379 | Define if DefinitionInsights should not be written to a seperate html file (*_DefinitionInsights.html)
|
345 | 380 | PS C:\>.\AzGovVizParallel.ps1 -ManagementGroupId <your-Management-Group-Id> -NoDefinitionInsightsDedicatedHTML
|
346 | 381 |
|
@@ -371,7 +406,7 @@ Param
|
371 | 406 | $Product = 'AzGovViz',
|
372 | 407 |
|
373 | 408 | [string]
|
374 |
| - $ProductVersion = '6.6.3', |
| 409 | + $ProductVersion = '6.7.0', |
375 | 410 |
|
376 | 411 | [string]
|
377 | 412 | $GithubRepository = 'aka.ms/AzGovViz',
|
@@ -569,6 +604,23 @@ Param
|
569 | 604 | [switch]
|
570 | 605 | $NoALZPolicyVersionChecker,
|
571 | 606 |
|
| 607 | + [switch] |
| 608 | + $ALZPolicyAssignmentsChecker, |
| 609 | + |
| 610 | + [hashtable] |
| 611 | + $ALZManagementGroupsIds <#= @{ |
| 612 | + root = '<Intermediary root management group Id>' |
| 613 | + platform = '<Platform management group Id>' |
| 614 | + connectivity = '<Connectivity management group Id>' |
| 615 | + identity = '<Identity management group Id>' |
| 616 | + management = '<Management management group Id>' |
| 617 | + landing_zones = '<Landing_zones management group Id>' |
| 618 | + corp = '<Corp management group Id>' |
| 619 | + online = '<Online management group Id>' |
| 620 | + sandboxes = '<Sandboxes management group Id>' |
| 621 | + decommissioned = '<Decommissioned management group Id>' |
| 622 | + }#>, |
| 623 | + |
572 | 624 | [switch]
|
573 | 625 | $NoDefinitionInsightsDedicatedHTML,
|
574 | 626 |
|
@@ -694,6 +746,7 @@ if ($ManagementGroupId -match ' ') {
|
694 | 746 | . ".\$($ScriptPath)\functions\processNetwork.ps1"
|
695 | 747 | . ".\$($ScriptPath)\functions\processStorageAccountAnalysis.ps1"
|
696 | 748 | . ".\$($ScriptPath)\functions\processALZPolicyVersionChecker.ps1"
|
| 749 | +. ".\$($ScriptPath)\functions\processALZPolicyAssignmentsChecker.ps1" |
697 | 750 | . ".\$($ScriptPath)\functions\getPIMEligible.ps1"
|
698 | 751 | . ".\$($ScriptPath)\functions\testGuid.ps1"
|
699 | 752 | . ".\$($ScriptPath)\functions\apiCallTracking.ps1"
|
@@ -1073,6 +1126,7 @@ if (-not $HierarchyMapOnly) {
|
1073 | 1126 | $htHashesBuiltInPolicy = [System.Collections.Hashtable]::Synchronized(@{})
|
1074 | 1127 | $arrayCustomBuiltInPolicyParity = [System.Collections.ArrayList]@()
|
1075 | 1128 | $arrayRemediatable = [System.Collections.ArrayList]@()
|
| 1129 | + $ALZPolicyAssignmentsDifferences = @{} |
1076 | 1130 | }
|
1077 | 1131 |
|
1078 | 1132 | if (-not $HierarchyMapOnly) {
|
@@ -1273,6 +1327,35 @@ if (-not $HierarchyMapOnly) {
|
1273 | 1327 | showMemoryUsage
|
1274 | 1328 | }
|
1275 | 1329 | }
|
| 1330 | + |
| 1331 | +if (-not $HierarchyMapOnly) { |
| 1332 | + if ($ALZPolicyAssignmentsChecker -and $ALZManagementGroupsIds.Count -gt 0) { |
| 1333 | + switch ($azAPICallConf['checkContext'].Environment.Name) { |
| 1334 | + 'Azurecloud' { |
| 1335 | + Write-Host "'Azure Landing Zones (ALZ) Policy Assignments Checker' feature supported for Cloud environment '$($azAPICallConf['checkContext'].Environment.Name)'" |
| 1336 | + processALZPolicyAssignmentsChecker |
| 1337 | + } |
| 1338 | + 'AzureChinaCloud' { |
| 1339 | + Write-Host "'Azure Landing Zones (ALZ) Policy Assignments Checker' feature supported for Cloud environment '$($azAPICallConf['checkContext'].Environment.Name)'" |
| 1340 | + processALZPolicyAssignmentsChecker |
| 1341 | + } |
| 1342 | + 'AzureUSGovernment' { |
| 1343 | + Write-Host "'Azure Landing Zones (ALZ) Policy Assignments Checker' feature supported for Cloud environment '$($azAPICallConf['checkContext'].Environment.Name)'" |
| 1344 | + processALZPolicyAssignmentsChecker |
| 1345 | + } |
| 1346 | + Default { |
| 1347 | + Write-Host "'Azure Landing Zones (ALZ) Policy Assignments Checker' feature NOT supported for Cloud environment '$($azAPICallConf['checkContext'].Environment.Name)'" |
| 1348 | + Write-Host "Setting parameter -ALZPolicyAssignmentsChecker to 'false'" |
| 1349 | + $ALZPolicyAssignmentsChecker = $false |
| 1350 | + } |
| 1351 | + } |
| 1352 | + } |
| 1353 | + else { |
| 1354 | + #Write-Host "Skipping 'Azure Landing Zones (ALZ) Policy Assignments Checker' (parameter -ALZPolicyAssignmentsChecker = $ALZPolicyAssignmentsChecker)" |
| 1355 | + } |
| 1356 | +} |
| 1357 | + |
| 1358 | + |
1276 | 1359 | #endregion runDataCollection
|
1277 | 1360 |
|
1278 | 1361 | #region createoutputs
|
|
0 commit comments