Set-MgGroupLicense - erreur assignLicense are missing parameters addLicenses
Published on 18 Mar 2025La commande `Set-MgGroupLicense` peut poser des problèmes lorsqu'on tente de supprimer une licence d'un groupe en passant une liste vide pour `AddLicenses`,
Clap
Problème assignLicense are missing parameters addLicenses
La commande Set-MgGroupLicense
peut poser problème lorsqu'on tente de supprimer une licence d'un groupe en passant une liste vide pour AddLicenses
, ce qui est pourtant conforme à la documentation officielle.
Set-MgGroupLicense_Assign: One or more parameters of the operation 'assignLicense' are missing from the request payload. The missing parameters are: addLicenses.
Cette erreur survient avec le module 2.26.1 (pas testé d'autres modules).
Pour information, ci-dessous les codes qui ne fonctionnent pas:
# Test 1 KO
$groupID = 'xxx
$group = Get-MgGroup -GroupId $groupId -Property AssignedLicenses
$licensesToRemove = $group.AssignedLicenses.SkuId
$params = @{
addLicenses = @() # Empty array for addLicenses
removeLicenses = $licensesToRemove
}
Set-MgGroupLicense -GroupId $groupId -BodyParameter $params
# Test 2 KO
Set-MgGroupLicense -GroupId xxx -AddLicenses @() -RemoveLicenses @('xxx')
# Test 3 KO
Set-MgGroupLicense -GroupId xxx -AddLicenses @{} -RemoveLicenses @('xxx')
Solution alternative avec Invoke-MgGraphRequest
Pour contourner ce problème, j'ai utilisé Invoke-MgGraphRequest
qui permet d'appeler directement l'API Graph en passant un corps de requête correctement formaté.
Voici un script PowerShell fonctionnel :
$groupId = 'xxx'
# Récupérer les licences actuelles du groupe
$group = Get-MgGroup -GroupId $groupId -Property AssignedLicenses
$licensesToRemove = $group.AssignedLicenses.SkuId
# Préparer le corps de la requête pour supprimer toutes les licences
$body = @{
addLicenses = @()
removeLicenses = $licensesToRemove
}
# Appel à l'API Graph pour supprimer les licences
Invoke-MgGraphRequest -Method POST -Uri "https://graph.microsoft.com/v1.0/groups/$groupId/assignLicense" -Body ($body | ConvertTo-Json)
Cette approche permet d'éviter les erreurs rencontrées avec Set-MgGroupLicense
et garantit un fonctionnement correct.
En espérant qu'une mise à jour future des modules Microsoft.Graph corrigera ce comportement.
Clap
Comments