Private/Get-MMCloudUser.ps1
function Get-MMCloudUser { [CmdletBinding()] param ( #[switch] $User, [switch] $SyncedUser, [switch] $RegularUser, [switch] $SharedUser, [switch] $DisabledUser, [switch] $EnabledUser, [switch] $LicensedUser, [switch] $UnlicensedUser, [string] $CountVariable ) $null = Connect-MMExchangeOnline if ($__MtSession.UserCache) { Write-Debug "UserCache found" # $__MtSession.UserCache = $results # } else { # $__MtSession.UserCache.Add($cacheKey, $results) } $exoUser = Get-EOUser -ResultSize unlimited Write-Debug $exoUser.Count if (-not ($SyncedUser -or $SharedUser -or $RegularUser)) { $result = $exoUser } # - Synced if ($SyncedUser) { # $exoUserSynced $result = $exoUser | Where-Object {$_.IsDirSynced} } if ($RegularUser) { #$exoUserShared $result = $exoUser | Where-Object {$_.RecipientTypeDetails -eq "UserMailbox"} } if ($SharedUser) { #$exoUserShared $result = $exoUser | Where-Object {$_.RecipientTypeDetails -eq "SharedMailbox"} } if ($DisabledUser) { # Get-User -RecipientTypeDetails UserMailbox | Where-Object { $_.UserAccountControl -like "*AccountDisabled*" } $result = $result | Where-Object {$_.AccountDisabled -eq $false} } elseif ($EnabledUser) { #Write-Debug "AccountDisabled=false" $result = $result | Where-Object {$_.AccountDisabled -eq $true} } if ($LicensedUser) { #$export | Group SKUAssigned #$exoUser | Group SKUAssigned $result = $result | Where-Object {$_.SKUAssigned -eq $true} } elseif ($UnlicensedUser) { #Write-Debug "LicensedUser=false" $result = $result | Where-Object {$_.SKUAssigned -ne $true} } 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 #Set-Variable -Name $CountVariable -Value (($result| Measure).Count) -Scope 1 } return $result } #$exportCount = $null #$export = Get-MMCloudUser -CountVariable exportCount -Debug #$export.Count # 70 ##($export | Measure).Count # 70 #$exportCount # 70 ##$export | Out-GridView |