Pourquoi utiliser PowerShell pour Microsoft 365

Cet article est valable pour Microsoft 365 Entreprise et Office 365 Entreprise.

Avec la Centre d'administration Microsoft 365, vous pouvez gérer vos comptes d’utilisateur et licences Microsoft 365. Vous pouvez également gérer vos services Microsoft 365, tels que Exchange Online, Teams et SharePoint. Si vous utilisez Plutôt PowerShell pour gérer ces services, vous pouvez et tirer parti de l’environnement de langage de ligne de commande et de script pour la vitesse, l’automatisation et des fonctionnalités supplémentaires.

Remarque

Le module Azure Active Directory est remplacé par le Kit de développement logiciel (SDK) Microsoft Graph PowerShell. Vous pouvez utiliser le kit de développement logiciel (SDK) PowerShell Microsoft Graph pour accéder à toutes les API Microsoft Graph. Pour plus d’informations, consultez Démarrage avec le kit de développement logiciel (SDK) PowerShell Microsoft Graph. Certaines commandes PowerShell pour Microsoft 365 de cet article ont été mises à jour pour utiliser Microsoft Graph PowerShell.

Cet article explique comment utiliser PowerShell pour gérer Microsoft 365 pour :

  • Révéler des informations supplémentaires que vous ne pouvez pas voir dans le Centre d'administration Microsoft 365

  • Configurer les fonctionnalités et les paramètres uniquement possibles avec PowerShell

  • Effectuer des opérations en bloc

  • Filtrer les données

  • Imprimer ou enregistrer des données

  • Gérer entre les services

N’oubliez pas que PowerShell pour Microsoft 365 est un ensemble de modules pour Windows PowerShell, qui est un environnement en ligne de commande pour les plateformes et services Windows. Cet environnement crée un langage d’interpréteur de commandes qui peut être étendu avec des modules supplémentaires. Il permet d’exécuter des commandes ou des scripts simples ou complexes. Par exemple, après avoir installé les modules PowerShell pour Microsoft 365 et vous être connecté à votre abonnement Microsoft 365, vous pouvez exécuter la commande suivante pour répertorier toutes les boîtes aux lettres utilisateur pour Microsoft Exchange Online :

Get-Mailbox

Vous pouvez également obtenir la liste des boîtes aux lettres à l’aide de la Centre d'administration Microsoft 365, mais il n’est pas facile de compter les éléments de toutes les listes pour tous les sites de toutes vos applications web.

PowerShell pour Microsoft 365 est conçu pour vous aider à gérer Microsoft 365, et non pour remplacer le Centre d'administration Microsoft 365. Les administrateurs doivent être en mesure d’utiliser PowerShell pour Microsoft 365, car certaines procédures de configuration ne peuvent être effectuées que par le biais de commandes PowerShell pour Microsoft 365. Pour ces cas, vous devez savoir comment :

  • Installez les modules PowerShell pour Microsoft 365 (une seule fois pour chaque ordinateur administrateur).

  • Connectez-vous à votre abonnement Microsoft 365 (une fois pour chaque session PowerShell).

  • Rassemblez les informations nécessaires pour exécuter les commandes PowerShell requises pour Microsoft 365.

  • Exécutez les commandes PowerShell pour Microsoft 365.

Une fois ces compétences de base acquises, vous n’avez pas besoin de répertorier les utilisateurs de votre boîte aux lettres à l’aide de la commande Get-Mailbox . Vous n’avez pas non plus besoin de comprendre comment créer une commande comme la commande citée précédemment pour compter tous les éléments de toutes les listes pour tous les sites de toutes vos applications web. Microsoft et la communauté des administrateurs peuvent vous aider à effectuer ces tâches en fonction des besoins.

PowerShell pour Microsoft 365 peut révéler des informations que vous ne pouvez pas voir avec le Centre d'administration Microsoft 365

