Renvoi d’informations de compte d’utilisateur Office 365

 

Dernière rubrique modifiée : 2014-06-09

**Résumé :**Utilisez Windows PowerShell pour gérer Office 365 à l'aide des applets de commande, des scripts et des processus de traitement par lots Windows PowerShell.

À part les noms, il est beaucoup plus intéressant (et important) de se concentrer sur les tâches de gestion qui peuvent être réalisées à l'aide de Azure Active Directory. Azure Active Directory comprend 66 applets de commande, dont la plupart sont utilisés pour gérer vos licences, groupes et utilisateurs Office 365. Par exemple, supposons que vous ayez besoin d’une liste rapide de vos utilisateurs Office 365. Essayez cette commande :

Get-MsolUser

Bien que cela nécessite d’ouvrir une parenthèse, il est judicieux de parler un instant des noms des cmdlets. Si vous regardez les noms des cmdlets Azure Active Directory, vous remarquerez qu’elles ont toutes une chose en commun :

  • Add-MsolForeignGroupToRole

  • Add-MsolGroupMember

  • Add-MsolRoleMember

  • Confirm-MsolDomain

  • Connect-MsolService

Comme vous pouvez le constater, chaque nom de cmdlet (la partie du nom qui vient après le trait d’union) commence par le préfixe Msol. Est-ce une coïncidence ? Pas tout à fait. Le préfixe Msol (abréviation de MsOnline) est utilisé pour identifier ces cmdlets en tant que cmdlets Azure Active Directory. Toutes les cmdlets Azure Active Directory doivent utiliser le préfixe Msol, et aucune autre cmdlet Windows PowerShell ne peut utiliser ce préfixe. Par exemple, les cmdlets SharePoint Online ont toutes le préfixe SPO :

  • Add-SPOUser

  • Connect-SPOService

  • Disconnect-SPOService

  • Get-SPOAppErrors

  • Get-SPOAppInfo

Les cmdlets Lync Online utilisent toutes le préfixe Cs :

  • Get-CsAudioConferencingProvider

  • Get-CsOnlineUser

  • Get-CsTenant

  • Get-CsTenantFederationConfiguration

  • Get-CsTenantHybridConfiguration

Le préfixe Cs est en réalité l’abréviation de Communications Server. Ceci s’explique par le fait que Lync Server était anciennement appelé Office Communications Server. Au moment où le nom a été officiellement modifié, un grand nombre de cmdlets avait déjà été finalisées. Comme la modification des noms des cmdlets à cette date tardive aurait reporté la sortie du produit, la décision a été prise de conserver le préfixe Cs.

Il est intéressant de constater que les cmdlets Exchange n’utilisent pas n’importe quel type de préfixe :

  • Add-RecipientPermission

  • Get-LinkedUser

  • Get-RecipientPermission

  • Get-RemovedMailbox

  • Get-SendAddress

Pourquoi ? Exchange a été le premier produit serveur à lancer un ensemble de cmdlets Windows PowerShell. À cette époque, personne n’imposait l’utilisation d’un préfixe de cmdlet ou d’un autre identificateur. D’autres équipes de serveurs ont commencé à créer des cmdlets, mais il est vite devenu évident qu’il y avait un problème : si Exchange avait une cmdlet nommée Set-User (ce qui était le cas), alors qu’étaient censées faire les autres équipes qui avaient besoin d’une cmdlet pour définir des paramètres utilisateur ? (Les noms de cmdlets doivent être uniques.) La solution a consisté à utiliser des préfixes. Par conséquent, nous avons désormais des cmdlets avec des noms comme Set-MsolUser, Set-CsUser et Set-SPOSiteUser.

Dans tous les cas, l’exécution de la commande Get-MsolUser renverra des informations de ce type :

UserPrincipalName                     DisplayName           isLicensed
-----------------                     -----------           ----------
ZrinkaM@litwareinc.onmicrosoft.com    Zrinka Makovac        True
BonnieK@litwareinc.onmicrosoft.com    Bonnie Kearney        True
FabriceC@litwareinc.onmicrosoft.com   Fabrice Canel         True
BrianJ@litwareinc.onmicrosoft.com     Brian Johnson         False 
AnneWlitwareinc.onmicrosoft.com       Anne Wallace          True

Il s’agit de tous vos utilisateurs Office 365.

Mais disons que vous aimeriez voir uniquement la liste des utilisateurs sans licence, c’est-à-dire des utilisateurs qui ont été ajoutés à Office 365 mais qui n’ont pas encore de licence leur permettant d’utiliser toutes les applications logicielles. Ceci est également facile :

Get-MsolUser -UnlicensedUsersOnly

Là encore, nous avons appelé la cmdlet Get-MsolUser, mais cette fois nous lui avons ajouté le paramètre UnlicensedUsersOnly. Comme son nom l’indique, ce paramètre limite les données renvoyées aux utilisateurs ne disposant pas de licences :

UserPrincipalName                     DisplayName           isLicensed
-----------------                     -----------           ----------
BrianJ@litwareinc.onmicrosoft.com     Brian Johnson         False
ScottW@litwareinc.onmicrosoft.com     Scott Wallace         False

Très bien.

Nous pourrions aussi souligner que Windows PowerShell a la réputation d’être un langage informatique créé par les Martiens. Lorsque la plupart des gens pensent à Windows PowerShell, ils s’imaginent des commandes comme celle-ci :

gc test.txt | sort {[int]$_} |% {$i = 1}{while ($i -lt $_){$i;$i++};$i++}

Nous sommes d’accord, cette commande est quelque peu obscure... D’un autre côté, nous venons de vous montrer une commande qui renvoie uniquement les utilisateurs qui ne disposent pas de licence pour Office 365. Pour ce faire, nous avons utilisé une cmdlet nommée Get-MsolUser et un paramètre nommé UnlicensedUsersOnly :

Get-MsolUser -UnlicensedUsersOnly

Et en exécutant cette commande, nous avons obtenu les utilisateurs sans licence uniquement.

Cela signifie simplement que vous pouvez souvent rendre Windows PowerShell aussi obscur, ou au contraire aussi clair et simple que vous le désirez.

À suivre : Sélection des valeurs de propriété de compte d’utilisateur à renvoyer

Voir aussi

Utilisation de Windows Azure Active Directory pour gérer Office 365