Travail avec des utilisateurs SharePoint Online

 

Dernière rubrique modifiée : 2014-06-09

**Résumé :**Utilisez Windows PowerShell pour gérer Office 365 à l'aide des applets de commande, des scripts et des processus de traitement par lots Windows PowerShell.

Windows PowerShell est un outil extrêmement utile pour travailler avec les utilisateurs du site SharePoint Online. Vous pouvez utiliser Windows PowerShell et la cmdlet Get-SPOUser pour renvoyer la liste de tous les utilisateurs qui ont obtenu l’accès à un site. C’est facile.

Get-SPOUser -Site "https://litwareinc.sharepoint.com/sites/finance"

Vous devez seulement appeler la commande Get-SPOUser suivie de l’URL du site qui vous intéresse.

Ou, si vous voulez voir uniquement les utilisateurs (et pas les groupes) qui ont accès à un site, vous pouvez utiliser cette commande :

Get-SPOUser -Site "https://litwareinc.sharepoint.com/sites/finance" | Where-Object {$_.IsGroup -eq $False}

C’est facile également. Nous demandons seulement les utilisateurs du site pour lesquels la propriété IsGroup est définie sur False. (Dans Windows PowerShell, vous utilisez $True et $False lors de l’écriture des commandes plutôt que les valeurs habituelles True et False.)

Il est tout aussi facile de renvoyer uniquement les utilisateurs qui sont des administrateurs de site ; autrement dit, les utilisateurs pour lesquels la propriété IsSiteAdmin a la valeur True :

Get-SPOUser -Site "https://litwareinc.sharepoint.com/sites/finance" | Where-Object {$_.IsSiteAdmin -eq $True}

Mais ceci n’est valable que pour un seul site. La puissance de Windows PowerShell (pour ainsi dire) est souvent mise en lumière lorsque vous avez besoin de travailler avec plusieurs objets, par exemple avec plusieurs sites. Par exemple, il est utile d’avoir une liste de tous les utilisateurs qui ont accès à un site donné. Mais qu’en est-il de l’inverse : que dire d’une liste de tous les sites auxquels un seul utilisateur a accès ? Est-il possible d’obtenir cette liste à l’aide de Windows PowerShell ? Bien entendu. Voici un petit script simple (évidemment, simple pour ceux qui ont une certaine expérience de Windows PowerShell) qui renvoie les noms de tous les sites auxquels un utilisateur particulier (dans cet exemple, Ken Myer) a accès :

$x = (Get-SPOSite).Url

foreach ($y in $x)
    {
        $z = $Null
        $z = Get-SpoUser -Site $y | Where-Object {$_.DisplayName -eq "Ken Myer"}
        if ($z -ne $Null) {$y}
    }
RemarqueRemarque :
Comment utiliser un script dans Windows PowerShell ? De cette façon : copiez le code précédent, collez-le dans le Bloc-notes (ou un autre éditeur de texte), puis enregistrez le fichier en utilisant une extension de fichier .ps1 (par exemple, C:\Scripts\SitesAUserCanAccess.ps1). Pour exécuter le script, utilisez Windows PowerShell pour vous connecter à SharePoint Online, puis, à l’invite de commande Windows PowerShell, entrez simplement le chemin d’accès au fichier .ps1 et appuyez sur ENTRÉE :
C:\Scripts\SitesAUserCanAccess.ps1

Ou qu’en est-il d’une liste de tous vos sites et des administrateurs pour chacun de ces sites ? Ces informations peuvent être renvoyées à l’aide d’une seule commande :

Get-SPOSite | ForEach-Object {Write-Host $_.Url; Get-SPOUser -Site $_.Url | Where-Object {$_.IsSiteAdmin -eq $True}}

Vous devez obtenir en retour quelque chose de semblable à ceci :

https://litwareinc.sharepoint.com/sites/communities
MOD Administrator  admin@litwareinc.com {Communities Members, Comm...}
Sara Davis  sarad@litwareinc.com {Communities Members, Communities...}

https://litwareinc.sharepoint.com/sites/finance
MOD Administrator admin@litwareinc.com {Excel Services Viewers, Hi...}

https://litwareinc.sharepoint.com/sites/hr
MOD Administrator  admin@litwareinc.com   {Contoso Beta Members, C...}

Il est vrai qu’il ne s’agit pas de la sortie la plus agréable au monde, mais, inutile de le dire, l’apparence ne fait pas tout. Et, lorsque vous aurez davantage d’expérience et deviendrez un peu plus habile avec Windows PowerShell, vous apprendrez à personnaliser cette sortie de façons différentes et conviviales.

Surtout, Windows PowerShell n’est pas seulement un outil permettant de récupérer des éléments : il permet également de les configurer. Vous avez plusieurs centaines de sites et vous devez faire de Ken Myer l’administrateur de chacun d’entre eux ? Vous n’aviez qu’à le demander :

Get-SPOSite | ForEach-Object {Set-SPOUser -Site $_.Url -LoginName "kenmyer@litwareinc.com" -IsSiteCollectionAdmin $True}

Intéressant, non ?

À suivre : Utilisation des groupes de sites SharePoint Online

Voir aussi

Utilisation de Windows PowerShell pour gérer SharePoint Online