a PowerShell script that can help you quickly identify any duplicate proxy addresses across all users in your Azure AD environment.


# Import the AzureAD module (or Microsoft.Graph if using that module)
Import-Module AzureAD  # Or 'Import-Module Microsoft.Graph' if using the Microsoft Graph module

# Connect to Azure AD
Connect-AzureAD

# Get all users from Azure AD and their proxyAddresses
$users = Get-AzureADUser -All $true | Select-Object ObjectId, UserPrincipalName, ProxyAddresses

# Flatten the ProxyAddresses and identify duplicates
$allProxyAddresses = @()
foreach ($user in $users) {
    if ($user.ProxyAddresses) {
        $allProxyAddresses += $user.ProxyAddresses
    }
}

# Group by ProxyAddress and filter duplicates
$duplicateProxyAddresses = $allProxyAddresses | Group-Object | Where-Object { $_.Count -gt 1 }

# Output duplicate proxy addresses
if ($duplicateProxyAddresses) {
    $duplicateProxyAddresses | ForEach-Object {
        $proxy = $_.Name
        $occurrences = $_.Count
        $duplicateUsers = $users | Where-Object { $_.ProxyAddresses -contains $proxy }
        
        Write-Host "Duplicate ProxyAddress: $proxy occurs $occurrences times"
        foreach ($user in $duplicateUsers) {
            Write-Host "`tUser: $($user.UserPrincipalName) - ObjectId: $($user.ObjectId)"
        }
    }
} else {
    Write-Host "No duplicate proxy addresses found."
}

test Exchange Administrator Tecism
Sorry! The Author has not filled his profile.
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments