Criar Relatórios de Diretiva de Grupo do Active Directory com PowerShell (GPO)

Crie Relatórios de Políticas de Grupo do Active Directory com PowerShell. Com a ajuda do cmdlet Get-GpoReport, podemos produzir relatórios sobre Políticas de Grupo (GPO), que vão desde os mais simples baseados em texto até relatórios completos em HyperText Markup Language (HTML). Além disso, podemos automatizar esse processo de geração de relatórios com PowerShell. Isso é para economizar tempo e obter informações importantes sobre seu sistema do Active Directory (AD). Neste artigo, vamos explicar como importar o módulo do PowerShell para GPO, exportar GPOs e vincular GPOs a uma Unidade Organizacional (OU). Isso será um exemplo, para que todos trabalhem juntos na produção de alguns relatórios de alta qualidade.

Vamos começar com como Criar Relatórios de Políticas do Active Directory com PowerShell.Também Leia Encontrar SID no Active Directory Usuários e Computadores Usando PowerShell

Crie Relatórios de Política de Grupo (GPO) com o PowerShell

Pré-requisitos

Neste artigo, abordaremos algumas situações variadas que envolvem a criação e a modificação de GPOs existentes. Certifique-se de ter o seguinte em vigor se deseja acompanhar os exemplos:

  • O módulo do PowerShell para Política de Grupo. Se você estiver usando Windows 10, podemos encontrar isso baixando e instalando o RSAT, ou se você estiver usando o Windows Server, podemos usar o comando do PowerShell abaixo:
Install-WindowsFeature -Name GPMC
  • A computer member of the same AD domain from which we will query GPOs.
  • Um computador aderido ao AD com uma conta de usuário de domínio com direitos para ler GPOs.

Gerando Relatórios HTML com Get-GpoReport

Primeiro de tudo, vamos imaginar que temos uma única GPO. Então, você deseja visualizar as configurações dela (bem como gerar um relatório HTML) para começar. Felizmente, Get-GpoReport pode descobrir uma GPO em qualquer lugar e utilizar o PowerShell para exportá-las. Para fazer isso, precisaremos do nome da GPO ou do Identificador Único Global (GUID) da GPO.

Portanto, você precisará utilizar pelo menos três parâmetros para criar um relatório HTML detalhado:

  • Nome ou Guid para localizar a GPO.
  • Parâmetro ReportType para especificar o tipo de relatório a ser gerado. Podemos escolher entre HTML ou XML (Linguagem de Marcação Extensível).
  • Caminho para especificar onde gostaríamos que o relatório fosse salvo.

Talvez tenhamos uma GPO em seu ambiente. Por exemplo, podemos especificar o ReportType de um valor HTML para um relatório HTML e o caminho onde você gostaria de salvar este arquivo HTML se soubermos o nome da GPO, como fazemos neste exemplo.

Get-GPOReport -Name 'Sample GPO' -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'

Alternativamente, poderíamos usar o parâmetro Guid para encontrar a GPO, mas isso é um passo extra usando o exemplo abaixo.Podemos visualizar o relatório em seu navegador preferido uma vez preparado.

$gponame = (Get-GPO -Name 'Sample GPO').Id
Get-GPOReport -Guid $gponame -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'

Podemos visualizar o relatório no seu navegador preferido assim que ele estiver pronto.

Gerando Relatórios HTML Para Todas as GPOs

Alternativamente, para criar um relatório em todo o domínio para GPOs. Nesse caso, precisamos usar o argumento All para consultar todas as GPOs no domínio. No entanto, desta vez, em vez de usar a opção Name ou Guid para designar uma GPO específica, estamos usando o parâmetro de interruptor All para encontrá-las todas.

Get-GPOReport -All -ReportType Html -Path "C:\Temp\All-SampleReport.html"

Quando usado em um ambiente AD, o cmdlet Get-GPOReport entra em contato com um controlador de domínio (DC) especificado pelo parâmetro Server para ler GPOs. Depois disso, o DC com o papel de PDC Emulator será usado por padrão se nenhum servidor estiver disponível.

A seguir com como criar Active Directory Policy Reports com PowerShell é gerar relatórios XML.

Gerando Relatórios XML com Get-GpoReport

Geralmente, uma vez que importamos o módulo GPO no PowerShell, há outras coisas que o Get-GPOReport pode fazer. Isso significa, além de exportar GPOs e produzir relatórios HTML. Além disso, também podemos produzir relatórios XML. Por exemplo, precisaríamos modificar o valor do parâmetro ReportType de HTML para XML se quiséssemos criar um relatório XML para um GPO específico.

Por exemplo, abaixo consultamos um GPO existente, Sample Report, para produzir um relatório XML. Em seguida, abrimos esse relatório usando o comando Invoke-Item no aplicativo padrão do arquivo XML:

Get-GPOReport -Name 'Sample GPO' -ReportType Xml -Path "C:\temp\SampleReport.xml"
Invoke-Item -Path "C:\Temp\SampleReport.xml"

Quando concluído, veremos o arquivo XML como na captura de tela abaixo.

Primeiramente, notamos que o nó XML do GPO contém tudo. Dentro dele, podemos encontrar coisas como Identificador (o GUID do GPO), Nome (O Nome do GPO), Incluir Comentários, Descritor de Segurança, SDDL e muitas outras informações.

Relatório XML do GPO

Além do formato, o que diferencia este relatório XML do HTML? Basicamente, os atributos vistos no relatório HTML também estão presentes no relatório XML. Mas eles são mais estruturados e fáceis de analisar.

  • Versão do Diretório Versão do GPO armazenada no banco de dados AD.
  • VersãoSysvol – Versão da GPO armazenada em SYSVOL.
  • Ativado – Se desativado, o mecanismo de processamento da GPO no computador cliente não aplicará as configurações na parte correspondente da política.

Importante, a versão da política (computador ou usuário) aumenta quando modificamos uma GPO. Portanto, o mecanismo de processamento da Política de Grupo pode então determinar quando aplicar novas configurações e quando uma política foi alterada. Além disso, esse comportamento nos permitirá lançar gpupdate.exe após alterar uma GPO sem usar o switch /force conjunto.

Verifique os Relatórios de Política de Grupo do Active Directory usando o InfraSOS

Experimente-nos gratuitamente, Acesso a todos os recursos. – 200+ modelos de Relatórios AD disponíveis. Personalize facilmente seus próprios relatórios AD.




GMPC

Poderemos visualizar a versão da GPO (para AD e SYSVOL) e seu estado no GMPC.

Além disso, o computador do cliente ainda processará uma política mesmo enquanto VersionDirectory e VersionSysvol tiverem um valor de 0, mas Enabled for true. O sistema informará ao mecanismo de processamento que não precisamos implementar a parte relevante do GPO. Alterar a configuração não afetará muito o desempenho de um computador rápido em uma rede relativamente curta. Mesmo assim, ainda pode economizar muitos segundos valiosos desses GPOs, especialmente para máquinas mais antigas em redes mais lentas.

Então, o mecanismo de processamento na máquina cliente não aplicará uma política com VersionDirectory e VersionSysvol acima de 0, mas Enabled definido como false. Podemos perguntar por que algumas configurações não se aplicam. Portanto, é essencial investigar se isso é um acidente ou de propósito.

Suponha que estejamos familiarizados com o funcionamento interno do GPO. Nesse caso, podemos usar o comando Get-GPOReport. Portanto, isso é para verificar essas configurações diretamente, referenciando uma propriedade em vez de navegar para o GPMC.

Alternativamente, podemos querer focar em algumas configurações em um GPO. Ou, eventualmente, queremos anexar um GPO a uma UO usando o PowerShell, para que não seja necessário criar um relatório.

  1. Remova o parâmetro Caminho nessa situação. Observe o elenco [xml] e a ausência de um parâmetro Caminho no exemplo abaixo.
[xml]$GpoXml = Get-GPOReport -Name 'Sample GPO' -ReportType Xml

2. Agora que convertemos a saída de Get-GPOReport em um objeto XML, podemos fazer referência rapidamente a muitas de suas propriedades usando uma notação de ponto concisa.

$GpoXml.GPO.Computer
$GpoXml.GPO.User

3. Adicione um loop foreach e use o argumento Todos para percorrer cada saída de GPO.

$AllGpos = Get-GPO -All
$GpoVersionInfo = foreach ($gpo in $gpos) {
    [xml]$g = Get-GPOReport -ReportType Xml -Guid $gpo.Id
    [PSCustomObject]@{
        "Name" = $g.GPO.Name
        "Comp-Ad" = $g.GPO.Computer.VersionDirectory
    }
}
$GpoVersionInfo | Sort-Object Name | Format-Table

Analisando Relatórios de GPO XML

Podemos aprender sobre muitos aspectos de suas GPOs usando a saída XML que o Get-GPOReport produz. No exemplo anterior, se olharmos para as propriedades $GPOXML.GPO.Computador e $GPOXML.GPO.Usuário do modelo anterior, veremos uma propriedade Dados de Extensão conforme mostrado abaixo.

Como mostrado abaixo, podemos começar a criar seus relatórios com base nos dados XML acessando esses nós XML no PowerShell.

$PolicyDetails = foreach ($policy in $GpoXml.GPO.User.ExtensionData.Extension.Policy) {
    [PSCustomObject]@{
        "Name" = $policy.Name
        "State" = $policy.State
    }
}

$PolicyDetails

Obrigado por ler nosso blog sobre como Criar Relatórios de Política do Active Directory com PowerShell. Vamos concluir.

Crie Relatórios de Política de Grupo do Active Directory com PowerShell Conclusão

Além do Console de Gerenciamento de Política de Grupo nativo (GPMC), este artigo discutiu maneiras de gerar relatórios abrangentes sobre Políticas de Grupo exportando-os em formatos HTML e XML. Também discutimos o Get-GpoReport cmdlet. Este cmdlet agora pode recuperar as mesmas informações que o GPMC via PowerShell. Isso nos permite consultar muitas GPOs simultaneamente, o que certamente ajudará a construir excelentes relatórios.

Source:
https://infrasos.com/create-active-directory-policy-reports-with-powershell/