Skip to content

AdditionalProperties is confusing #3115

Open
@danielniccoli

Description

@danielniccoli

Is your feature request related to a problem? Please describe the problem.

The way how the use of the -Property parameter changes the results is confusing.

  1. Get-MgGroupMember -GroupId "…"
    Returns and object with a property id
  2. Get-MgGroupMember -GroupId "…" -Property "city"
    Returns and object with a dictionary AdditionalProperties with the key city, but property id does not exist.
  3. Get-MgGroupMember -GroupId "…" -Property "id","city"
    Returns and object with a property id and a dictionary AdditionalProperties with the key city.

My question is:

  1. When id is treated as a standard and immediate property of the returned user object (rather than an additional property), why is it left blank, when you manually add properties to the request and don't include id?
  2. Why is there a distinction between immediate properties (id) and additional properties (everything not id)?

Looking at the HTTPS request/response, this makes no sense because all properties are on the same JSON level and there is no distinction between standard and additional properties:

GET https://graph.microsoft.com/v1.0/groups/<GUID>/members?$select=id,department

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#directoryObjects(id,department)",
    "value": [
        {
            "@odata.type": "#microsoft.graph.user",
            "id": "xxx",
            "department": "Sales"
        },
        {
            "@odata.type": "#microsoft.graph.user",
            "id": "yyy",
            "department": "Finance"
        },
        {
            "@odata.type": "#microsoft.graph.user",
            "id": "zzz",
            "department": "Management"
        }
    ]
}

Coming from Active Directory, this behaviour is also unexpected, where the -Properties attribute add the selected properties directly to the user object.

Describe the solution you'd like.

A request Get-MgGroupMember -GroupId "…" -Property "id","city" should return an object with a property id and another property department.

Additional context?

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions