Gerenciar usuários e grupos do SharePoint com o PowerShell
Esse artigo se aplica ao Microsoft 365 Enterprise e ao Office 365 Enterprise.
Se você é um administrador do SharePoint que trabalha com grandes listas de contas de usuário ou grupos e deseja uma maneira mais fácil de gerenciá-las, você pode usar o PowerShell para o Microsoft 365.
Antes de começar, os procedimentos neste artigo exigem que você se conecte ao SharePoint. Para obter instruções, consulte Conectar-se ao SharePoint PowerShell
Obter uma lista de sites, grupos e usuários
Antes de começarmos a gerenciar usuários e grupos, você precisa obter listas de seus sites, grupos e usuários. Você pode usar essas informações para resolver o exemplo neste artigo.
Obtenha uma lista dos sites em seu locatário com este comando:
Get-SPOSite
Obtenha uma lista dos grupos em seu locatário com este comando:
Get-SPOSite | ForEach {Get-SPOSiteGroup -Site $_.Url} | Format-Table
Obtenha uma lista dos usuários em seu locatário com este comando:
Get-SPOSite | ForEach {Get-SPOUser -Site $_.Url}
Adicionar um usuário ao grupo de administradores do site
Você usa o Set-SPOUser
cmdlet para adicionar um usuário à lista de administradores de site em uma coleção 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
Para usar esses comandos, substitua tudo dentro das aspas, incluindo os < caracteres e > , pelos nomes corretos.
Por exemplo, esse conjunto de comandos adiciona oPal Castillo (nome de usuário opalc) à lista de administradores de site na coleção de sites ContosoTest no locatário contoso:
$tenant = "contoso"
$site = "contosotest"
$user = "opalc"
Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true
Você pode copiar e colar esses comandos no Bloco de Notas, alterar os valores variáveis para $tenant, $site e $user para valores reais do seu ambiente e, em seguida, cole-os na janela do Shell de Gerenciamento do SharePoint para executá-los.
Adicionar um usuário a outros grupos de coleção de sites
Nesta tarefa, usamos o Add-SPOUser
cmdlet para adicionar um usuário a um grupo do SharePoint em uma coleção 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
Por exemplo, vamos adicionar Glen Rife (nome de usuário glenr) ao grupo Auditores na coleção de sites ContosoTest na locação contoso:
$tenant = "contoso"
$site = "contosotest"
$user = "glenr"
$group = "Auditors"
Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site
Criar um grupo de conjunto de sites
Você usa o New-SPOSiteGroup
cmdlet para criar um novo grupo do SharePoint e adicioná-lo a uma coleção 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
As propriedades de grupo, como níveis de permissão, podem ser atualizadas posteriormente usando o Set-SPOSiteGroup
cmdlet.
Por exemplo, vamos adicionar o grupo Auditores com permissões Exibir Somente à coleção de sites contosotest na locação contoso:
$tenant = "contoso"
$site = "contosotest"
$group = "Auditors"
$level = "View Only"
New-SPOSiteGroup -Group $group -PermissionLevels $level -Site https://$tenant.sharepoint.com/sites/$site
Remover usuários de um grupo
Às vezes, você precisa remover um usuário de um site ou até mesmo de todos os sites. Talvez o funcionário se mova de uma divisão para outra ou saia da empresa. Você pode fazer isso por um funcionário facilmente na interface do usuário, mas isso não é feito facilmente quando você precisa mover uma divisão completa de um site para outro.
No entanto, usando os arquivos Shell de Gerenciamento do SharePoint e CSV, isso é rápido e fácil. Nesta tarefa, você usa Windows PowerShell para remover um usuário de um grupo de segurança de coleção de sites. Em seguida, você usa um arquivo CSV e remove muitos usuários de sites diferentes.
Usaremos o cmdlet 'Remove-SPOUser' para remover um único usuário do Microsoft 365 de um grupo de coleção de sites para que possamos ver a sintaxe de comando. Veja como a sintaxe parece:
$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
Por exemplo, vamos remover Bobby Overby do grupo auditores da coleção de sites na coleção de sites contosotest na locação contoso:
$tenant = "contoso"
$site = "contosotest"
$user = "bobbyo"
$group = "Auditors"
Remove-SPOUser -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site -Group $group
Suponha que queríamos remover Bobby de todos os grupos em que ele está atualmente. É assim que faríamos isso:
$tenant = "contoso"
$user = "bobbyo"
Get-SPOSite | ForEach {Get-SPOSiteGroup –Site $_.Url} | ForEach {Remove-SPOUser -LoginName $user@$tenant.com -Site $_.Url}
Aviso
Este é apenas um exemplo. Você não deve executar esse comando, a menos que você realmente deseja remover um usuário de cada grupo, por exemplo, se o usuário deixar a empresa.
Automatizar o gerenciamento de grandes listas de usuários e grupos
Para adicionar um grande número de contas a sites do SharePoint e dar-lhes permissões, você pode usar o Centro de administração do Microsoft 365, comandos individuais do PowerShell ou PowerShell e um arquivo CSV. Dessas escolhas, o arquivo CSV é a maneira mais rápida de automatizar esta tarefa.
O processo básico é a criação de um arquivo CSV com cabeçalhos (colunas) que correspondem aos parâmetros que requerem um script do Windows PowerShell. Você pode criar facilmente essa lista no Excel e exportá-la como um arquivo CSV. Em seguida, você pode usar um script do Windows PowerShell para pesquisar nos registros (linhas) no arquivo CSV, adicionar usuários a grupos e os grupos para os sites.
Por exemplo, vamos criar um arquivo CSV para definir um grupo de coleções de sites, grupos e permissões. Em seguida, criaremos um arquivo CSV para preencher os grupos com usuários. Por fim, criaremos e executaremos um script Windows PowerShell que cria e popula os grupos.
O primeiro arquivo CSV adiciona um ou mais grupos a uma ou mais coleções de sites e terá essa estrutura:
Cabeçalho:
Site,Group,PermissionLevels
Item:
https://tenant.sharepoint.com/sites/site,group,level
Aqui está um arquivo de exemplo:
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
O segundo arquivo CSV adiciona um ou mais usuários a um ou mais grupos e terá essa estrutura:
Cabeçalho:
Group,LoginName,Site
Item:
group,login,https://tenant.sharepoint.com/sites/site
Aqui está um arquivo de exemplo:
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
Para a próxima etapa, você deverá salvar os dois arquivos CSV na sua unidade. Aqui estão comandos de exemplo que usam arquivos CSV e para adicionar permissões e associação de grupo:
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}
O script importa o conteúdo do arquivo CSV e usa os valores nas colunas para preencher os parâmetros dos comandos New-SPOSiteGroup e Add-SPOUser . Em nosso exemplo, estamos salvando esse arquivo para a pasta O365Admin na unidade C, mas você pode salvá-lo onde quiser.
Agora, vamos remover um monte de pessoas para vários grupos em sites diferentes usando o mesmo arquivo CSV. Aqui está um comando de exemplo:
Import-Csv C:\O365Admin\Users.csv | ForEach {Remove-SPOUser -LoginName $_.LoginName -Site $_.Site -Group $_.Group}
Gerar relatórios de usuário
Talvez você queira obter um relatório para alguns sites e exibir os usuários para esses sites, seu nível de permissão e outras propriedades. A sintaxe é a seguinte:
$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
Isso captura os dados desses três sites e os grava em um arquivo de texto em sua unidade local. O parâmetro – Append adiciona novo conteúdo a um arquivo existente.
Por exemplo, vamos executar um relatório nos sites ContosoTest, TeamSite01 e Project01 do locatário 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
Tivemos que alterar apenas a variável $site . A variável $tenant mantém seu valor em todas as três execuções do comando.
Mas e se você quiser fazer isso em todos os sites? Você poderá fazer isso sem ter que digitar todos os sites usando este comando:
Get-SPOSite | ForEach {Get-SPOUser –Site $_.Url} | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append
Este relatório é muito simples, e você pode adicionar mais códigos para criar relatórios ou relatórios que incluem informações mais detalhadas e mais precisas. Mas isso deve dar uma ideia de como usar o Shell de Gerenciamento do SharePoint para gerenciar usuários no ambiente do SharePoint.
Confira também
Conectar-se ao SharePoint PowerShell
Gerenciar o SharePoint com o PowerShell