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