Partage via


Gérer les utilisateurs et les groupes SharePoint avec PowerShell

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

Si vous êtes un administrateur SharePoint qui travaille avec de grandes listes de comptes d’utilisateur ou de groupes et que vous souhaitez les gérer plus facilement, vous pouvez utiliser PowerShell pour Microsoft 365.

Avant de commencer, les procédures décrites dans cet article vous obligent à vous connecter à SharePoint. Pour obtenir des instructions, consultez Se connecter à SharePoint PowerShell.

Obtenir une liste de sites, de groupes et d’utilisateurs

Avant de commencer à gérer les utilisateurs et les groupes, vous devez obtenir les listes de vos sites, groupes et utilisateurs. Vous pouvez ensuite utiliser ces informations pour travailler à partir de l’exemple figurant dans cet article.

Vous pouvez obtenir la liste des sites de votre client avec la commande suivante :

Get-SPOSite

Vous pouvez obtenir la liste des groupes de votre client avec la commande suivante :

Get-SPOSite | ForEach {Get-SPOSiteGroup -Site $_.Url} | Format-Table

Vous pouvez obtenir la liste des utilisateurs de votre client avec la commande suivante :

Get-SPOSite | ForEach {Get-SPOUser -Site $_.Url}

Ajouter un utilisateur au groupe Administrateurs du site

Vous utilisez l’applet de Set-SPOUser commande pour ajouter un utilisateur à la liste des administrateurs de site sur une collection de sites.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true

Pour utiliser ces commandes, remplacez tous les guillemets, y compris les < caractères et > , par les noms corrects.

Par exemple, cet ensemble de commandes ajoute Opal Castillo (nom d’utilisateur opalc) à la liste des administrateurs de site sur la collection de sites ContosoTest dans la location Contoso :

$tenant = "contoso"
$site = "contosotest"
$user = "opalc"
Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true

Vous pouvez copier et coller ces commandes dans le Bloc-notes, modifier les valeurs des variables pour $tenant, $site et $user en valeurs réelles de votre environnement, puis les coller dans votre fenêtre SharePoint Management Shell pour les exécuter.

Ajouter un utilisateur à d’autres groupes de collections de sites

Dans cette tâche, nous utilisons l’applet Add-SPOUser de commande pour ajouter un utilisateur à un groupe SharePoint sur une collection de sites.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
$group = "<group name name, such as Auditors>"
Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site

Par exemple, nous allons ajouter Glen Rife (nom d’utilisateur glenr) au groupe Auditeurs de la collection de sites ContosoTest dans la location contoso :

$tenant = "contoso"
$site = "contosotest"
$user = "glenr"
$group = "Auditors"
Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site

Créer un groupe de collections de sites

Vous utilisez l’applet de New-SPOSiteGroup commande pour créer un groupe SharePoint et l’ajouter à une collection de sites.

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$group = "<group name name, such as Auditors>"
$level = "<permission level, such as View Only>"
New-SPOSiteGroup -Group $group -PermissionLevels $level -Site https://$tenant.sharepoint.com/sites/$site

Les propriétés de groupe, telles que les niveaux d’autorisation, peuvent être mises à jour ultérieurement à l’aide de l’applet de Set-SPOSiteGroup commande .

Par exemple, nous allons ajouter le groupe Auditeurs avec des autorisations d’affichage uniquement à la collection de sites contosotest dans la location contoso :

$tenant = "contoso"
$site = "contosotest"
$group = "Auditors"
$level = "View Only"
New-SPOSiteGroup -Group $group -PermissionLevels $level -Site https://$tenant.sharepoint.com/sites/$site

Supprimer des utilisateurs d’un groupe

Parfois, vous devez supprimer un utilisateur d’un site ou même de tous les sites. Peut-être que l’employé passe d’une division à une autre ou quitte l’entreprise. Vous pouvez le faire facilement pour un employé dans l’interface utilisateur, mais cela n’est pas facile lorsque vous devez déplacer une division complète d’un site à un autre.

