|
6 | 6 |
|
7 | 7 | It may happen that owners are not members of the m365 group because of the various methods of managing M365 group permissions, such as through the Teams admin center, Microsoft Teams, SharePoint admin center, SharePoint connected sites, Planner, or scripting using PowerShell. The script will help identify these discrepancies and ensures m365 group owners are also m365 group members. |
8 | 8 |
|
| 9 | +CLI for Microsoft 365 script sample usage example: |
| 10 | + |
| 11 | + |
| 12 | + |
9 | 13 | # [PnP PowerShell](#tab/pnpps) |
10 | 14 |
|
11 | 15 | ```powershell |
@@ -102,30 +106,30 @@ process { |
102 | 106 | $owners = m365 entra m365group user list --role Owner --groupId $groupId --output json | ConvertFrom-Json |
103 | 107 |
|
104 | 108 | foreach ($owner in $owners) { |
105 | | - $ownerDisplayName = $owner.displayName |
106 | | - $isMember = m365 entra m365group user list --role Member --groupId $groupId --query "[?displayName == '$ownerDisplayName']" --output json | ConvertFrom-Json |
| 109 | + $ownerUserPrincipalName = $owner.userPrincipalName |
| 110 | + $isMember = m365 entra m365group user list --role Member --groupId $groupId --query "[?userPrincipalName == '$ownerUserPrincipalName']" --output json | ConvertFrom-Json |
107 | 111 |
|
108 | 112 | if (-not $isMember) { |
109 | | - Write-Host " Owner '$ownerDisplayName' missing from members, attempting to add..." |
| 113 | + Write-Host " Owner '$ownerUserPrincipalName' missing from members, attempting to add..." |
110 | 114 |
|
111 | 115 | $ReportItems.Add([pscustomobject]@{ |
112 | 116 | 'Site Name' = $site.Title |
113 | 117 | 'Site URL' = $site.Url |
114 | | - 'Owner Name' = $ownerDisplayName |
| 118 | + 'Owner Name' = $ownerUserPrincipalName |
115 | 119 | }) |
116 | 120 |
|
117 | | - $addResult = m365 entra m365group user add --role Member --groupId $groupId --userName $owner.userPrincipalName --output json 2>&1 |
| 121 | + $addResult = m365 entra m365group user add --role Member --groupId $groupId --userNames $ownerUserPrincipalName --output json 2>&1 |
118 | 122 |
|
119 | 123 | if ($LASTEXITCODE -ne 0) { |
120 | | - Write-Warning "Failed to add $ownerDisplayName as member in $($site.Url). CLI returned: $addResult" |
| 124 | + Write-Warning "Failed to add $ownerUserPrincipalName as member in $($site.Url). CLI returned: $addResult" |
121 | 125 | $Summary.OwnersFailed++ |
122 | 126 | continue |
123 | 127 | } |
124 | 128 |
|
125 | | - Write-Host " Added $ownerDisplayName as member in $($site.Url)" |
| 129 | + Write-Host " Added $ownerUserPrincipalName as member in $($site.Url)" |
126 | 130 | $Summary.OwnersAdded++ |
127 | 131 | } else { |
128 | | - Write-Host " Owner '$ownerDisplayName' already a member; skipping" |
| 132 | + Write-Host " Owner '$ownerUserPrincipalName' already a member; skipping" |
129 | 133 | } |
130 | 134 | } |
131 | 135 | } |
|
0 commit comments