Crie relatórios de Políticas do Active Directory com o PowerShell. Com a ajuda do cmdlet Get-GpoReport
, podemos produzir relatórios sobre Políticas de Grupo (GPO), variando de simples relatórios baseados em texto a 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 Active Directory (AD). Neste artigo, vamos abordar como importar o módulo PowerShell GPO, exportar GPOs e vincular GPOs a uma Unidade Organizacional (OU). Isso será como um exemplo, para que todos eles funcionem juntos para produzir alguns excelentes relatórios.
Vamos começar com como criar relatórios de políticas do Active Directory com o PowerShell.
Crie relatórios de Política de Grupo (GPO) com PowerShell
Pré-requisitos
Neste artigo, abordaremos algumas situações variadas que envolvem a criação e modificação de GPOs existentes. Certifique-se de ter o seguinte em vigor se desejar acompanhar os exemplos:
- O módulo 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 PowerShell abaixo:
Install-WindowsFeature -Name GPMC
- A computer member of the same AD domain from which we will query GPOs.
- Um computador AD-joined com uma conta de usuário de domínio com direitos para ler GPOs.
Leia também Relatório de último logon no Active Directory
Gerando relatórios HTML com Get-GpoReport
Primeiro de tudo, vamos imaginar que temos uma única GPO. Portanto, 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 um dos dois 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 (Extensible Markup Language).
- 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
com o valor HTML
para um relatório HTML e o caminho onde você gostaria de salvar esse 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.
$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 estiver preparado.
Gerando Relatórios HTML Para Todos os GPOs
Alternativamente, para criar um relatório em toda a domínio para GPOs. Nessa situação, devemos usar o argumento All
para consultar todos os GPOs no domínio. No entanto, desta vez, em vez de usar a opção Name
ou Guid
para designar um GPO específico, estamos usando o parâmetro de comutação All
para encontrá-los todos.
Get-GPOReport -All -ReportType Html -Path "C:\Temp\All-SampleReport.html"
Ao ser usado em um ambiente de AD, o cmdlet Get-GPOReport
entra em contato com um controlador de domínio (DC) especificado pelo parâmetro Server
para ler os GPOs. Depois disso, o DC com a função de Emulador de PDC será usado por padrão se nenhum servidor estiver disponível.
Em seguida, como Criar Relatórios de Política de Diretório Ativo com PowerShell é gerar Relatórios XML.
Também leiaRelatórios de Usuários do Office 365
Gerando Relatórios XML com o Get-GpoReport
Geralmente, uma vez que importamos o módulo GPO no PowerShell, existem outras coisas que Get-GPOReport
pode fazer. Isso significa que, 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 quisermos criar um relatório XML para uma GPO específica.
Por exemplo, abaixo consultamos uma GPO existente, Relatório de Amostra
, para produzir um relatório XML. Em seguida, abrimos esse relatório usando o comando Invoke-Item
no aplicativo padrão de arquivos XML:
Get-GPOReport -Name 'Sample GPO' -ReportType Xml -Path "C:\temp\SampleReport.xml"
Invoke-Item -Path "C:\Temp\SampleReport.xml"
Ao concluir, 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 muito mais informações.
Relatório GPO XML
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ãoDirectory – Versão do GPO armazenada na base de dados do AD.
- VersionSysvol – Versão do GPO armazenada em SYSVOL.
- Habilitado – Se desabilitado, o mecanismo de processamento do 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 um GPO. Portanto, o mecanismo de processamento de 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á executar gpupdate.exe após alterar um GPO sem usar a combinação /force.
Leia também Gerenciamento de Active Directory
Verifique 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 do AD disponíveis. Personalize facilmente seus próprios relatórios do AD.
GMPC
Podemos visualizar a versão do GPO (para AD e SYSVOL) e seu estado no GPMC.
Além disso, o computador do cliente ainda processará uma política mesmo quando VersionDirectory
e VersionSysvol
têm um valor de 0
, mas Enabled
é 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á 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.
Portanto, o mecanismo de processamento no computador do cliente não aplicará uma política com VersionDirectory
e VersionSysvol
maiores que 0
mas com Enabled
definido como false
. Podemos perguntar por que algumas configurações não se aplicam. Assim, é essencial investigar se isso foi um acidente ou intencional.
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 fazendo referência a uma propriedade em vez de navegar até o GPMC.
Alternativamente, podemos querer focar em algumas configurações em um GPO. Ou eventualmente queremos anexar um GPO a uma OU usando o PowerShell, para que não precisemos criar um relatório.
- Remova o parâmetro
Path
nessa situação. Observe o cast[xml]
e a ausência de um parâmetroPath
no exemplo abaixo.
[xml]$GpoXml = Get-GPOReport -Name 'Sample GPO' -ReportType Xml
2. Agora que convertemos a saída do Get-GPOReport
em um objeto XML, podemos facilmente acessar suas muitas propriedades usando uma notação de ponto breve.
$GpoXml.GPO.Computer
$GpoXml.GPO.User
3. Adicione um loop foreach
e use o argumento All
para percorrer cada saída do 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
Também leiaFerramenta de Relatórios do Active Directory
Analisando Relatórios GPO em XML
Podemos aprender sobre muitos aspectos dos seus GPOs usando a saída XML que o Get-GPOReport
produz. No exemplo anterior, se olharmos as propriedades $GPOXML.GPO.Computer
e $GPOXML.GPO.User
do modelo anterior, veremos uma propriedade ExtensionData
conforme mostrado abaixo.
Conforme 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.
Criar Relatórios de Políticas de Grupo do Active Directory com o PowerShell Conclusão
Além do Console de Gerenciamento de Políticas de Grupo (GPMC) nativo, 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. Esse cmdlet agora pode obter as mesmas informações que o GPMC por meio do PowerShell. Isso nos permite consultar várias GPOs simultaneamente, o que certamente ajudará a criar excelentes relatórios.
Source:
https://infrasos.com/create-active-directory-policy-reports-with-powershell/