Toutefois, l’utilisation de SharePoint Management Shell et des fichiers CSV est rapide et facile. Dans cette tâche, vous utilisez Windows PowerShell pour supprimer un utilisateur d’un groupe de sécurité de collection de sites. Ensuite, vous utilisez un fichier CSV et supprimez un grand nombre d’utilisateurs de différents sites.

Nous allons utiliser l’applet de commande « Remove-SPOUser » pour supprimer un seul utilisateur Microsoft 365 d’un groupe de collections de sites afin de voir la syntaxe de commande. Voici à quoi ressemble la syntaxe :

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
$user = "<user account name, such as opalc>"
$group = "<group name name, such as Auditors>"
Remove-SPOUser -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site -Group $group

Par exemple, nous allons supprimer Bobby Overby du groupe auditeurs de la collection de sites dans la collection de sites contosotest dans la location contoso :

$tenant = "contoso"
$site = "contosotest"
$user = "bobbyo"
$group = "Auditors"
Remove-SPOUser -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site -Group $group

Supposons que nous voulions supprimer Bobby de tous les groupes où il est actuellement. Voici comment procéder :

$tenant = "contoso"
$user = "bobbyo"
Get-SPOSite | ForEach {Get-SPOSiteGroup –Site $_.Url} | ForEach {Remove-SPOUser -LoginName $user@$tenant.com -Site $_.Url}

Avertissement

Ce n’est qu’un exemple. Vous ne devez pas exécuter cette commande sauf si vous devez vraiment supprimer un utilisateur de chaque groupe, par exemple si l’utilisateur quitte l’entreprise.

Automatiser la gestion des grandes listes d’utilisateurs et de groupes

Pour ajouter un grand nombre de comptes aux sites SharePoint et leur accorder des autorisations, vous pouvez utiliser les Centre d'administration Microsoft 365, les commandes PowerShell individuelles ou PowerShell et un fichier CSV. Parmi tous ces choix, le fichier CSV est le moyen le plus rapide d’automatiser cette tâche.

Le processus de base consiste à créer un fichier CSV qui possède des en-têtes (colonnes) correspondant aux paramètres dont le script Windows PowerShell a besoin. Vous pouvez facilement créer une telle liste dans Excel, puis l’exporter sous forme de fichier CSV. Ensuite, vous utilisez un script Windows PowerShell pour parcourir les enregistrements (lignes) dans le fichier CSV, en ajoutant les utilisateurs à des groupes et les groupes à des sites.

Par exemple, nous allons créer un fichier CSV pour définir un groupe de collections de sites, de groupes et d’autorisations. Ensuite, nous allons créer un fichier CSV pour remplir les groupes avec des utilisateurs. Enfin, nous allons créer et exécuter un script Windows PowerShell qui crée et remplit les groupes.

Le premier fichier CSV ajoute un ou plusieurs groupes à une ou plusieurs collections de sites et aura la structure suivante :

En-tête:

Site,Group,PermissionLevels

Article:

https://tenant.sharepoint.com/sites/site,group,level

Voici un exemple de fichier :

Site,Group,PermissionLevels
https://contoso.sharepoint.com/sites/contosotest,Contoso Project Leads,Full Control
https://contoso.sharepoint.com/sites/contosotest,Contoso Auditors,View Only
https://contoso.sharepoint.com/sites/contosotest,Contoso Designers,Design
https://contoso.sharepoint.com/sites/TeamSite01,XT1000 Team Leads,Full Control
https://contoso.sharepoint.com/sites/TeamSite01,XT1000 Advisors,Edit
https://contoso.sharepoint.com/sites/Blog01,Contoso Blog Designers,Design
https://contoso.sharepoint.com/sites/Blog01,Contoso Blog Editors,Edit
https://contoso.sharepoint.com/sites/Project01,Project Alpha Approvers,Full Control

Le deuxième fichier CSV ajoute un ou plusieurs utilisateurs à un ou plusieurs groupes et aura la structure suivante :

En-tête:

Group,LoginName,Site

Article:

group,login,https://tenant.sharepoint.com/sites/site

Voici un exemple de fichier :

