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.
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.
Leia Também Relatório de Último Login no Active Directory
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.
$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.
Leia Também Relatórios de Usuários do Office 365
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.
Também Leia Gerenciamento do Active Directory
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.
- Remova o parâmetro
Caminho
nessa situação. Observe o elenco[xml]
e a ausência de um parâmetroCaminho
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
Também Leia Ferramenta de Relatório do Active Directory
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/