Gerir utilizadores e grupos do SharePoint com o PowerShell
Este artigo aplica-se tanto a Microsoft 365 Enterprise como a Office 365 Enterprise.
Se for um administrador do SharePoint que trabalha com grandes listas de contas ou grupos de utilizadores e quer uma forma mais fácil de geri-los, pode utilizar o PowerShell para o Microsoft 365.
Antes de começar, os procedimentos neste artigo requerem que se ligue ao SharePoint. Para obter instruções, veja Ligar ao PowerShell do SharePoint
Obter uma lista de sites, grupos e utilizadores
Antes de começarmos a gerir utilizadores e grupos, tem de obter listas dos seus sites, grupos e utilizadores. Em seguida, pode utilizar estas informações para analisar o exemplo neste artigo.
Obtenha uma lista dos sites no seu inquilino com este comando:
Get-SPOSite
Obtenha uma lista dos grupos no seu inquilino com este comando:
Get-SPOSite | ForEach {Get-SPOSiteGroup -Site $_.Url} | Format-Table
Obtenha uma lista dos utilizadores no seu inquilino com este comando:
Get-SPOSite | ForEach {Get-SPOUser -Site $_.Url}
Adicionar um utilizador ao grupo de administradores do site
Utilize o Set-SPOUser
cmdlet para adicionar um utilizador à lista de administradores de sites numa 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 utilizar estes comandos, substitua tudo dentro das aspas, incluindo os < carateres e > , pelos nomes corretos.
Por exemplo, este conjunto de comandos adiciona Opal Castillo (nome de utilizador opalc) à lista de administradores de sites na coleção de sites ContosoTest no inquilino contoso:
$tenant = "contoso"
$site = "contosotest"
$user = "opalc"
Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true
Pode copiar e colar estes comandos no Bloco de Notas, alterar os valores das variáveis para $tenant, $site e $user para valores reais do seu ambiente e, em seguida, colá-los na janela da Shell de Gestão do SharePoint para executá-los.
Adicionar um utilizador a outros grupos de coleções de sites
Nesta tarefa, utilizamos o Add-SPOUser
cmdlet para adicionar um utilizador a um grupo do SharePoint numa 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 utilizador glenr) ao grupo Auditores na coleção de sites ContosoTest no inquilino contoso:
$tenant = "contoso"
$site = "contosotest"
$user = "glenr"
$group = "Auditors"
Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site
Create um grupo de coleções de sites
Utilize 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 do grupo, como os níveis de permissão, podem ser atualizadas mais tarde com o Set-SPOSiteGroup
cmdlet .
Por exemplo, vamos adicionar o grupo Auditores com permissões Ver Apenas à coleção de sites contosotest no inquilino contoso:
$tenant = "contoso"
$site = "contosotest"
$group = "Auditors"
$level = "View Only"
New-SPOSiteGroup -Group $group -PermissionLevels $level -Site https://$tenant.sharepoint.com/sites/$site
Remover utilizadores de um grupo
Por vezes, tem de remover um utilizador de um site ou até de todos os sites. Talvez o empregado se mova de uma divisão para outra ou saia da empresa. Pode fazê-lo facilmente para um funcionário na IU, mas isto não é feito facilmente quando tem de mover uma divisão completa de um site para outro.
No entanto, ao utilizar a Shell de Gestão do SharePoint e os ficheiros CSV, isto é rápido e fácil. Nesta tarefa, vai utilizar Windows PowerShell para remover um utilizador de um grupo de segurança de coleção de sites. Em seguida, utilize um ficheiro CSV e remova muitos utilizadores de sites diferentes.
Vamos utilizar o cmdlet "Remove-SPOUser" para remover um único utilizador do Microsoft 365 de um grupo de coleções de sites para que possamos ver a sintaxe do comando. Eis o aspeto da sintaxe:
$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 Bruno Overby do grupo Auditores da coleção de sites na coleção de sites contosotest no inquilino 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 o Bobby de todos os grupos em que está atualmente. Eis como o faríamos:
$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. Não deve executar este comando, a menos que tenha realmente de remover um utilizador de cada grupo, por exemplo, se o utilizador sair da empresa.
Automatizar a gestão de grandes listas de utilizadores e grupos
Para adicionar um grande número de contas a sites do SharePoint e conceder-lhes permissões, pode utilizar o centro de administração do Microsoft 365, comandos individuais do PowerShell ou o PowerShell e um ficheiro CSV. Destas opções, o ficheiro CSV é a forma mais rápida de automatizar esta tarefa.
O processo básico é criar um ficheiro CSV que tenha cabeçalhos (colunas) que correspondam aos parâmetros de que o script Windows PowerShell precisa. Pode criar facilmente essa lista no Excel e, em seguida, exportá-la como um ficheiro CSV. Em seguida, utilize um script Windows PowerShell para iterar através de registos (linhas) no ficheiro CSV, adicionando os utilizadores a grupos e grupos a sites.
Por exemplo, vamos criar um ficheiro CSV para definir um grupo de coleções de sites, grupos e permissões. Em seguida, vamos criar um ficheiro CSV para preencher os grupos com utilizadores. Por fim, vamos criar e executar um script Windows PowerShell que cria e preenche os grupos.
O primeiro ficheiro CSV adiciona um ou mais grupos a uma ou mais coleções de sites e terá esta estrutura:
Cabeçalho:
Site,Group,PermissionLevels
Item:
https://tenant.sharepoint.com/sites/site,group,level
Eis um ficheiro 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 ficheiro CSV adiciona um ou mais utilizadores a um ou mais grupos e terá esta estrutura:
Cabeçalho:
Group,LoginName,Site
Item:
group,login,https://tenant.sharepoint.com/sites/site
Eis um ficheiro 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 o próximo passo, tem de ter os dois ficheiros CSV guardados na unidade. Seguem-se comandos de exemplo que utilizam ficheiros CSV e para adicionar permissões e associação a grupos:
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 os conteúdos do ficheiro CSV e utiliza os valores nas colunas para preencher os parâmetros dos comandos New-SPOSiteGroup e Add-SPOUser . No nosso exemplo, estamos a guardar este ficheiro na pasta O365Admin na unidade C, mas pode guardá-lo onde quiser.
Agora, vamos remover um grupo de pessoas para vários grupos em sites diferentes com o mesmo ficheiro CSV. Eis um comando de exemplo:
Import-Csv C:\O365Admin\Users.csv | ForEach {Remove-SPOUser -LoginName $_.LoginName -Site $_.Site -Group $_.Group}
Gerar relatórios de utilizador
Poderá querer obter um relatório para alguns sites e apresentar os utilizadores desses sites, o respetivo nível de permissão e outras propriedades. Este é o aspeto da sintaxe:
$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
Esta ação captura os dados destes três sites e escreve-os num ficheiro de texto na unidade local. O parâmetro –Acrescentar adiciona novo conteúdo a um ficheiro existente.
Por exemplo, vamos executar um relatório nos sites ContosoTest, TeamSite01 e Project01 para o inquilino 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 de alterar apenas a variável $site . A variável $tenant mantém o seu valor através das três execuções do comando.
No entanto, e se quisesse fazer isto para cada site? Pode fazê-lo sem ter de escrever todos esses sites com 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 é bastante simples e pode adicionar mais código para criar relatórios ou relatórios mais específicos que incluam informações mais detalhadas. No entanto, isto deve dar-lhe uma ideia de como utilizar a Shell de Gestão do SharePoint para gerir utilizadores no ambiente do SharePoint.
Consulte também
Ligar ao PowerShell do SharePoint
Gerir o SharePoint com o PowerShell