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 [switch] $RetentionGap, [string] $CountVariable ) $null = Connect-MMExchangeOnline if ($__MMTSession.CloudMailboxCache.length -gt 1) { # $__MtSession.MailboxCache = $results # $__MtSession.MailboxCache.Add($cacheKey, $results) $exoMailbox = $__MMTSession.CloudMailboxCache Write-Debug "MailboxCache data found" } else { $exoMailbox = Get-EOMailbox -ResultSize unlimited Write-Debug "Mailbox: $($exoMailbox.Count)" $__MMTSession.CloudMailboxCache = $exoMailbox } #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"} } if ($RetentionGap) { #$exoMailbox | Group RetentionPolicy $result = $result | Where-Object {$null -eq $_.RetentionPolicy} } 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 |