Created
April 19, 2022 06:23
-
-
Save MrWyss-MSFT/7f5f82417e193f8198b721cf66b02262 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Function Get-ESPProgress () { | |
| <# | |
| .SYNOPSIS | |
| Reads the ESP Phase status from Registry, returns PSCustomObject | |
| #> | |
| [CmdletBinding()] | |
| param ( | |
| [Parameter(Mandatory, HelpMessage = 'Choose ESP Phase')] | |
| [ValidateSet("DevicePreparation", "DeviceSetup", "AccountSetup")] | |
| [String] | |
| $Phase | |
| ) | |
| $RegPath = "HKLM:\SOFTWARE\Microsoft\Provisioning\AutopilotSettings" | |
| try { | |
| $val = Get-ItemPropertyValue -Path $RegPath -Name $Phase"Category.Status" -ErrorAction Stop | |
| return $val | ConvertFrom-Json | |
| } | |
| catch { | |
| $val = $null | |
| } | |
| } | |
| $DevPrep = Get-ESPProgress -Phase DevicePreparation | |
| $DevSetup = Get-ESPProgress -Phase DeviceSetup | |
| $AccSetup = Get-ESPProgress -Phase AccountSetup | |
| $objcol = New-Object System.Collections.ArrayList | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Device Preparation" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevPrep.categoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Preparation" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevPrep.categoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "TPM Attestation" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevPrep.'DevicePreparation.TpmAttestationSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Preparation" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevPrep.'DevicePreparation.TpmAttestationSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "MEM Enrollment" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevPrep.'DevicePreparation.MdmEnrollmentSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Preparation" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevPrep.'DevicePreparation.MdmEnrollmentSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "ESP Provider Installation" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevPrep.'DevicePreparation.EspProviderInstallationSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Preparation" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevPrep.'DevicePreparation.EspProviderInstallationSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Initial Sync" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevPrep.'DevicePreparation.InitiateSyncSessions'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Preparation" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevPrep.'DevicePreparation.InitiateSyncSessions'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Set Continue Button" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevPrep.'DevicePreparation.SetContinueAnywayButtonVisibility'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Preparation" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevPrep.'DevicePreparation.SetContinueAnywayButtonVisibility'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Device Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevSetup.categoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevSetup.categoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Security Policies" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevSetup.'DeviceSetup.SecurityPoliciesSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevSetup.'DeviceSetup.SecurityPoliciesSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Certificates" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevSetup.'DeviceSetup.CertificatesSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevSetup.'DeviceSetup.CertificatesSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Network Connections" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevSetup.'DeviceSetup.NetworkConnectionsSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevSetup.'DeviceSetup.NetworkConnectionsSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Apps" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevSetup.'DeviceSetup.AppsSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevSetup.'DeviceSetup.AppsSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Reboot Coalecing" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevSetup.'DeviceSetup.RebootCoalescing'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevSetup.'DeviceSetup.RebootCoalescing'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Send results to MDM" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevSetup.'DeviceSetup.SendResultsToMdmServer'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevSetup.'DeviceSetup.SendResultsToMdmServer'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Save WhiteGlove result" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $DevSetup.'DeviceSetup.SaveWhiteGloveSuccessResult'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Device Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $DevSetup.'DeviceSetup.SaveWhiteGloveSuccessResult'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Account Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $AccSetup.categoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Account Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $AccSetup.categoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Waiting for AAD Registration" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $AccSetup.'AccountSetup.WaitingForAadRegistrationSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Account Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $AccSetup.'AccountSetup.WaitingForAadRegistrationSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Prepare MFA" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $AccSetup.'AccountSetup.PrepareMultifactorAuth'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Account Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $AccSetup.'AccountSetup.PrepareMultifactorAuth'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Security Policies" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $AccSetup.'AccountSetup.SecurityPoliciesSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Account Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $AccSetup.'AccountSetup.SecurityPoliciesSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Certificates" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $AccSetup.'AccountSetup.CertificatesSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Account Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $AccSetup.'AccountSetup.CertificatesSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Network Connections" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $AccSetup.'AccountSetup.NetworkConnectionsSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Account Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $AccSetup.'AccountSetup.NetworkConnectionsSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Apps" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $AccSetup.'AccountSetup.AppsSubcategory'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Account Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $AccSetup.'AccountSetup.AppsSubcategory'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $temp = New-Object System.Object | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryDescription" -Value "Send results to MDM" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatus" -Value $AccSetup.'AccountSetup.SendResultsToMdmServer'.subcategoryState | |
| $temp | Add-Member -MemberType NoteProperty -Name "Category" -Value "Account Setup" | |
| $temp | Add-Member -MemberType NoteProperty -Name "SubCategoryStatusText" -Value $AccSetup.'AccountSetup.SendResultsToMdmServer'.subcategoryStatusText | |
| $objcol.Add($temp) | Out-Null | |
| $objcol | Select Category, SubCategoryDescription,SubCategoryStatusText, SubCategoryStatus | ft -AutoSize |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment