Pourquoi utiliser PowerShell pour Microsoft 365
Cet article est valable pour Microsoft 365 Entreprise et Office 365 Entreprise.
Avec le 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 qu’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 du 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 :
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 résidant aux É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 le Centre d’administration Microsoft 365 pour déterminer l’emplacement géographique d’un utilisateur :
Double-cliquez sur l'élément Nom d'affichage de l'utilisateur.
Dans le volet d’affichage des propriétés utilisateur, sélectionnez détails.
Dans l’affichage des détails, sélectionnez des détails supplémentaires.
Faites défiler jusqu’à ce que vous trouviez le titre Pays ou région :
É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 administrateur microsoft Entra DC ou administrateur d’application cloud 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 de l’API Graph « Attribuer une licence ».
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 seront obsolètes à 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 sera limitée à l’assistance à la migration vers le kit de développement logiciel Microsoft Graph PowerShell et aux correctifs de sécurité. Les modules obsolètes 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 toutes questions liées à la migration, consultez la FAQ sur la migration. Remarque : les versions 1.0.x de MSOnline pourront subir des perturbations 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, peut-être souhaitez-vous trier ces utilisateurs en fonction de leur emplacement, en regroupant tous les utilisateurs brésiliens, tous les utilisateurs américains 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 organisation, 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 :
- Obtenez tous les utilisateurs de l’abonnement Microsoft 365 actuel et stockez les informations dans une variable nommée $x ($x = Get-MgUser).
- 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 administratives 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 :
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 :
- Dans les paramètres des nouvelles réunions Skype Entreprise Online (Set-CsMeetingConfiguration), désactivez autoriser les utilisateurs anonymes à accéder automatiquement aux réunions (-AdmitAnonymousUsersByDefault $False).
- Désactivez la possibilité pour les participants d’enregistrer des réunions (-AllowConferenceRecording $False).
- Ne désignez pas tous les utilisateurs de votre organisation 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.
Toutefois, si vous devez modifier beaucoup d’éléments ou certains éléments sélectionnés au sein d’un grand nombre d’autres éléments, 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 procéder dans le 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 par le Centre d’administration Microsoft 365, puis effectuer cette procédure pour chaque site :
Sélectionnez l’URL du site.
Dans la zone propriétés de la collection de sites, sélectionnez le lien Adresse du site web pour ouvrir le site.
Sur le site, sélectionnez Partager.
Dans la boîte de dialogue Partager , sélectionnez le lien qui affiche tous les utilisateurs disposant d’autorisations sur le site :
Dans la boîte de dialogue Partagé avec , sélectionnez Avancé.
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 via 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 de l’organisation :
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
Le Centre d’administration Microsoft 365 offre plusieurs façons de filtrer vos données afin de 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 :
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 d’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 à l’aide de 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
Le 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 :
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, le 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 permettant d’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 :
L’interprétation de cette commande PowerShell est la suivante : Obtenir tous les utilisateurs De Skype Entreprise Online dans l’abonnement Microsoft 365 actuel (Get-CsOnlineUser) ; obtenir uniquement le nom d’utilisateur, l’UPN et l’emplacement (sélectionner 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 :
L’interprétation de cette commande PowerShell est la suivante : Obtenir tous les utilisateurs De Skype Entreprise Online dans l’abonnement Microsoft 365 actuel ; obtenir uniquement le nom d’utilisateur, l’UPN et l’emplacement ; puis envoyez 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 du Centre d’administration Microsoft 365, obtenez les informations de boîte aux lettres à partir du Centre d’administration Exchange, obtenez les informations Skype Entreprise Online à partir du Centre d’administration Skype Entreprise Online, puis combinez 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 :
- Obtenez tous les utilisateurs de l’abonnement Microsoft 365 actuel et stockez les informations dans une variable nommée $x ($x = Get-MgUser).
- Démarrez une boucle qui s’exécute sur tous les utilisateurs de la variable $x (foreach ($i dans $x)).
- 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).
- 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).
- Définissez une variable nommée $y et stockez les informations Skype Entreprise Online de l’utilisateur ($y = Get-CsOnlineUser -Identity $i.UserPrincipalName).
- 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).
- 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