Private/Get-MMCloudMailbox.ps1
function Get-MMCloudMailbox { [CmdletBinding()] param ( #[switch] $User, #[switch] $SyncedUser, #[switch] $SharedUser, #[switch] $DisabledUser, #[switch] $EnabledUser, #[switch] $LicensedUser, #[switch] $UnlicensedUser, [switch] $AuditEnabled, [switch] $AuditDisabled, [switch] $HoldEnabled, [switch] $HoldDisabled, [switch] $ArchiveEnabled, # AutoExpandingArchiveEnabled [string] $CountVariable ) $null = Connect-MMExchangeOnline if ($__MtSession.MailboxCache) { Write-Debug "MailboxCache found" # $__MtSession.MailboxCache = $results # } else { # $__MtSession.MailboxCache.Add($cacheKey, $results) } $exoMailbox = Get-EOMailbox -ResultSize unlimited Write-Debug $exoMailbox.Count #if (-not ($SyncedUser -or $SharedUser)) { $result = $exoMailbox #} #$exoMailbox | Where-Object {$_.IsDirSynced} #$exoMailbox | Where-Object {$_.AccountDisabled -eq $false} #$exoMailbox | Where-Object {$_.SKUAssigned -ne $true} if ($AuditEnabled) { #$exoMailbox | fl *HoldEnabled*, AuditEnabled #$exoMailbox | Group AuditEnabled $result = $result | Where-Object {$_.AuditEnabled -eq $true} } elseif ($AuditDisabled) { $result = $result | Where-Object {$_.AuditEnabled -eq $false} Write-Debug "Known: RoomMailbox, DiscoveryMailbox, SchedulingMailbox" } if ($HoldEnabled) { #$exoMailbox | Group LitigationHoldEnabled $result = $result | Where-Object {$_.LitigationHoldEnabled -eq $true} } elseif ($HoldDisabled) { $result = $result | Where-Object {$_.LitigationHoldEnabled -eq $false} } # ArchiveStatus / AutoExpandingArchiveEnabled if ($ArchiveEnabled) { #$exoMailbox | fl *Archive* #$exoMailbox | Group ArchiveStatus # ArchiveStatus : Active $result = $result | Where-Object {$_.ArchiveStatus -eq "Active"} } # Mailbox Language / Dates # $exoMailbox | fl *Lang* # Languages : {de-CH, en-US} # Mailbox Size if ($CountVariable) { # https://learn.microsoft.com/de-de/powershell/module/microsoft.powershell.core/about/about_scopes?view=powershell-7.5 Set-Variable -Name $CountVariable -Value ($result.Count) -Scope 1 # 18 #Set-Variable -Name $CountVariable -Value (($result| Measure).Count) -Scope 1 # 18 #Set-Variable -Name $CountVariable -Value (@($result).Count) -Scope 1 } return $result } #$exportCount = $null #$export = Get-MMCloudMailbox -CountVariable exportCount -Debug #$export.Count # 39 #$exportCount # 39 |