Pre-requisite:
Install-Module -Name ExchangeOnlineManagement
------------------------------Start code---------------------------------------------
# Connect to Azure AD Connect-AzureAD # Get the current date $currentDate = Get-Date # Calculate the date 45 days ago $inactiveDate = $currentDate.AddDays(-45) # Get all users $allUsers = Get-AzureADUser -All $true # Filter users who haven't signed in for the last 45 days $inactiveUsers = $allUsers | Where-Object { ($_.LastDirSyncTime -le $inactiveDate -or $_.LastDirSyncTime -eq $null) -and ($_.RefreshTokensValidFromDateTime -le $inactiveDate -or $_.RefreshTokensValidFromDateTime -eq $null) } # Display the results $inactiveUsers | Select-Object DisplayName, UserPrincipalName, LastDirSyncTime, RefreshTokensValidFromDateTime # Optionally, export the results to a CSV file $inactiveUsers | Export-Csv -Path "InactiveUsers.csv" -NoTypeInformation # Disconnect from Azure AD Disconnect-AzureAD