Get-EXORecipient
Exchange Online Management: Gets recipient objects in the organization
#Requires -Version 5.1
[CmdletBinding(DefaultParameterSetName = 'Default')]
Param(
[Parameter(ParameterSetName = 'Default')]
[string]$Identity,
[Parameter(Mandatory = $true, ParameterSetName = 'Search')]
[string]$AnrSearch,
[Parameter(ParameterSetName = 'Default')]
[Parameter(ParameterSetName = 'Search')]
[switch]$IncludeSoftDeletedRecipients,
[Parameter(ParameterSetName = 'Default')]
[Parameter(ParameterSetName = 'Search')]
[ValidateSet('DynamicDistributionGroup','MailContact','MailNonUniversalGroup','MailUniversalDistributionGroup','MailUniversalSecurityGroup','MailUser','PublicFolder','UserMailbox')]
[string[]]$RecipientType,
[Parameter(ParameterSetName = 'Default')]
[Parameter(ParameterSetName = 'Search')]
[ValidateSet('DiscoveryMailbox','DynamicDistributionGroup','EquipmentMailbox','GroupMailbox','GuestMailUser','LegacyMailbox','LinkedMailbox','LinkedRoomMailbox','MailContact','MailForestContact','MailNonUniversalGroup','MailUniversalDistributionGroup','MailUniversalSecurityGroup','MailUser','PublicFolder','PublicFolderMailbox','RemoteEquipmentMailbox','RemoteRoomMailbox','RemoteSharedMailbox','RemoteTeamMailbox','RemoteUserMailbox','RoomList','RoomMailbox','SchedulingMailbox','SharedMailbox','TeamMailbox','UserMailbox')]
[string[]]$RecipientTypeDetails,
[Parameter(ParameterSetName = 'Default')]
[Parameter(ParameterSetName = 'Search')]
[int]$ResultSize = 1000,
[Parameter(ParameterSetName = 'Default')]
[Parameter(ParameterSetName = 'Search')]
[ValidateSet('Minimum','Archive','Custom','MailboxMove','Policy','All')]
[string]$PropertySet = 'Minimum',
[Parameter(ParameterSetName = 'Default')]
[Parameter(ParameterSetName = 'Search')]
[ValidateSet('*','Name','Identity','FirstName','LastName','City','Company','CountryOrRegion','PostalCode','Department','Office','Alias','DisplayName','DistinguishedName','RecipientType','PrimarySmtpAddress','EmailAddresses','Guid')]
[string[]]$Properties = @('Name','FirstName','LastName','Identity','Alias','DisplayName','PrimarySmtpAddress')
)
Process {
try {
if ($Properties -contains '*') {
$Properties = @('*')
}
[hashtable]$cmdArgs = @{'ErrorAction' = 'Stop'; 'ResultSize' = $ResultSize; 'PropertySets' = $PropertySet; 'IncludeSoftDeletedRecipients' = $IncludeSoftDeletedRecipients}
if ($PSCmdlet.ParameterSetName -eq 'Search') {
$cmdArgs.Add('Anr', $AnrSearch)
}
if (-not [System.String]::IsNullOrWhiteSpace($Identity)) {
$cmdArgs.Add('Identity', $Identity)
}
if ($PSBoundParameters.ContainsKey('RecipientType')) {
$cmdArgs.Add('RecipientType', $RecipientType)
}
if ($PSBoundParameters.ContainsKey('RecipientTypeDetails')) {
$cmdArgs.Add('RecipientTypeDetails', $RecipientTypeDetails)
}
$result = Get-EXORecipient @cmdArgs | Select-Object $Properties
if ($null -eq $result -or $result.Count -eq 0) {
Write-Output "No recipients found"
return
}
foreach ($item in $result) {
$item | Add-Member -NotePropertyName Timestamp -NotePropertyValue (Get-Date -Format "yyyy-MM-dd HH:mm:ss") -PassThru -Force
}
}
catch { throw }
}Name, Guid or UPN of the recipient object
Partial string for ambiguous name resolution search across CommonName, DisplayName, FirstName, LastName, Alias
Off
Include soft-deleted recipients in the results
Filters results by recipient type
Filters results by recipient subtype
Maximum number of results to return
Logical grouping of properties to retrieve
List of properties to expand. Use * for all properties