PowerShell reste l'un des outils les plus précieux pour les administrateurs Office 365. Il est pratique pour récupérer une liste spécifique d'utilisateurs ou de boîtes aux lettres. Au lieu de fouiller dans les options disponibles du portail Office 365, les administrateurs trouvent plus facile d’entrer quelques lignes de code pour obtenir ce qu’ils cherchent. Dans cet article, nous apprendrons les dix applets de commande PowerShell les plus couramment utilisées.
1. Se connecter à une instance Office 365 avec PowerShell
Voici les étapes à suivre pour vous connecter à l'instance Office 365. Chaque étape indique la fonction à exécuter et le script PowerShell respectif pour faire de même.
- Téléchargez et installez l'Assistant de connexion Microsoft Online Services pour les professionnels de l'informatique RTW.
- Importez le module PowerShell des services en ligne pour Microsoft Azure Active Directory et Office 365 :
- Install-Module -Name AzureAD
- Install-Module -Name MSOnline
- Exécutez la commande ci-dessous et entrez vos informations d'identification d'administrateur Office 365 dans la fenêtre contextuelle qui s'affiche.
- Créez une session PowerShell distante.
- $O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
- Importez les commandes de session dans la session Windows PowerShell locale.
- Connectez-vous à tous les services Office 365.
- Connect-MsolService –Credential $O365
2. Se connecter à Exchange Online et SharePoint Online avec PowerShell
Voici les étapes à suivre pour connecter Exchange Online et SharePoint Online à PowerShell.
- Exécutez le script ci-dessous pour vous connecter au module Exchange Online. Lorsque vous y êtes invité, entrez les informations d'identification de l'administrateur Office 365.
- $Cred = Get-Credential
- $O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
- Pour vous connecter à SharePoint Online, téléchargez et installez l'environnement de ligne de commande Gestion SharePoint Online Shell, puis exécutez le script ci-dessous.
- $admin="Admin@enterprise.onmicrosoft.com"
- $orgname="enterprise"
- $userCred = Get-Credential -UserName $admin -Message "Type the password."
- Connect-SPOService -Url https://$orgname-admin.sharepoint.com -Credential $userCred
Veuillez fournir une adresse de messagerie d'administrateur valide et un nom d'entreprise dans les deux premières lignes du script.
3. Obtenir la liste des applets de commande Office 365 PowerShell disponibles
Pour obtenir la liste de toutes les commandes MSOnline PowerShell, exécutez la commande ci-dessous.
- Get-Command -module MSOnline
Pour obtenir la liste de toutes les applets de commande Azure Active Directory, exécutez la commande ci-dessous.
- Get-Command -module AzureAD
4. Obtenir la liste de tous les utilisateurs d’Office 365 avec PowerShell
Pour récupérer tous les utilisateurs disposant d'une licence valide dans le client Office 365, ainsi que les paramètres DisplayName, City, Department et ObjectID, exécutez la commande ci-dessous.
- Get-MsolUser | Select DisplayName, City, Department, ObjectID
5. Créer un utilisateur dans Office 365 avec PowerShell
Pour créer un utilisateur Office 365 avec le prénom John et le nom de famille Smith, exécutez la commande ci-dessous.
- New-MsolUser -UserPrincipalName JSmith@enterprise.onmicrosoft.com -DisplayName "John Smith" -FirstName “John” -LastName “Smith”
Si l'utilisateur Office 365 a été créé, le système renvoie le mot de passe et l'état de la licence de l'utilisateur.
6. Retirer un utilisateur de tous les sites SharePoint avec PowerShell
Pour retirer un utilisateur de tous les sites SharePoint en une fois, exécutez la commande ci-dessous.
- Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}
7. Modifier le mot de passe du compte d'utilisateur Office 365 avec PowerShell
Si vous devez modifier le mot de passe d'un compte, utilisez l'applet de commande Set-MsolUserPassword.
- Set-MsolUserPassword -UserPrincipalName JSmith@netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
Vous pouvez omettre le paramètre -NewPassword pour permettre au système de générer un mot de passe aléatoire.
8. Gérer l'appartenance à un groupe dans Office 365 avec PowerShell
Pour gérer un groupe, vous devez connaître GroupObjectId et GroupMemberObejctId.
Pour trouver le groupObjectID du groupe que vous devez gérer, exécutez la commande ci-dessous.
Pour trouver l'ID GroupMemberObejctId des utilisateurs que vous devez ajouter ou supprimer, exécutez la commande ci-dessous.
- Get-MsolUser | Select ObjectID.
Pour ajouter de nouveaux membres à un groupe, exécutez la commande ci-dessous.
- Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user
Pour retirer un utilisateur d'un groupe, exécutez la commande ci-dessous.
- $GroupId = Get-MsolGroup -SearchString "MyGroup"
- $UserId = Get-MsolUser -UserPrincipalName "evannarvaez@contoso.com"
- Remove-MsoLGroupMember -GroupObjectId $GroupId -GroupMemberType User -GroupmemberObjectId $UserId
Cet exemple supprime l'utilisateur evannarvaez@contoso.com du groupe nommé MyGroup.
9. Créer une collection de sites SharePoint avec PowerShell
Pour créer une collection de sites SharePoint avec PowerShell, exécutez la commande ci-dessous.
- New-SPOSite -Url https://contoso.sharepoint.com/sites/mynewsite -Owner john.smith@contoso.com -StorageQuota 1000 -Title "Latest presentation"
Cet exemple crée une collection de sites sous le nom Latest presentation pour la société actuelle avec l'URL du site et le propriétaire spécifiés. Le quota de stockage est fixé à 1000 mégaoctets.
10. Créer des rapports dans Office 365 avec PowerShell
PowerShell est un bon outil pour créer différents rapports. Voici des rapports Office 365 utiles réalisés via PowerShell :
Pour générer le rapport Toutes les boîtes aux lettres, qui fournit des données sur toutes les boîtes aux lettres de votre configuration Office 365.
- Get-mailbox | get-MailboxStatistics
Pour récupérer la liste de toutes les boîtes aux lettres auxquelles vous ne vous êtes pas connecté au cours des 30 derniers jours.
- Get-Mailbox –RecipientType 'UserMailbox' | Get-MailboxStatistics | Sort-Object LastLogonTime | Where {$_.LastLogonTime –lt ([DateTime]::Now).AddDays(-30) } | Format-Table DisplayName, LastLogonTime
Pour obtenir un récapitulatif du trafic de messagerie dans votre Office 365.
Remarque : La plupart des applets de commande de création de rapports sont obsolètes en janvier 2018 et remplacées par la nouvelle API MS Graph. Par conséquent, certains rapports sont désormais disponibles uniquement dans le Centre de sécurité et de conformité Office 365.