Group,LoginName,Site
Contoso Project Leads,bobbyo@contoso.com,https://contoso.sharepoint.com/sites/contosotest
Contoso Auditors,allieb@contoso.com,https://contoso.sharepoint.com/sites/contosotest
Contoso Designers,bonniek@contoso.com,https://contoso.sharepoint.com/sites/contosotest
XT1000 Team Leads,dorenap@contoso.com,https://contoso.sharepoint.com/sites/TeamSite01
XT1000 Advisors,garthf@contoso.com,https://contoso.sharepoint.com/sites/TeamSite01
Contoso Blog Designers,janets@contoso.com,https://contoso.sharepoint.com/sites/Blog01
Contoso Blog Editors,opalc@contoso.com,https://contoso.sharepoint.com/sites/Blog01
Project Alpha Approvers,robinc@contoso.com,https://contoso.sharepoint.com/sites/Project01

Pour la prochaine étape, vous devez avoir enregistré les deux fichiers CSV sur votre lecteur. Voici des exemples de commandes qui utilisent à la fois des fichiers CSV et pour ajouter des autorisations et l’appartenance à un groupe :

Import-Csv C:\O365Admin\GroupsAndPermissions.csv | ForEach {New-SPOSiteGroup -Group $_.Group -PermissionLevels $_.PermissionLevels -Site $_.Site}
Import-Csv C:\O365Admin\Users.csv | ForEach {Add-SPOUser -Group $_.Group –LoginName $_.LoginName -Site $_.Site}

Le script importe le contenu du fichier CSV et utilise les valeurs des colonnes pour remplir les paramètres des commandes New-SPOSiteGroup et Add-SPOUser . Dans notre exemple, nous enregistrons ce fichier dans le dossier O365Admin sur le lecteur C, mais vous pouvez l’enregistrer où vous le souhaitez.

À présent, nous allons supprimer un groupe de personnes pour plusieurs groupes dans différents sites à l’aide du même fichier CSV. Voici un exemple de commande :

Import-Csv C:\O365Admin\Users.csv | ForEach {Remove-SPOUser -LoginName $_.LoginName -Site $_.Site -Group $_.Group}

Générer des rapports sur les utilisateurs

Vous souhaiterez peut-être obtenir un rapport pour quelques sites et afficher les utilisateurs de ces sites, leur niveau d’autorisation et d’autres propriétés. Voici à quoi ressemble la syntaxe :

$tenant = "<tenant name, such as litwareinc for litwareinc.com>"
$site = "<site name>"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | select * | Format-table -Wrap -AutoSize | Out-File c\UsersReport.txt -Force -Width 360 -Append

Cette opération récupère les données de ces trois sites et les écrit dans un fichier texte sur votre lecteur local. Le paramètre –Append ajoute un nouveau contenu à un fichier existant.

Par exemple, nous allons exécuter un rapport sur les sites ContosoTest, TeamSite01 et Project01 pour la location contoso1 :

$tenant = "contoso"
$site = "contosotest"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append
$site = "TeamSite01"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site |Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append
$site = "Project01"
Get-SPOUser -Site https://$tenant.sharepoint.com/sites/$site | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append

Nous avons dû modifier uniquement la variable $site . La variable $tenant conserve sa valeur pendant les trois exécutions de la commande.

Mais que faire si vous souhaitez effectuer cette action pour chaque site ? Vous pouvez le faire sans avoir à entrer tous ces sites web à l’aide de cette commande :

Get-SPOSite | ForEach {Get-SPOUser –Site $_.Url} | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append

Ce rapport est assez simple, et vous pouvez ajouter du code pour créer des rapports plus spécifiques ou des rapports qui contiennent des informations plus détaillées. Toutefois, cela doit vous donner une idée de l’utilisation de SharePoint Management Shell pour gérer les utilisateurs dans l’environnement SharePoint.

Voir aussi

Se connecter à SharePoint PowerShell

Gérer SharePoint avec PowerShell

Gestion de Microsoft 365 à l’aide de PowerShell

Prise en main de PowerShell pour Microsoft 365