Skip to content

Commit

Permalink
Merge pull request #448 from lbrauns/mtuser-get-guests
Browse files Browse the repository at this point in the history
Implements Query for UserType "Guest" (#447)
  • Loading branch information
merill authored Sep 8, 2024
2 parents 3750bdc + 582ece3 commit 3a3620c
Showing 1 changed file with 28 additions and 5 deletions.
33 changes: 28 additions & 5 deletions powershell/public/Get-MtUser.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ function Get-MtUser {
[string]$MemberOfRole
)

process {
begin{

$Users = New-Object -TypeName 'System.Collections.ArrayList'

# Default roles that will be queried for UserType "Admin"
$AdminRoles = @(
"Global administrator",
"Application administrator",
Expand All @@ -55,9 +59,13 @@ function Get-MtUser {
"SharePoint administrator",
"User administrator"
)
}

process {


Write-Verbose "Getting $Count $UserType users from the tenant."
$Users = New-Object -TypeName 'System.Collections.ArrayList'


if ( $UserType -eq "Admin" ) {
$UserType = "Member"
Expand Down Expand Up @@ -136,19 +144,34 @@ function Get-MtUser {
}

} else {

if( $UserType -eq "Member" ){
$queryFilter = "userType eq 'Member'"
}
elseif( $UserType -eq "Guest" ){
$queryFilter = "userType eq 'Guest'"
}
else{
Write-Warning "UserType $($UserType) cannot be processed! Aborting!"
throw "User can not be queried, invalid UserType: $($UserType)"
}

if ($Count -gt 999) {
Write-Verbose "The maximum number of users that can be retrieved on one page is 999. Using paging to retrieve $Count users."
$TmpUsers = Invoke-MtGraphRequest -ApiVersion beta -RelativeUri 'users' -Select id, userPrincipalName, userType -Filter "userType eq 'Member'" -QueryParameters @{'$top' = 999 } -OutputType Hashtable

$TmpUsers = Invoke-MtGraphRequest -ApiVersion beta -RelativeUri 'users' -Select id, userPrincipalName, userType -Filter $queryFilter -QueryParameters @{'$top' = 999 } -OutputType Hashtable
$Count = if ( $TmpUsers.Count -lt $Count ) { $TmpUsers.Count } else { $Count }

Write-Verbose "Retrieved $($TmpUsers.Count) users"
for ($i = 0; $i -lt $Count; $i++) {
$Users.Add($TmpUsers[$i]) | Out-Null
}
} else {
$Users = Invoke-MtGraphRequest -ApiVersion beta -RelativeUri 'users' -Select id, userPrincipalName, userType -Filter "userType eq 'Member'" -QueryParameters @{'$top' = $Count } -DisablePaging -OutputType Hashtable
$Users = Invoke-MtGraphRequest -ApiVersion beta -RelativeUri 'users' -Select id, userPrincipalName, userType -Filter $queryFilter -QueryParameters @{'$top' = $Count } -DisablePaging -OutputType Hashtable
$Users = $Users['value']
}
}
Return $Users

return $Users
}
}

0 comments on commit 3a3620c

Please sign in to comment.