Search code examples
powershellazure-active-directorymoodlemicrosoft-graph-teams

Using MgGraph PowerShell 1.0 - Update-MgGroup -AdditionalProperties how to update the resourceBehaviorOptions option?


The education institution, I am helping, uses the Moodle Plugin Microsoft 0365 Integration which I believe uses the latest MgGraph v1.0 to create Microsoft 365 Teams Groups.

The Moodle plugin creates Microsoft 365 Teams Groups but some Settings can not be updated on the Admin Exchange Center after its creation, It returns an Error.

The property to be set being “Send copies of group conversations and events to group member”

The error received is not really helping

enter image description here

This Microsoft 365 Teams Group uses the HiddenMembership Visibility since MS Teams Classes can also be used and for privacy reasons this visibility is used. Unfortunately, the PHP code created by the Moodle MS Plugin adds more security features that prevents the groups from sending emails to each other since the above property can not be updated.

To get more information about the error, I tried to use MgGraph to set the Setting programmatically

$params = @{
    AutoSubscribeNewMembers = $true
}
Update-MgGroup -GroupId $groupid -BodyParameter $params

Than I go the below error:

AutoSubscribeNewMembers parameter can't be true when SubscriptionEnabled 
is set to false on the  group.

Looking all around, I finally found where the SubscriptionEnabled value is set.

((get-MgGroup -GroupId $groupid).AdditionalProperties).resourceBehaviorOptions

Outputs :

SubscriptionDisabled
SharePointMemberReadonly
CalendarMemberReadOnly
WelcomeEmailDisabled
SubscribeNewGroupMembers
HideGroupInOutlook
ConnectorsDisabled
AllowOnlyMembersToPost

I tried to remove that value from the Group's AdditionalProperties.resourceBehaviorOptions but get this error.

$resourceBehaviorOptionsParams = @{
    "SubscriptionDisabled" = "false";
}

$additionalParams = @{
   resourceBehaviorOptions = $resourceBehaviorOptionsParams 
}

Update-MgGroup -GroupId $groupid -AdditionalProperties $additionalParams

Error

An unexpected 'StartObject' node was found for property named 'resourceBehaviorOptions' when
     | reading from the JSON reader. A 'StartArray' node was expected.

How can I remove the SubscriptionDisabled Option from the resourceBehaviorOptions section ?


Solution

  • I tried to reproduce the same in my environment and got same error like below

    enter image description here

    The error usually occurs if you don't have proper license like Exchange Online or the subscription is disabled on that teams group.

    When I ran the same MgGraph commands as you to know more about error, I got same response like below:

    Connect-MgGraph
    $groupid = "f2210ee6-451a-496b-8b39-c2xxxxxxxf"
    
    $params = @{
        AutoSubscribeNewMembers = $true
    }
    Update-MgGroup -GroupId $groupid -BodyParameter $params
    

    Response:

    enter image description here

    When I tried the same script as you to remove the SubscriptionDisabled Option, I got same error like below:

    $groupid = "f2210ee6-451a-496b-8b39-c289xxxxxdaf"
    $resourceBehaviorOptionsParams = @{
        "SubscriptionDisabled" = "false";
    }
    
    $additionalParams = @{
       resourceBehaviorOptions = $resourceBehaviorOptionsParams 
    }
    
    Update-MgGroup -GroupId $groupid -AdditionalProperties $additionalParams
    

    Response:

    enter image description here

    To resolve the error, you can enable subscription for that teams group using below Exchange Online commands:

    Connect-ExchangeOnline
    Set-UnifiedGroup -Identity "Devi Team" -SubscriptionEnabled:$true
    

    Response:

    enter image description here

    After enabling the subscription, I ran below command to enable AutoSubscribeNewMembers like this:

    Set-UnifiedGroup -Identity "Devi Team" -AutoSubscribeNewMembers:$true
    

    Response:

    enter image description here

    When I checked the same in Exchange Admin Center, option enabled successfully like below:

    enter image description here

    You can also enable "Allow external senders to email this group" option if needed from Portal like this after enabling subscription:

    enter image description here