Compare Outlook local and server stores

This is useful when verifying if your PST import was successfully uploaded to Exchange or Office 365.

To count total # of items in Outlook https://answers.microsoft.com/en-us/msoffice/forum/all/show-total-number-of-items-make-it-so-for-all/f0826c4d-461e-49ae-be89-aeaac7d130dd

For counting the total numbers of all items in all folders, please apply below VBA code in Outlook.

1. Press Alt + F11 keys simultaneously to open the Microsoft Visual Basic for Applications window.

2. Click Insert > Module, and then paste below VBA code into the new opening Module window.

VBA: Count/show total numbers of items/emails in all folders in Outlook

3. Press the F5 key or click the Run button to run this VBA. And now the total number of items/emails in each folder is showing beside the folder name.

Sub ShowTotalInAllFolders()
Dim oStore As Outlook.Store
Dim oRoot As Outlook.Folder

On Error Resume Next

For Each oStore In Application.Session.Stores
Set oRoot = oStore.GetRootFolder
ShowTotalInFolders oRoot
Next
End Sub

Private Sub ShowTotalInFolders(ByVal Root As Outlook.Folder)
Dim oFolder As Outlook.Folder

On Error Resume Next

If Root.Folders.Count > 0 Then
For Each oFolder In Root.Folders
oFolder.ShowItemCount = olShowTotalItemCount
ShowTotalInFolders oFolder
Next
End If
End Sub

This will undo the total count and put it back to the unread count

Sub ShowTotalInAllFolders()
Dim oStore As Outlook.Store
Dim oRoot As Outlook.Folder

On Error Resume Next

For Each oStore In Application.Session.Stores
Set oRoot = oStore.GetRootFolder
ShowTotalInFolders oRoot
Next
End Sub

Private Sub ShowTotalInFolders(ByVal Root As Outlook.Folder)
Dim oFolder As Outlook.Folder

On Error Resume Next

If Root.Folders.Count > 0 Then
For Each oFolder In Root.Folders
oFolder.ShowItemCount = olShowUnreadItemCount
ShowTotalInFolders oFolder
Next
End If
End Sub

Get folder content counts from Office 365

https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/connect-to-exchange-online-powershell?view=exchange-ps

Allow scripts downloaded from Internet

Set-ExecutionPolicy RemoteSigned

Enter your admin account and password

$UserCredential = Get-Credential

Connect to Office 365 Exchange shell

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Run this… dunno why

Import-PSSession $Session -DisableNameChecking

Get the statistics for a specific user which will include folder name and total # of items in each folder

Get-MailboxFolderStatistics desired.username | Select Name,ItemsinFolder

Disconnect before closing the powershell window

Remove-PSSession $Session