Compare commits
3 Commits
6c306c19f7
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 38a31f1f62 | |||
| 74a83e7444 | |||
| d118b574a9 |
@@ -18,5 +18,5 @@ foreach ($mailbox in $mailboxes) {
|
||||
$processCount++
|
||||
$percentComplete = (($processCount / $totalMailboxes) * 100)
|
||||
Write-Progress -Activity "Applying calendar permissions" -Status "Processing $calendarPath" -PercentComplete $percentComplete
|
||||
Add-MailboxFolderPermission -Identity $calendarPath -User $upn -AccessRights $calendarPermission -SharingPermissionFlags Delegate
|
||||
Set-MailboxFolderPermission -Identity $calendarPath -User $upn -AccessRights $calendarPermission -SharingPermissionFlags None
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
# 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 1
|
||||
|
||||
# Check the preferred MFA method
|
||||
$uri = "https://graph.microsoft.com/beta/users/$($user.Id)/authentication/signInPreferences"
|
||||
$currentDefaults = Invoke-MgGraphRequest -Uri $uri -Method GET -OutputType PSObject
|
||||
|
||||
# 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
|
||||
DefaultMFAMethod = $currentDefaults.userPreferredMethodForSecondaryAuthentication
|
||||
AuthenticationMethods = ($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"
|
||||
Vendored
BIN
Binary file not shown.
Reference in New Issue
Block a user