Back to script samples page
Create a list of inactive Exchange mailboxes and save to CSV

This script will demonstrate how to generate a report, save it to a CSV file, which provides a list of all the users who have not logged in for at least 30 days.  With this information you can then take the appropriate action to remove unused mailboxes.

#Create a list of inactive Exchange mailboxes and save to CSV.

#To begin, you will need to load the Azure Active Directory module to be able to run the report.
Import-Module MSOnline

#Capture administrative credential for future connections. 
$credential = Get-Credential

#Establishes Online Services connection to Azure Active Directory.  
Connect-MsolService -Credential $credential

#Creates an Exchange Online session. 
$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "" -Credential $credential -Authentication "Basic" -AllowRedirection

#Import session commands. 
Import-PSSession $ExchangeSession

#This command will generate a list of users inactive for 30 days, or longer, and export to a CSV file.
Get-StaleMailboxDetailReport | Sort username -Unique | SELECT TenantName, UserName, WindowsLiveID, LastLogin, DaysInactive | Export-Csv c:\reports\StaleUsers30.csv
Downloaded 0 times
* * * . - - (3)