Le Centre d'administration Microsoft 365 affiche de nombreuses informations utiles, mais il n’affiche pas toutes les informations possibles que Microsoft 365 stocke sur les utilisateurs, les licences, les boîtes aux lettres et les sites. Voici un exemple pour les utilisateurs et les groupes dans le Centre d'administration Microsoft 365 :

Exemple d’affichage d’utilisateurs et de groupes dans le Centre d'administration Microsoft 365.

Cette vue fournit les informations dont vous avez besoin dans de nombreux cas. Toutefois, il peut arriver que vous ayez besoin de plus d'informations. Par exemple, les licences Microsoft 365 (et les fonctionnalités Microsoft 365 disponibles pour un utilisateur) dépendent en partie de l’emplacement géographique de l’utilisateur. Les stratégies et fonctionnalités que vous pouvez étendre à un utilisateur qui réside dans le États-Unis peuvent ne pas être les mêmes que celles que vous pouvez étendre à un utilisateur en Inde ou en Belgique. Suivez ces étapes dans la Centre d'administration Microsoft 365 pour déterminer l’emplacement géographique d’un utilisateur :

  1. Double-cliquez sur l'élément Nom d'affichage de l'utilisateur.

  2. Dans le volet d’affichage des propriétés utilisateur, sélectionnez détails.

  3. Dans l’affichage des détails, sélectionnez des détails supplémentaires.

  4. Faites défiler jusqu’à ce que vous trouviez le titre Pays ou région :

    Exemple d’informations de région pour un utilisateur dans le Centre d'administration Microsoft 365.

  5. Écrivez le nom d'affichage et l'emplacement de l'utilisateur sur un morceau de papier, ou copiez-le et collez-le dans le Bloc-notes.

Vous devez répéter cette procédure pour chaque utilisateur. Si vous avez de nombreux utilisateurs, ce processus peut être fastidieux. Avec PowerShell, vous pouvez afficher ces informations pour tous vos utilisateurs à l’aide des commandes suivantes.

Remarque

Le module Azure Active Directory est remplacé par le Kit de développement logiciel (SDK) Microsoft Graph PowerShell. Vous pouvez utiliser le kit de développement logiciel (SDK) PowerShell Microsoft Graph pour accéder à toutes les API Microsoft Graph. Pour plus d’informations, consultez Démarrage avec le kit de développement logiciel (SDK) PowerShell Microsoft Graph.

Tout d’abord, utilisez un compte d’administrateur de contrôleur de domaine Microsoft Entra, de Administration d’application cloud ou d’administrateur général pour vous connecter à votre locataire Microsoft 365.

L’obtention d’informations pour un utilisateur nécessite l’étendue d’autorisation User.ReadBasic.All ou l’une des autres autorisations répertoriées dans la page de référence « Attribuer une licence » API Graph.

L’étendue d’autorisation Organization.Read.All est nécessaire pour lire les licences disponibles dans le locataire.

Remarque

Les modules PowerShell Azure AD et MSOnline sont déconseillés à compter du 30 mars 2024. Pour en savoir plus, consultez la mise à jour sur l’obsolescence. Après cette date, la prise en charge de ces modules est limitée à l’assistance à la migration vers le Kit de développement logiciel (SDK) Microsoft Graph PowerShell et aux correctifs de sécurité. Les modules déconseillés continueront de fonctionner jusqu’au 30 mars 2025.

Nous vous recommandons de migrer vers Microsoft Graph PowerShell pour interagir avec Microsoft Entra ID (anciennement Azure AD). Pour les questions courantes sur la migration, reportez-vous au FAQ sur la migration. Note: Les versions 1.0.x de MSOnline peuvent être interrompues après le 30 juin 2024.

Connect-MgGraph -Scopes "User.ReadBasic.All"
Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation

Voici un exemple des résultats :

