[Office 365] Commandes PowerShell de base pour l’administrateur

Pour administrer votre compte / portail Office 365, vous pouvez utiliser l’interface web, mais aussi les commandes Powershell pour aller encore plus loin.

Mise à jour au 05/03/2018 – Ajout de la suppression en bloc des utilisateurs

Retrouvez ci-dessous une liste de commandes usuelles pour l’administration :

Connexion au service Office 365 en Powershell

$Cred = Get-Credential user@domain.com
Connect-MsolService -Credential $Cred

Formater des tableaux en Powershell

ft = Format Table
fl = Formal Ligne
-AutoSize = ne pas tronquer les lignes

Affichage de la liste de tous les comptes

Get-MsolUser

Afficher les informations complète d’un utilisateur précis

Get-MsolUser -UserPrincipalName user@domain.com | fl

Création d’un utilisateur

New-MsolUser -UserPrincipalName user@domain.com -DisplayName "NOM_COMPLET" -FirstName "PRENOM" -LastName "NOM" -Password "Pa$$w0rd." -ForceChangePassword $false -UsageLocation "FR"

Création d’un groupe d’utilisateurs

New-MsolGroup -DisplayName "nom_groupe" -Description "Description_Group"

Créer une variable pour utiliser facilement un groupe

$NomVariable = Get-MsolGroup | Where-Object {$_.DisplayName -eq "Nom_Group"}

Créer une variable pour utiliser facilement un utilisateur

$NomVariable = Get-MsolUser | Where-Object {$_.DisplayName -eq "Nom_Complet_User"}

Ajouter un utilisateur dans un groupe + utilisation des variables

Add-MsolGroupMember -GroupObjectId $NomVariableGroupe.ObjectId -GroupMemberType "User" -GroupMemberObjectId $NomVariableUtilisateur.ObjectId

Variante :

Add-MsolGroupMember -GroupObjectId id_groupe -GroupMemberType "User" -GroupMemberObjectId id_user

Afficher tous les membres d’un groupe

Get-MsolGroupMember -GroupObjectId $Variable_Nom_Groupe.ObjectId

Variante :

Get-MsolGroupMember -GroupObjectId id_groupe

Afficher les utilisateurs qui n’ont pas de licence

Get-MsolUser -UnlicensedUsersOnly

Récupérer le nom des licences

Get-MsolAccountSku

Attribuer une licence Office 365 Business Premium à un utilisateur

Set-MsolUserLicense -UserPrincipalName user@domain.com -AddLicences "domain:O365_BUSINESS_PREMIUM"

Bloquer la connexion à un compte

Set-MsolUser -UserPrincipalName user@domain.com -blockcredential $true

Supprimer un compte utilisateur

Remove-MsolUser -UserPrincipalName user@domain.com -Force

Supprimer des utilisateurs en masse

  1. Création d’un fichier « .csv » pour y ajouter la liste de tous les utilisateurs à supprimer
    • Le fichier doit être de la forme suivante :
|-|——–A———-|B———|C———
|1| Email
|2| user1@domain.io
|3| user2@domain.io
|4| user3@domain.io

Ensuite, effectuez ces deux commandes :

$users = Import-Csv users-bulk-delete.csv
$users | ForEach-Object {Remove-MsolUser -UserPrincipalName $_.Email -Force}

Afficher la liste des utilisateurs supprimés

Get-MsolUser -ReturnDeletedUsers

Restaurer un utilisateur supprimé

Restore-MsolUser -UserPrincipalName user@domain.com

Bulk import d’utilisateurs

Import-Csv -Path e:chemin_fichier.csv | ForEach-Object { New-MsolUser -UserPrincipalName $_."Nom d'utilisateur" -FirstName $_."Prénom" -LastName $_."Nom" -DisplayName $_."Nom complet" -Title $_."Fonction" -Department $_."Service" -PhoneNumber $_."Téléphone (bureau)" -MobilePhone $_."Téléphone mobile" -Fax $_."Numéro de télécopie" -StreetAddress $_."Adresse" -City $_."Ville" -State $_."Département ou province" -PostalCode $_."Code postal" -Country $_."Pays ou zone géographique" -BlockCredential $false -ForceChangePassword $false -PasswordNeverExpires $true }

Enlever l’expiration des mots de passe (sur un user à la fois)

Set-MsolUser -UserPrincipalName user@domain.com -PasswordNeverExpire $true

Enlever la complexité des mots de passe (sur un user à la fois)

Set-MsolUser -UserPrincipalName user@domain.com -StrongPasswordRequired $false

Changement du mot de passe d’un utilisateur

Set-MsolUserPassword -UserPrincipalName user@domain.com -NewPassword password

Afficher liste des paramètres des mots de passe des utilisateurs

Get-MsolUser | ft UserPrincipalName,PasswordNeverExpires,StrongPasswordRequired -AutoSize

Couper la session Powershell à la fin des opérations

Remove-PSSession $Cred
Julienhttps://computerz.solutions
Passionné depuis toujours par l'informatique, je transforme ma passion en expertise. J'utilise quotidiennement les outils et systèmes Microsoft. Je ne délaisse pas mon côté ouvert, notamment via l'utilisation des OS Debian/Ubuntu et Archlinux. L'infosec m'ouvre les yeux sur les enjeux actuels et futurs de l'IT.