Invoke-ModernMailContactGroupReport
SYNOPSIS
Generates a contact-centric distribution group membership report.
SYNTAX
Invoke-ModernMailContactGroupReport [[-OutPath] <String>] [[-RecipientType] <String[]>] [-IncludeNested]
[-IncludeDynamic] [-UnassignedOnly] [-Raw] [-AddHtmlOutput] [-DisableTelemetry]
[-ProgressAction <ActionPreference>] [<CommonParameters>]
DESCRIPTION
Reads mail contacts (and optionally mail users and guests) from Exchange Online and resolves which distribution lists, mail-enabled security groups, room lists and (optionally) dynamic distribution groups they belong to. Nested memberships can be expanded so you also see the parent groups a contact receives mail through. Contacts without any group membership are listed as well, which helps with cleanup. Supports optional export to CSV, JSON or HTML.
EXAMPLES
EXAMPLE 1
Invoke-ModernMailContactGroupReport
EXAMPLE 2
Invoke-ModernMailContactGroupReport -OutPath C:\Reports
EXAMPLE 3
Invoke-ModernMailContactGroupReport -IncludeNested -IncludeDynamic -OutPath C:\Reports\MailContactGroupReport.html
EXAMPLE 4
Invoke-ModernMailContactGroupReport -RecipientType MailContact,MailUser,GuestMailUser -Raw -OutPath C:\Reports\contacts.json
EXAMPLE 5
Invoke-ModernMailContactGroupReport -UnassignedOnly | Format-Table DisplayName, ExternalEmailAddress
PARAMETERS
-OutPath
Optional path for exporting the report. Provide a folder to create MailContactGroupReport.csv or a specific file path ending in .csv, .json or .html.
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-RecipientType
Which recipient types to analyze. Defaults to MailContact.
Type: String[]
Parameter Sets: (All)
Aliases:
Required: False
Position: 2
Default value: @('MailContact')
Accept pipeline input: False
Accept wildcard characters: False
-IncludeNested
Resolve nested group membership (contact is in group A, group A is member of group B).
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-IncludeDynamic
Include dynamic distribution groups (uses Get-DynamicDistributionGroupMember, slower in large tenants).
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-UnassignedOnly
Return only contacts that are not member of any group.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-Raw
Return one row per contact/group assignment instead of the per-contact summary.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-AddHtmlOutput
Emit an HTML report (MailContactGroupReport.html) next to the CSV/JSON export.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-DisableTelemetry
Disable telemetry.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-ProgressAction
Fill ProgressAction Description
Type: ActionPreference
Parameter Sets: (All)
Aliases: proga
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
INPUTS
OUTPUTS
System.Management.Automation.PSCustomObject
NOTES
RELATED LINKS
https://exchangepermissions.alweys.ch/modernmailtools/Invoke-ModernMailContactGroupReport