none
Suppression multiple de licences Exchange online via powershell RRS feed

  • Question

  • bonjour,

    j'ai vu cette article microsoft qui présente comment assigner ou supprimer des licences office365 via powershell (https://technet.microsoft.com/en-us/library/dn771774.aspx)

    Tout marche très bien sauf quand j'essaye de le faire pour plusieurs utilisateurs depuis une liste.

    La commande powershell est la suivante

    Get-Content "C:\My Documents\Accounts.txt" | Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses "litwareinc:ENTERPRISEPACK"

    J'ai crée le fichier txt avec deux adresses mails existantes.
    J'ai bien modifié mon type de licence à la fin de la commande mais quand j’exécute j'ai cette erreur

    PS C:\Users\test> Get-Content "C:\test.txt" | Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicens
    es "test:EXCHANGESTANDARD"
    Set-MsolUserLicense : Impossible de lier l'argument au paramètre « UserPrincipalName », car il a la valeur Null.
    Au caractère Ligne:1 : 69
    + Get-Content "C:\test.txt" | Set-MsolUserLicense -UserPrincipalName $_.UserPrinc ...
    + ~~~~~~~~~~~~
    + CategoryInfo : InvalidData : (:) [Set-MsolUserLicense], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.Online.Administration.Automatio
    n.SetUserLicense

    Qu'est ce qu'il manque dans la commande ? 

    merci d'avance

    mardi 7 juin 2016 11:53

Réponses

  • Bonjour Davzell,

    C:\Users\test> Get-Content "C:\test.txt" | Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicens
    es "test:EXCHANGESTANDARD

    $_ récupère le dernier objet variable présent en mémoire.

    Essai de commencer par inclure le résultat du "get-content" dans une variable.

    Ensuite, comme il y en a plusieurs à traiter, il te faudra une boucle.

    Ça donnerai un truc du genre (j'ai pas testé).

    $i=Get-Content "C:\test.txt" | foreach($o in $i) {Set-MsolUserLicense -UserPrincipalName $o.UserPrincipalName -RemoveLicenses "test:EXCHANGESTANDARD }
    C'est toujours intéressant pour comprendre.
    • Marqué comme réponse BoPtz vendredi 1 juillet 2016 17:42
    jeudi 9 juin 2016 13:17

Toutes les réponses

  • script qui fait bien le taf http://sriharirad.blogspot.fr/2016/01/bulk-assign-crm-licenses-using.html 
    mercredi 8 juin 2016 07:19
  • Bonjour Davzell,

    C:\Users\test> Get-Content "C:\test.txt" | Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicens
    es "test:EXCHANGESTANDARD

    $_ récupère le dernier objet variable présent en mémoire.

    Essai de commencer par inclure le résultat du "get-content" dans une variable.

    Ensuite, comme il y en a plusieurs à traiter, il te faudra une boucle.

    Ça donnerai un truc du genre (j'ai pas testé).

    $i=Get-Content "C:\test.txt" | foreach($o in $i) {Set-MsolUserLicense -UserPrincipalName $o.UserPrincipalName -RemoveLicenses "test:EXCHANGESTANDARD }
    C'est toujours intéressant pour comprendre.
    • Marqué comme réponse BoPtz vendredi 1 juillet 2016 17:42
    jeudi 9 juin 2016 13:17