DisplayName                               UsageLocation
-----------                               -------------
Bonnie Kearney                            GB
Fabrice Canel                             BR
Brian Johnson (TAILSPIN)                  US
Anne Wallace                              US
Alex Darrow                               US
David Longmuir                            BR

L’interprétation de cette commande PowerShell est la suivante : Obtenir tous les utilisateurs de l’abonnement Microsoft 365 actuel (Get-MgUser), mais afficher uniquement le nom et l’emplacement de chaque utilisateur (Sélectionnez DisplayName, UsageLocation).

Étant donné que PowerShell pour Microsoft 365 prend en charge un langage d’interpréteur de commandes, vous pouvez manipuler davantage les informations obtenues par la commande Get-MgUser . Par exemple, vous souhaitez peut-être trier ces utilisateurs en fonction de leur emplacement, en regroupant tous les utilisateurs brésiliens, tous les utilisateurs États-Unis ensemble, etc. Voici la commande :

Get-MgUser -All -Property DisplayName, UsageLocation | Select DisplayName, UsageLocation | Sort UsageLocation, DisplayName

Voici un exemple des résultats :

DisplayName                                 UsageLocation
-----------                                 -------------
David Longmuir                              BR
Fabrice Canel                               BR
Bonnie Kearney                              GB
Alex Darrow                                 US
Anne Wallace                                US
Brian Johnson (TAILSPIN)                    US

L’interprétation de cette commande PowerShell est la suivante : Obtenez tous les utilisateurs de l’abonnement Microsoft 365 actuel, mais affichez uniquement le nom et l’emplacement de chaque utilisateur et triez-les d’abord en fonction de leur emplacement, puis de leur nom (Sort UsageLocation, DisplayName).

Vous pouvez également utiliser un filtrage supplémentaire. Par exemple, si vous voulez uniquement voir les informations relatives aux utilisateurs basés au Brésil, utilisez cette commande :

Get-MgUser -All -Property DisplayName, Country | Where-Object {$_.Country -eq "BR"} | Select DisplayName, Country 

Voici un exemple des résultats :

DisplayName                                           UsageLocation
-----------                                           -------------
David Longmuir                                        BR
Fabrice Canel                                         BR

