Add message-counter.ps1

This commit is contained in:
2025-09-22 19:20:19 +00:00
parent db99d167f5
commit 6ba609a5bf

41
message-counter.ps1 Normal file
View File

@ -0,0 +1,41 @@
<#
.SYNOPSIS
Count the number of received emails in a Microsoft 365 mailbox during a specified time window.
.DESCRIPTION
This script queries Exchange Online via Microsoft Graph to return the total count of emails
received by a specific mailbox within a given date range. It searches all folders in the mailbox
(including Inbox, subfolders, Junk, and Deleted Items), ensuring that emails moved after delivery
are still included in the count. Drafts are excluded, and self-sent messages from the mailbox
owner are not counted as "received."
Date boundaries are applied using local time (Eastern Time in this example).
Adjust offsets (-05:00 / -04:00) for daylight savings or your region.
.PARAMETER $u
The target users email address. Example: 'f@d.org'
.PARAMETER $start
The inclusive start of the time window in ISO 8601 format with time zone offset.
Example: '2025-01-01T00:00:00-05:00' for January 1st, 2025, 12:00 AM ET.
.PARAMETER $end
The exclusive end of the time window in ISO 8601 format with time zone offset.
Example: '2025-02-01T00:00:00-05:00' for February 1st, 2025, 12:00 AM ET.
.OUTPUTS
Returns a single integer representing the count of received messages.
.NOTES
Requirements:
- Microsoft.Graph PowerShell module
- Connect-MgGraph with Mail.Read delegated permission (if signed in as the user)
OR Mail.Read application permission (with admin consent) if run as a service.
Example to install module: Install-Module Microsoft.Graph
Example to connect: Connect-MgGraph -Scopes Mail.Read
(c) 2025 Robbie Ferguson. All rights reserved.
#>
$u='mailbox@domain.com';$start='2025-01-01T00:00:00-05:00';$end='2025-02-01T00:00:00-05:00';$c=0; Get-MgUserMessage -UserId $u -Filter "receivedDateTime ge $start and receivedDateTime lt $end and isDraft eq false and (from/emailAddress/address ne '$u')" -CountVariable c -ConsistencyLevel eventual -PageSize 1 | Out-Null; $c