Skip to content

Get-MgGroupMember seems to ignore the -PageSize argument #3325

Open
@plmcgrn

Description

@plmcgrn

Describe the bug

When calling this function with -PageSize 999, it's pretty obvious that it is ignoring that and still using the default of 100. In my test case, I'm getting the membership of a group that contains about 3000 people. This should take 3 API calls, but instead takes 30. This is my inference based on the lag/delay of the response taking 30 seconds, vs. a few seconds.

Expected behavior

Respect the -PageSize argument, perform better than 10 seconds for a single command

How to reproduce

$group = Get-MgGroup -Filter "DisplayName eq 'group_name'"

Write-Output "Measuring with page size 999"
Measure-Command {
    $members = Get-MgGroupMember -GroupId $group.id -All -PageSize 999
}

Write-Output "Measuring with page size 100"
Measure-Command {
    $members = Get-MgGroupMember -GroupId $group.id -All
}

Write-Output "Member count: $($members.Count)"

As you can see, the duration of this API call is nearly the same, regardless of page size.

Measuring with page size 999
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 27
Milliseconds      : 721
Ticks             : 277210859
TotalDays         : 0.00032084590162037
TotalHours        : 0.00770030163888889
TotalMinutes      : 0.462018098333333
TotalSeconds      : 27.7210859
TotalMilliseconds : 27721.0859

Measuring with page size 100
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 31
Milliseconds      : 812
Ticks             : 318127965
TotalDays         : 0.000368203663194444
TotalHours        : 0.00883688791666667
TotalMinutes      : 0.530213275
TotalSeconds      : 31.8127965
TotalMilliseconds : 31812.7965

Member count: 2945

SDK Version

2.17.0

Latest version known to work for scenario above?

No response

Known Workarounds

No response

Debug output

Click to expand log

The logging output is all sensitive since I'm fetching lists of users, and too large for this input

Configuration

MacOS 15.4.1, though able to reproduce the lag with same module version on Windows 11.

Name                           Value
----                           -----
PSVersion                      7.5.1
PSEdition                      Core
GitCommitId                    7.5.1
OS                             Darwin 24.4.0 Darwin Kernel Version 24.4.0: Fri Apr 11 18:33:39 PDT 2025; root:xnu-114…
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Other information

I am unable to determine if this sluggishness is due to the module ignoring -PageSize or due to the Graph API just being too slow for this type of command. Like maybe -PageSize 999 still requires the server to internally fetch in chunks of 100, synchronously, then chunks those responses back to me in the chunks of 999?

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:waiting-for-triageAn issue that is yet to be reviewed or assignedtype:bugA broken experience

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions