Use PowerShell para Listar Proprietários de Sites do SharePoint: Erros a Evitar
🔍 WiseChecker

Use PowerShell para Listar Proprietários de Sites do SharePoint: Erros a Evitar

Você precisa encontrar todos os proprietários de sites no seu ambiente SharePoint para uma auditoria ou tarefa de limpeza. O PowerShell é a maneira mais rápida de obter esses dados, mas executar o comando errado ou esquecer um parâmetro pode resultar em resultados incompletos ou erros. Este artigo explica os erros comuns ao usar PowerShell para listar proprietários de sites do SharePoint e como escrever o script correto sempre.

Principais Conclusões: Evite Estes Erros de PowerShell para Relatórios de Proprietários do SharePoint

  • Connect-SPOService -Url: Use a URL do centro de administração do SharePoint, não a URL de um conjunto de sites, para estabelecer a sessão correta.
  • Get-SPOSite -Limit All: Sem o parâmetro Limit, o cmdlet retorna apenas os primeiros 200 sites, perdendo muitos proprietários.
  • Propriedade $_.Owner vs. $_.SiteOwner: A propriedade Owner é o administrador principal do conjunto de sites; a propriedade SiteOwner é o proprietário do grupo para sites conectados a grupos.

ADVERTISEMENT

Por Que as Listas de Proprietários do PowerShell Podem Estar Erradas

O SharePoint Online armazena informações de proprietários de sites em dois lugares separados. Um conjunto de sites tem um administrador principal armazenado na propriedade Owner. Um site de equipe conectado ao Microsoft 365 tem um proprietário de grupo adicional armazenado na propriedade SiteOwner. Quando você executa um script PowerShell sem entender essa divisão, pode listar apenas o administrador principal e perder os proprietários do grupo que têm controle total. Outra causa comum de listas incompletas é o limite de página padrão de 200 sites no cmdlet Get-SPOSite. Se seu locatário tiver mais de 200 sites, o script para antes e ignora o restante. Os erros descritos neste artigo decorrem de não ler a documentação do SharePoint Online Management Shell para esses parâmetros e propriedades específicos.

Script PowerShell Correto para Listar Todos os Proprietários de Sites

Antes de executar qualquer script, instale o SharePoint Online Management Shell e conecte-se ao seu locatário. Abra o Windows PowerShell como administrador e execute os seguintes comandos.

  1. Instalar o SharePoint Online Management Shell
    Execute Install-Module -Name Microsoft.Online.SharePoint.PowerShell e confirme a instalação. Este módulo contém todos os cmdlets necessários.
  2. Conectar ao SharePoint Online
    Execute Connect-SPOService -Url https://seulocatario-admin.sharepoint.com. Substitua a URL pela URL do centro de administração do seu locatário, não pela URL de um conjunto de sites. Será solicitado credenciais de administrador global ou do SharePoint.
  3. Recuperar todos os sites com proprietários
    Execute $sites = Get-SPOSite -Limit All -IncludeOwnerSiteOwner. O parâmetro -Limit All remove o limite padrão de 200 sites. O parâmetro -IncludeOwnerSiteOwner garante que o cmdlet retorne tanto o administrador principal quanto o proprietário do grupo para cada site.
  4. Exportar os dados dos proprietários para um arquivo CSV
    Execute o seguinte script para criar um relatório limpo:
    $report = @()
    foreach ($site in $sites) {
    $report += [PSCustomObject]@{
    SiteUrl = $site.Url
    PrimaryAdmin = $site.Owner.Email
    GroupOwner = $site.SiteOwner.Email
    LastContentModifiedDate = $site.LastContentModifiedDate
    }
    }
    $report | Export-Csv -Path C:\Reports\SiteOwners.csv -NoTypeInformation

Após o script terminar, abra o arquivo CSV no Excel. Você verá todos os sites do seu locatário com o e-mail do administrador principal em uma coluna e o e-mail do proprietário do grupo em outra. Se um site não tiver proprietário de grupo, a célula GroupOwner ficará vazia. Isso é esperado para sites clássicos ou sites de comunicação.

ADVERTISEMENT

Erros Comuns e Como Corrigi-los

Usar a URL de conexão errada

Um erro frequente é conectar-se a uma URL de conjunto de sites como https://seulocatario.sharepoint.com/sites/marketing em vez da URL do centro de administração https://seulocatario-admin.sharepoint.com. O cmdlet Connect-SPOService requer a URL do centro de administração. Usar uma URL de site retorna um erro de autenticação. Corrija isso sempre usando o sufixo -admin na URL.

Esquecer o parâmetro -Limit All

O cmdlet Get-SPOSite retorna apenas 200 sites por padrão. Se seu locatário tiver 500 sites, você verá apenas os primeiros 200 proprietários. Adicione -Limit All ao comando para recuperar todos os sites. Sem esse parâmetro, seu relatório fica incompleto e você pode perder sites órfãos sem proprietário.

Confundir Owner com SiteOwner

A propriedade Owner contém o administrador principal do conjunto de sites, geralmente um único usuário. A propriedade SiteOwner contém o proprietário do grupo Microsoft 365 subjacente para sites conectados a grupos. Se você exportar apenas $_.Owner, perderá o proprietário do grupo que tem controle total sobre o site através do grupo. Sempre inclua ambas as propriedades no seu relatório.

Executar o script sem a opção -IncludeOwnerSiteOwner

Por padrão, Get-SPOSite não retorna a propriedade SiteOwner. Se você omitir a opção -IncludeOwnerSiteOwner, o valor de $_.SiteOwner ficará vazio para todos os sites, mesmo que exista um proprietário de grupo. Adicione esta opção ao comando para preencher a propriedade corretamente.

Não tratar sites sem proprietário de grupo

Sites de comunicação e sites de equipe clássicos não têm um grupo Microsoft 365, então a propriedade SiteOwner é nula. Se seu script tentar chamar $_.SiteOwner.Email em um objeto nulo, ocorrerá um erro. Use uma verificação condicional no seu loop: if ($_.SiteOwner -ne $null) { $groupOwner = $_.SiteOwner.Email } else { $groupOwner = "N/A" }.

Scripts PowerShell Comparados: Básico vs. Completo

Item Script Básico Script Completo
URL de Conexão URL do conjunto de sites URL do centro de administração com -admin
Limite de sites Padrão de 200 sites -Limit All
Propriedade de proprietário incluída Apenas Owner Owner e SiteOwner
Opção de proprietário de grupo Não usada -IncludeOwnerSiteOwner
Tratamento de nulo Gera erro em nulo Verificação condicional para nulo
Formato de saída Apenas na tela Exportação CSV com todas as colunas

O script básico é rápido para uma verificação rápida de alguns sites, mas falha para qualquer locatário com mais de 200 sites ou sites conectados a grupos. O script completo funciona para qualquer tamanho de locatário e produz um relatório confiável que inclui tanto administradores principais quanto proprietários de grupo.

Agora você pode executar um script PowerShell que lista todos os proprietários de sites no seu locatário do SharePoint Online sem perder nenhum registro. Comece conectando-se à URL do centro de administração com as credenciais corretas e, em seguida, use Get-SPOSite -Limit All -IncludeOwnerSiteOwner para recuperar todos os sites. Para uma dica avançada, adicione o parâmetro -Filter para segmentar apenas sites que não foram modificados nos últimos 90 dias, o que ajuda a identificar sites obsoletos antes de remover seus proprietários.

ADVERTISEMENT