Dix commandes PowerShell les plus utiles pour Office 365
Sep 19, 2018
Utiliser Windows PowerShell pour gérer Office 365 peut sembler étrange au début. Après tout, les solutions cloud promettent simplicité et facilité d'utilisation — des adjectifs rarement associés à Windows PowerShell. Mais restez avec moi. Dans cet article, je vais vous montrer les dix cmdlets PowerShell Office 365 les plus utiles pour les administrateurs système. Peut-être qu'après avoir lu ces instructions, vous conviendrez que PowerShell peut être un outil précieux, même pour les systèmes basés sur le cloud.
1. Connexion à une instance Office 365 avec PowerShell
Tout d'abord, nous devons installer le module Office 365 pour Windows PowerShell et nous connecter à l'instance Office 365. Suivez les étapes suivantes :
1. Téléchargez et installez le Microsoft Online Services Sign-In Assistant for IT Professionals RTW.
2. Importez le module PowerShell des services en ligne pour Microsoft Azure Active Directory et Office 365 :
Install-Module -Name AzureAD
Install-Module -Name MSOnline
3. Entrez vos identifiants d'administrateur Office 365 :
$Cred = Get-Credential
4. Créez une session PowerShell à distance :
$O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
5. Importez les commandes de session dans la session Windows PowerShell locale :
Import-PSSession $O365
6. Connectez-vous à tous les services Office 365 :
Connect-MsolService –Credential $O365
Une fois que nous avons importé les modules pour Windows PowerShell, nous sommes prêts à gérer notre instance Office 365.
2. Connexion à Exchange Online et SharePoint Online avec PowerShell
Nous pouvons également nous connecter séparément à Microsoft Exchange Online et Microsoft SharePoint Online. Se connecter à Exchange Online avec PowerShell est essentiellement la même chose que de se connecter à Office 365 :
$Cred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic –AllowRedirection
La connexion à SharePoint Online est un peu différente. Pour gérer votre locataire SharePoint Online, vous devez d'abord télécharger et installer la fonctionnalité SharePoint Online Management Shell. Ensuite, exécutez le script PowerShell suivant :
$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
3. Obtenir une liste des cmdlets PowerShell Office 365 disponibles
Pour obtenir une liste de toutes les Office 365 PowerShell commands disponibles, nous devons exécuter le cmdlet Get-Command:
Get-Command -module MSOnline
Nous pouvons également obtenir la liste des cmdlets pour Azure Active Directory :
Get-Command -module AzureAD
4. Obtenir une liste de tous les utilisateurs d'Office 365 avec PowerShell
Si vous devez fournir une liste des utilisateurs et des licences Office 365, utilisez la cmdlet Get-MsolUser. Elle récupérera tous les utilisateurs avec une licence valide dans le locataire Office 365, ainsi que les paramètres DisplayName, City, Department et ObjectID.
Get-MsolUser | Select DisplayName, City, Department, ObjectID
Pour voir le nombre de licences de compte, vous devez exécuter le cmdlet suivant :
Get-MsolAccountSku
Pour lister les services disponibles, exécutez le script suivant :
Get-MsolAccountSku | select -ExpandProperty ServiceStatus
5. Création d'un nouvel utilisateur dans Office 365 avec PowerShell
Pour créer un nouvel utilisateur, nous utilisons la commande New-MsolUser:
New-MsolUser -UserPrincipalName JSmith@enterprise.onmicrosoft.com -DisplayName "John Smith" -FirstName “John” -LastName “Smith”
Le système affichera les données du mot de passe et du statut de licence de l'utilisateur.
6. Suppression d'un utilisateur de tous les sites avec PowerShell
Pour retirer un utilisateur de tous les sites à la fois, nous utilisons la commande suivante :
Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}
7. Changer un mot de passe dans Office 365 avec PowerShell
Si vous devez changer le mot de passe pour un compte, utilisez le cmdlet Set-MsolUserPassword. Vous pouvez soit spécifier un nouveau mot de passe comme dans l'exemple ci-dessous, soit omettre le paramètre -NewPassword pour que le système génère automatiquement un mot de passe aléatoire.
Set-MsolUserPassword -UserPrincipalName JSmith@Netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
8. Gestion de l'appartenance aux groupes dans Office 365 avec PowerShell
Nous pouvons également gérer les Office 365 groups à l'aide des cmdlets PowerShell. Pour récupérer une liste de tous les groupes dans Office 365, utilisez simplement la commande Get-MsolGroup. Pour ajouter des utilisateurs à un groupe, utilisez la commande Add-MsolGroupMember:
Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user
GroupObjectId est l'ID hexadécimal du groupe, que vous pouvez obtenir à partir de la commande Get-MsolGroup. GroupMemberObejctId est l'ID de l'objet utilisateur, que vous pouvez trouver en exécutant cette commande :
Get-MsolUser | Select ObjectID.
Pour retirer un utilisateur d'un groupe, utilisez la cmdlet Remove-MsoGroupMember.
9. Création d'une collection de sites SharePoint avec PowerShell
Nous pouvons également créer une collection de sites SharePoint à l'aide de PowerShell :
New-SPOSite -Url "https://enterprise.sharepoint.com/sites/NewSite" -Owner "JSmith@enterprise.onmicrosoft.com" -StorageQuota "100" -Title "New Site"
10. Création de rapports dans Office 365 avec PowerShell
PowerShell est un excellent outil pour réaliser différents rapports. Voici quelques rapports Office 365 utiles faits via PowerShell :
- Détails concernant toutes les boîtes aux lettres :
Get-mailbox | get-MailboxStatistics
- Une liste de toutes les boîtes aux lettres qui n'ont pas été consultées 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
- Un rapport sur les expéditeurs et les destinataires ayant le plus grand volume :
Get-MailTrafficTopReport
- Un rapport sur tous les groupes et leurs membres :
function Get-AllO365Members
{
Try
{
$O365Groups=Get-UnifiedGroup
foreach ($O365Group in $O365Groups)
{
Write-Host "Group Membership: " $O365Group.DisplayName -ForegroundColor Green
Get-UnifiedGroupLinks –Identity $O365Group.Identity –LinkType Members
Write-Host
}
}
catch [System.Exception]
{
Write-Host -ForegroundColor Red $_.Exception.ToString()
}
}
Get-AllO365Members
Notez que la plupart des cmdlets de rapport ont été dépréciées en janvier 2018 et remplacées par la nouvelle API de rapport MS Graph. Par conséquent, certains rapports sont maintenant disponibles uniquement dans le Centre de sécurité & conformité Office 365.
Comme vous pouvez le voir, la gestion d'Office 365 avec PowerShell est rapide et facile, tout comme dans Microsoft Windows Server. N'oubliez pas d'auditer tous les changements que vous effectuez dans votre environnement Office 365 ; cela vous aidera à dépanner et à récupérer des problèmes plus rapidement. Pour apprendre à configurer l'audit natif dans votre environnement Office 365, jetez un œil à notre Exchange Online Auditing Quick Reference Guide et Exchange Online Mailbox Auditing Quick Reference Guide. Si vous souhaitez obtenir des renseignements exploitables sur ce qui se passe dans votre environnement Office 365, ainsi que des rapports flexibles, des alertes proactives, une recherche de type Google et bien plus encore, demandez un essai gratuit de Netwrix Auditor for Office 365.
Partager sur
En savoir plus
À propos de l'auteur
Jeff Melnick
Directeur de l'ingénierie des systèmes
Jeff est un ancien directeur de l'ingénierie des solutions mondiales chez Netwrix. Il est un blogueur, conférencier et présentateur de longue date chez Netwrix. Dans le blog Netwrix, Jeff partage des astuces et des conseils qui peuvent améliorer de manière significative votre expérience en administration système.
En savoir plus sur ce sujet
Lois sur la confidentialité des données par État : Différentes approches de la protection de la vie privée
Exemple d'analyse des risques : Comment évaluer les risques
Le Triangle CIA et son application dans le monde réel
Qu'est-ce que la gestion des documents électroniques ?
Analyse quantitative des risques : Espérance de perte annuelle