L’interprétation de cette commande PowerShell est la suivante : Obtenir tous les utilisateurs de l’abonnement Microsoft 365 actuel dont l’emplacement est le Brésil (où {$_. UsageLocation -eq « BR"}), puis affichez le nom et l’emplacement de chaque utilisateur.

Remarque sur les domaines volumineux

Si vous avez un domaine volumineux avec des dizaines de milliers d’utilisateurs, l’essai de certains des exemples présentés dans cet article peut entraîner une limitation. En fonction de facteurs tels que la puissance de calcul et la bande passante réseau disponible, vous essayez peut-être d’en faire trop à la fois. Les grandes organisations peuvent vouloir diviser certaines de ces opérations PowerShell en deux commandes.

Par exemple, la commande suivante retourne tous les comptes d’utilisateur et affiche le nom et l’emplacement de chacun d’eux :

Get-MgUser -All | Select DisplayName, UsageLocation

Cela fonctionne bien pour les petits domaines. Toutefois, dans une grande organization, vous pouvez fractionner cette opération en deux commandes : une commande pour stocker les informations de compte d’utilisateur dans une variable et une autre pour afficher les informations nécessaires. Voici un exemple :

$x = Get-MgUser -All -Property DisplayName, UsageLocation
$x | Select DisplayName, UsageLocation

L’interprétation de cet ensemble de commandes PowerShell est la suivante :

  1. Obtenez tous les utilisateurs de l’abonnement Microsoft 365 actuel et stockez les informations dans une variable nommée $x ($x = Get-MgUser).
  2. Afficher le contenu de la variable $x, mais inclure uniquement le nom et l’emplacement de chaque utilisateur ($x | Sélectionnez DisplayName, UsageLocation).

Microsoft 365 propose des fonctionnalités que vous pouvez uniquement configurer avec PowerShell pour Microsoft 365

Le Centre d'administration Microsoft 365 est destiné à fournir l’accès aux tâches d’administration courantes et utiles qui s’appliquent à la plupart des environnements. En d’autres termes, le Centre d'administration Microsoft 365 a été conçu pour permettre à l’administrateur classique d’effectuer les tâches de gestion les plus courantes. Toutefois, certaines tâches ne peuvent pas être effectuées dans le centre d’administration.

Par exemple, le Centre d’administration Skype Entreprise Online fournit quelques options pour créer des invitations de réunion personnalisées :

Exemple d’affichage d’invitations personnalisées à une réunion dans le Centre d’administration de Skype Entreprise Online.

Avec ces paramètres, vous pouvez ajouter une touche de personnalisation et de professionnalisme aux invitations aux réunions. Toutefois, les paramètres de configuration de réunion ne se résument pas à la création d’invitations de réunion personnalisées. Par défaut, les réunions autorisent :

  • les utilisateurs anonymes à obtenir une entrée automatique à chaque réunion ;

  • les participants à enregistrer la réunion ;

  • tous les utilisateurs de votre organisation à être désignés en tant que présentateurs lorsqu’ils rejoignent la réunion.

Ces paramètres ne sont pas disponibles à partir du centre d’administration Skype Entreprise Online. Vous pouvez les contrôler à partir de PowerShell pour Microsoft 365. Voici une commande qui désactive ces trois paramètres :

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $False -AllowConferenceRecording $False -DesignateAsPresenter "None"

Remarque

Pour exécuter cette commande, vous devez installer le module PowerShell Skype Entreprise Online.

L’interprétation de cette commande PowerShell est la suivante :

  1. Dans les paramètres des nouvelles réunions Skype Entreprise Online (Set-CsMeetingConfiguration), désactivez l’accès automatique des utilisateurs anonymes aux réunions (-AdmitAnonymousUsersByDefault $False).
  2. Désactivez la possibilité pour les participants d’enregistrer des réunions (-AllowConferenceRecording $False).
  3. Ne désignez pas tous les utilisateurs de votre organization comme présentateurs (-DesignateAsPresenter « None »).

Pour restaurer ces paramètres par défaut (activer les options), exécutez la commande suivante :

Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $True -AllowConferenceRecording $True -DesignateAsPresenter "Company"

Il existe également d’autres scénarios similaires, c’est pourquoi les administrateurs doivent savoir comment exécuter PowerShell pour les commandes Microsoft 365.

PowerShell pour Microsoft 365 est idéal pour les opérations en bloc

Les interfaces visuelles telles que le Centre d'administration Microsoft 365 sont particulièrement utiles lorsque vous avez une seule opération à effectuer. Par exemple, si vous avez besoin de désactiver un compte d’utilisateur, vous pouvez utiliser le centre d’administration pour localiser et désactiver rapidement une case à cocher. Cela peut être plus facile que d’effectuer une opération similaire dans PowerShell.

Mais si vous devez modifier de nombreuses choses ou certaines choses sélectionnées dans un grand ensemble d’autres choses, le Centre d'administration Microsoft 365 peut ne pas être le meilleur outil. Par exemple, supposons que vous devez modifier le préfixe sur des milliers de numéros de téléphone ou supprimer l’utilisateur spécifique Ken Myer de tous vos sites SharePoint. Comment le feriez-vous dans la Centre d'administration Microsoft 365 ?

Pour le dernier exemple, supposons que vous avez plusieurs centaines de sites SharePoint et que vous ne savez pas ceux dont Ken Meyer est membre. Vous devez commencer à la Centre d'administration Microsoft 365, puis effectuer cette procédure pour chaque site :

  1. Sélectionnez l’URL du site.

  2. Dans la zone propriétés de la collection de sites, sélectionnez le lien Adresse du site web pour ouvrir le site.

  3. Sur le site, sélectionnez Partager.

  4. Dans la boîte de dialogue Partager , sélectionnez le lien qui affiche tous les utilisateurs disposant d’autorisations sur le site :

    Exemple d’affichage des membres d’un site SharePoint dans le centre de Administration SharePoint.

  5. Dans la boîte de dialogue Partagé avec , sélectionnez Avancé.

  6. Faites défiler la liste des utilisateurs, recherchez et sélectionnez Ken Myer (en supposant qu’il dispose d’autorisations sur le site), puis sélectionnez Supprimer les autorisations utilisateur.

Cela prendrait beaucoup de temps pour plusieurs centaines de sites.

L’alternative consiste à exécuter la commande suivante dans PowerShell pour Microsoft 365 afin de supprimer Ken Myer de tous vos sites :

Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName "kenmyer@litwareinc.com"}

Remarque

Cette commande nécessite l’installation du module PowerShell SharePoint.

L’interprétation de cette commande PowerShell est la suivante : Obtenir tous les sites SharePoint dans l’abonnement Microsoft 365 actuel (Get-SPOSite) et, pour chaque site, supprimer Ken Meyer de la liste des utilisateurs qui peuvent y accéder (ForEach {Remove-SPOUser -Site $_. URL -LoginName « kenmyer@litwareinc.com"}).

Nous disons à Microsoft 365 de supprimer Ken Meyer de tous les sites, y compris ceux auxquels il n’a pas accès. Les résultats affichent donc des erreurs pour les sites auxquels il n’a pas accès. Nous pouvons utiliser une condition supplémentaire sur cette commande pour supprimer Ken Meyer uniquement des sites qui l’ont sur leur liste de connexion. Mais les erreurs qui sont retournées ne causent aucun préjudice aux sites eux-mêmes. Cette commande peut prendre quelques minutes pour s’exécuter sur des centaines de sites, plutôt que des heures de travail sur le Centre d'administration Microsoft 365.

Voici un autre exemple d’opération en bloc. Utilisez cette commande pour ajouter Bonnie Kearney, un nouvel administrateur SharePoint, à tous les sites du organization :

Get-SPOSite | ForEach {Add-SPOUser -Site $_.Url -LoginName "bkearney@litwareinc.com" -Group "Members"}

L’interprétation de cette commande PowerShell est la suivante : Obtenez tous les sites SharePoint de l’abonnement Microsoft 365 actuel et, pour chaque site, autorisez l’accès à Bonnie Kearney en ajoutant son nom de connexion au groupe Membres du site (ForEach {Add-SPOUser -Site $_. URL -LoginName « bkearney@litwareinc.com » -Group « Members"}).

PowerShell pour Microsoft 365 est excellent pour filtrer les données

La Centre d'administration Microsoft 365 offre plusieurs façons de filtrer vos données pour localiser facilement un sous-ensemble ciblé d’informations. Par exemple, Exchange facilite le filtrage sur pratiquement toutes les propriétés de la boîte aux lettres d'un utilisateur. Par exemple, voici la liste des boîtes aux lettres pour tous les utilisateurs qui vivent dans la ville de Bloomington :

Exemple de recherche avancée dans le Centre d'administration Microsoft 365 la liste des boîtes aux lettres pour tous les utilisateurs qui vivent dans la ville de Bloomington.

Le Centre d’administration Exchange vous permet également de combiner des critères de filtre. Par exemple, vous pouvez trouver les boîtes aux lettres pour toutes les personnes qui habitent à Bloomington et travaillent dans le service Finances.

Toutefois, il existe des limitations à ce que vous pouvez faire dans le centre de Administration Exchange. Par exemple, vous ne pouvez pas trouver aussi facilement les boîtes aux lettres des personnes qui habitent à Bloomington ou San Diego, ni les boîtes aux lettres de toutes les personnes qui n’habitent pas à Bloomington.

Vous pouvez utiliser la commande PowerShell pour Microsoft 365 suivante pour obtenir la liste des boîtes aux lettres pour toutes les personnes qui vivent à Bloomington ou San Diego :

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and ($_.City -eq "San Diego" -or $_.City -eq "Bloomington")} | Select DisplayName, City

Voici un exemple des résultats :

DisplayName                              City
-----------                              ----
Alex Darrow                              San Diego
Bonnie Kearney                           San Diego
Julian Isla                              Bloomington
Rob Young                                Bloomington

L’interprétation de cette commande PowerShell est la suivante : Obtenir tous les utilisateurs de l’abonnement Microsoft 365 actuel qui ont une boîte aux lettres dans la ville de San Diego ou Bloomington (où {$_. RecipientTypeDetails -eq « UserMailbox » -and ($_. Ville -eq « San Diego » -ou $_. City -eq « Bloomington »)}), puis affichez le nom et la ville pour chaque (Sélectionnez DisplayName, City).

Et voici la commande permettant de répertorier toutes les boîtes aux lettres pour les personnes qui vivent n’importe où à l’exception de Bloomington :

Get-User | Where {$_.RecipientTypeDetails -eq "UserMailbox" -and $_.City -ne "Bloomington"} | Select DisplayName, City

Voici un exemple des résultats :

DisplayName                               City
-----------                               ----
MOD Administrator                         Redmond
Alex Darrow                               San Diego
Allie Bellew                              Bellevue
Anne Wallace                              Louisville
Aziz Hassouneh                            Cairo
Belinda Newman                            Charlotte
Bonnie Kearney                            San Diego
David Longmuir                            Waukesha
Denis Dehenne                             Birmingham
Garret Vargas                             Seattle
Garth Fort                                Tulsa
Janet Schorr                              Bellevue

L’interprétation de cette commande PowerShell est la suivante : Obtenir tous les utilisateurs de l’abonnement Microsoft 365 actuel qui ont une boîte aux lettres non située dans la ville de Bloomington (où {$_. RecipientTypeDetails -eq « UserMailbox » -and $_. City -ne « Bloomington"}), puis affichez le nom et la ville pour chacun d’eux.

Utiliser des caractères génériques

Vous pouvez également utiliser des caractères génériques dans vos filtres PowerShell pour faire correspondre une partie d’un nom. Par exemple, supposons que vous recherchiez un compte d’utilisateur. Tout ce que vous pouvez vous rappeler, c’est que le nom de famille de l’utilisateur était Anderson ou peut-être Henderson ou Jorgenson.

Vous pouvez retrouver cet utilisateur dans le Centre d'administration Microsoft 365 en utilisant l’outil de recherche et en effectuant trois recherches différentes :

  • Une sur Anderson

  • Une sur Henderson

  • Une sur Jorgenson

Étant donné que ces trois noms se terminent par « son », vous pouvez indiquer à PowerShell d’afficher tous les utilisateurs dont le nom se termine par « son ». Voici la commande :

Get-User -Filter '{LastName -like "*son"}'

L’interprétation de cette commande PowerShell est la suivante : Obtenez tous les utilisateurs de l’abonnement Microsoft 365 actuel, mais utilisez un filtre qui répertorie uniquement les utilisateurs dont le nom se termine par « son » (-Filtre « {LastName -like « *son»} »). * signifie n’importe quel ensemble de caractères, qui sont des lettres dans le nom de famille de l’utilisateur.

PowerShell pour Microsoft 365 facilite l’impression ou l’enregistrement des données

La Centre d'administration Microsoft 365 vous permet d’afficher des listes de données. Voici un exemple du centre d’administration Skype Entreprise Online affichant la liste des utilisateurs qui ont été activés pour Skype Entreprise Online :

Exemple de liste d’utilisateurs ayant été activés pour Skype Entreprise Online, affichée dans le Centre d’administration de Skype Entreprise Online.

Pour enregistrer ces informations dans un fichier, vous devez les coller dans un document ou une feuille de calcul Microsoft Excel. Les deux cas peuvent nécessiter une mise en forme supplémentaire. En outre, la Centre d'administration Microsoft 365 ne permet pas d’imprimer directement la liste affichée.

Heureusement, vous pouvez utiliser PowerShell non seulement pour afficher la liste, mais également pour l’enregistrer dans un fichier qui peut être facilement importé dans Excel. Voici un exemple de commande pour enregistrer des données utilisateur Skype Entreprise Online dans un fichier de valeurs séparées par des virgules (CSV), qui peut ensuite être facilement importé sous forme de tableau dans une feuille de calcul Excel :

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Export-Csv -Path "C:\Logs\SfBUsers.csv" -NoTypeInformation

Voici un exemple des résultats :

Exemple de tableau importé dans une feuille de calcul Excel pour les données utilisateur Skype Entreprise Online enregistrées dans un fichier de valeurs séparées par des virgules.

L’interprétation de cette commande PowerShell est la suivante : Obtenir tous les utilisateurs Skype Entreprise Online de l’abonnement Microsoft 365 actuel (Get-CsOnlineUser), obtenir uniquement le nom d’utilisateur, l’UPN et l’emplacement (Sélectionnez DisplayName, UserPrincipalName, UsageLocation), puis enregistrez ces informations dans un fichier CSV nommé C:\Logs\SfBUsers.csv (Export-Csv -Path « C:\Logs\SfBUsers.csv » -NoTypeInformation).

Vous pouvez également utiliser des options pour enregistrer cette liste en tant que fichier XML ou page HTML. En fait, avec des commandes PowerShell supplémentaires, vous pouvez l’enregistrer directement dans un fichier Excel, avec la mise en forme personnalisée souhaitée.

Vous pouvez également envoyer la sortie d’une commande PowerShell qui affiche une liste directement à l’imprimante par défaut dans Windows. Voici un exemple de commande :

Get-CsOnlineUser | Select DisplayName, UserPrincipalName, UsageLocation | Out-Printer

Le document imprimé aura l'apparence suivante :

Exemple de document imprimé qui était la sortie d’une commande PowerShell envoyée directement à l’imprimante par défaut dans Windows.

L’interprétation de cette commande PowerShell est la suivante : Obtenir tous les utilisateurs Skype Entreprise Online de l’abonnement Microsoft 365 actuel, obtenir uniquement le nom d’utilisateur, l’UPN et l’emplacement, puis envoyer ces informations à l’imprimante Windows par défaut (out-printer).

Le document imprimé a la même mise en forme simple que l’affichage dans la fenêtre de commande PowerShell. Pour obtenir une copie papier, ajoutez simplement | Out-Printer à la fin de la commande.

PowerShell pour Microsoft 365 vous permet de gérer plusieurs produits serveur

Les composants qui composent Microsoft 365 sont conçus pour fonctionner ensemble. Par exemple, supposons que vous ajoutez un nouvel utilisateur à Microsoft 365 et que vous spécifiez des informations telles que le service et le numéro de téléphone de l’utilisateur. Ces informations seront ensuite disponibles si vous accédez aux informations de l’utilisateur dans l’un des services Microsoft 365 : Skype Entreprise Online, Exchange ou SharePoint.

Toutefois, ceci concerne les informations communes qui couvrent une suite de produits. Les informations spécifiques au produit, telles que les informations sur la boîte aux lettres Exchange d’un utilisateur, ne sont généralement pas disponibles dans la suite. Par exemple, les informations indiquant si la boîte aux lettres d’un utilisateur est activée ou non sont disponibles uniquement dans le Centre d’administration Exchange.

Supposons que vous souhaitiez établir un rapport qui présente les informations suivantes pour tous les utilisateurs :

  • Nom complet de l'utilisateur

  • Indique si l’utilisateur dispose d’une licence Microsoft 365

  • Si la boîte aux lettres Exchange de l'utilisateur a été activée

  • Si l'utilisateur est activé pour Skype Entreprise Online

Vous ne pouvez pas facilement produire un tel rapport dans le Centre d'administration Microsoft 365. Au lieu de cela, vous devez créer un document distinct pour stocker les informations, par exemple une feuille de calcul Excel. Ensuite, obtenez tous les noms d’utilisateur et les informations de licence à partir de la Centre d'administration Microsoft 365, obtenez des informations de boîte aux lettres à partir du Centre d’administration Exchange, obtenez des informations Skype Entreprise Online à partir du Skype Entreprise Online Administration centrer, puis combiner ces informations.

L’alternative consiste à utiliser un script PowerShell pour compiler le rapport pour vous.

L’exemple de script suivant est plus compliqué que les commandes que vous avez vues jusqu’à présent dans cet article. Toutefois, il montre le potentiel de l’utilisation de PowerShell pour créer des affichages d’informations qui sont difficiles à obtenir autrement. Voici le script pour compiler et afficher la liste dont vous avez besoin :

Connect-MgGraph -Scopes "User.ReadBasic.All"
$x = Get-MgUser -All

foreach ($i in $x)
    {
      $y = Get-Mailbox -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled

      $y = Get-CsOnlineUser -Identity $i.UserPrincipalName
      $i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled
    }

$x | Select DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB

Voici un exemple des résultats :

DisplayName             IsLicensed   IsMailboxEnabled   EnabledForSfB
-----------             ----------   ----------------   --------------
Bonnie Kearney          True         True               True
Fabrice Canel           True         True               True
Brian Johnson           False        True               False
Anne Wallace            True         True               True
Alex Darrow             True         True               True
David Longmuir          True         True               True
Katy Jordan             False        True               False
Molly Dempsey           False        True               False

L’interprétation de ce script PowerShell est la suivante :

  1. Obtenez tous les utilisateurs de l’abonnement Microsoft 365 actuel et stockez les informations dans une variable nommée $x ($x = Get-MgUser).
  2. Démarrez une boucle qui s’exécute sur tous les utilisateurs de la variable $x (foreach ($i dans $x)).
  3. Définissez une variable nommée $y et stockez les informations de boîte aux lettres de l’utilisateur ($y = Get-Mailbox -Identity $i.UserPrincipalName).
  4. Ajoutez une nouvelle propriété aux informations utilisateur nommée IsMailBoxEnabled. Définissez-la sur la valeur de la propriété IsMailBoxEnabled de la boîte aux lettres de l’utilisateur ($i | Add-Member -MemberType NoteProperty -Name IsMailboxEnabled -Value $y.IsMailboxEnabled).
  5. Définissez une variable nommée $y et stockez les informations Skype Entreprise Online de l’utilisateur ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
  6. Ajoutez une nouvelle propriété aux informations utilisateur nommée EnabledForSfB. Définissez-la sur la valeur de la propriété Enabled des informations Skype Entreprise Online de l’utilisateur ($i | Add-Member -MemberType NoteProperty -Name EnabledForSfB -Value $y.Enabled).
  7. Affichez la liste des utilisateurs, mais incluez uniquement leur nom, s’ils disposent d’une licence et les deux nouvelles propriétés qui indiquent si leur boîte aux lettres est activée et si elles sont activées pour Skype Entreprise Online ($x | Sélectionnez DisplayName, IsLicensed, IsMailboxEnabled, EnabledforSfB).

Voir aussi

Prise en main de PowerShell pour Microsoft 365

Gérer les comptes d’utilisateurs, les licences et les groupes Microsoft 365 avec PowerShell

Utilisez Windows PowerShell pour créer des rapports dans Microsoft 365