diff --git a/.DS_Store b/.DS_Store index 1206c0f..733953d 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Entra/Get-MFAReport.ps1 b/Entra/Get-MFAReport.ps1 new file mode 100644 index 0000000..18ff825 --- /dev/null +++ b/Entra/Get-MFAReport.ps1 @@ -0,0 +1,52 @@ +# Import the Microsoft Graph module +Import-Module Microsoft.Graph + +# Connect to Microsoft Graph +Connect-MgGraph -Scopes "User.Read.All", "UserAuthenticationMethod.Read.All" + +# Get all users +$users = Get-MgUser -All -Property Id, UserPrincipalName, DisplayName, AccountEnabled + +$totalUsers = $users.Count +$processCount = 0 + +# Initialize an array to store user information +$userInfo = @() + +Write-Progress -Activity "Getting User Details" -Status "Starting" -PercentComplete 0 + +foreach ($user in $users) { + $processCount++ + $percentComplete = (($processCount / $totalUsers) * 100) + Write-Progress -Activity "Getting User Details" -Status "Processing $processCount/$totalUsers - $($user.UserPrincipalName)" -PercentComplete $percentComplete + + # Get MFA methods for the user + $mfaMethods = Get-MgUserAuthenticationMethod -UserId $user.Id + + # Check if any MFA method is registered + $mfaRegistered = $mfaMethods.Count -gt 0 + + # Get user licenses + $licenses = Get-MgUserLicenseDetail -UserId $user.Id + + # Create a custom object for each user + $userObject = [PSCustomObject]@{ + UserPrincipalName = $user.UserPrincipalName + DisplayName = $user.DisplayName + AccountEnabled = $user.AccountEnabled + MFARegistered = $mfaRegistered + MFAMethods = ($mfaMethods.AdditionalProperties.'@odata.type' -join ', ').Replace('#microsoft.graph.', '') + Licenses = ($licenses.SkuPartNumber -join ', ') + } + + # Add the user object to the array + $userInfo += $userObject +} + +# Export the results to a CSV file +$userInfo | Export-Csv -Path "EntraIDUsersMFAReport.csv" -NoTypeInformation + +# Disconnect from Microsoft Graph +Disconnect-MgGraph + +Write-Host "Report generated: EntraIDUsersMFAReport.csv" \ No newline at end of file