Crear informes de Políticas de Active Directory con PowerShell. Con la ayuda del cmdlet Get-GpoReport
, podemos generar informes sobre Políticas de Grupo (GPO), que van desde informes básicos basados en texto hasta informes completamente desarrollados en Hypertext Markup Language (HTML). Además, podemos automatizar este proceso de generación de informes con PowerShell. Esto es para ahorrar tiempo y obtener información importante sobre su sistema Active Directory (AD). En este artículo, repasaremos cómo importar el módulo PowerShell GPO, exportar GPO y vincular GPO a una Unidad Organizativa (OU). Esto servirá de ejemplo para que todos trabajen juntos para producir algunos informes de primera clase informes.
¿Comenzamos con cómo crear informes de políticas de Active Directory con PowerShell?
Crear informes de Directiva de Grupo de AD (GPO) con PowerShell
Requisitos previos
En este artículo, repasaremos algunas situaciones diversas que implican crear y modificar GPO existentes. Asegúrate de tener lo siguiente en su lugar si deseas seguir los ejemplos:
- El módulo de PowerShell para Directiva de Grupo. Si estás usando Windows 10, puedes encontrarlo descargando e instalando RSAT, o si estás usando Windows Server, puedes usar el siguiente comando de PowerShell:
Install-WindowsFeature -Name GPMC
- A computer member of the same AD domain from which we will query GPOs.
- Un equipo unido al dominio con una cuenta de usuario de dominio con derechos para leer GPO.
También leeInforme de última sesión en Active Directory
Generando informes HTML con Get-GpoReport
En primer lugar, imaginemos que tenemos una sola GPO. Entonces, deseas ver la configuración de la misma (así como generar un informe HTML) para comenzar. Afortunadamente, Get-GpoReport
puede descubrir una GPO en ambos casos y utilizar PowerShell para exportarlas. Para hacerlo, necesitaremos el nombre de la GPO o el Identificador Único Global (GUID) de la GPO.
Por lo tanto, necesitarás utilizar al menos tres parámetros para crear un informe HTML detallado:
- Nombre o GUID para localizar la GPO.
- Parámetro ReportType para especificar el tipo de informe a generar. Podemos elegir entre HTML o XML (Lenguaje de Marcado Extensible).
- Ruta para especificar dónde queremos que se guarde el informe.
Tal vez tengamos una GPO en tu entorno. Por ejemplo, podemos especificar el ReportType
con el valor HTML
para un informe HTML y la ruta donde te gustaría guardar este archivo HTML si conocemos el nombre de la GPO, como en este ejemplo.
Get-GPOReport -Name 'Sample GPO' -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'
Alternativamente, podríamos utilizar el parámetro Guid
para encontrar la GPO, pero esto es un paso adicional utilizando el siguiente ejemplo.
$gponame = (Get-GPO -Name 'Sample GPO').Id
Get-GPOReport -Guid $gponame -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'
Podemos ver el informe en tu navegador preferido una vez que esté preparado.
Generación de informes HTML para todos los GPO
Alternativamente, para crear un informe de ámbito de dominio para los GPO. En ese caso, debemos utilizar el argumento All
para consultar todos los GPO en el dominio. Sin embargo, en esta ocasión, en lugar de utilizar la opción Name
o Guid
para designar un GPO específico, estamos utilizando el parámetro de conmutación All
para encontrarlos todos.
Get-GPOReport -All -ReportType Html -Path "C:\Temp\All-SampleReport.html"
Cuando se utiliza en un entorno de AD, el cmdlet Get-GPOReport
contacta con un controlador de dominio (DC) especificado por el parámetro Server
para leer los GPO. Después, el DC con el rol de Emulador de PDC será utilizado de forma predeterminada si no hay ningún servidor disponible.
A continuación, cómo crear Informes de Directiva de Directivas de Directorio Activo con PowerShell es generar Informes XML.
También lee Informes de usuario de Office 365
Generando informes XML con Get-GpoReport
En general, una vez que importamos el módulo GPO en PowerShell, hay otras cosas que Get-GPOReport
puede hacer. Eso significa que, además de exportar GPOs y producir informes HTML. Además, también podemos producir informes XML. Por ejemplo, necesitaríamos modificar el valor del parámetro ReportType
de HTML
a XML
si quisiéramos crear un informe XML para una GPO específica.
Por ejemplo, a continuación consultamos una GPO existente, Informe de muestra
, para producir un informe XML. Luego, abrimos ese informe usando el comando Invoke-Item
en la aplicación predeterminada de archivos XML:
Get-GPOReport -Name 'Sample GPO' -ReportType Xml -Path "C:\temp\SampleReport.xml"
Invoke-Item -Path "C:\Temp\SampleReport.xml"
Cuando esté completo, veremos el archivo XML como se muestra en la captura de pantalla a continuación.
Primero, notamos que el nodo GPO XML contiene todo. Dentro de él, podemos encontrar cosas como Identificador
(el GUID del GPO), Nombre
(El nombre del GPO), Incluir Comentarios, Descriptor de Seguridad, SDDL
y mucha más información.
Informe GPO XML
Además del formato, ¿qué diferencia este informe XML de HTML? Básicamente, los atributos que se ven en el informe HTML también están presentes en el informe XML. Pero están más estructurados y fáciles de analizar.
- VersiónDirectorio – Versión del GPO almacenada en la base de datos de AD.
- VersionSysvol – Versión de la GPO almacenada en SYSVOL.
- Habilitado – Si está deshabilitado, el motor de procesamiento de GPO en el equipo cliente no aplicará la configuración en la parte correspondiente de la directiva.
Es importante destacar que la versión de la directiva (computadora o usuario) aumenta cuando modificamos una GPO. Por lo tanto, el motor de procesamiento de Directiva de grupo puede determinar cuándo aplicar nuevas configuraciones y cuándo ha cambiado una directiva. Además, este comportamiento nos permitirá ejecutar gpupdate.exe después de cambiar una GPO sin usar el interruptor /force.
También leer Administración de Active Directory
Ver informes de directiva de grupo de Active Directory utilizando InfraSOS
Pruébanos gratis, acceso a todas las funciones. – Más de 200 plantillas de informes AD disponibles. Personaliza fácilmente tus propios informes de AD.
GMPC
Podemos ver la versión de la GPO (para AD y SYSVOL) y su estado en el GPMC.
Además, la computadora del cliente seguirá procesando una directiva incluso cuando VersionDirectory
y VersionSysvol
tengan un valor de 0
, pero Enabled
sea true
. El sistema informará al motor de procesamiento que no necesitamos implementar la parte relevante de la GPO. Cambiar la configuración no afectará mucho el rendimiento de una computadora rápida en una red relativamente corta. Aun así, puede ahorrar muchos segundos valiosos de dichas GPO, especialmente en máquinas más antiguas en redes más lentas.
Por lo tanto, el motor de procesamiento en la máquina cliente no aplicará una directiva con VersionDirectory
y VersionSysvol
superiores a 0
, pero Enabled
configurado como false
. Podríamos preguntarnos por qué algunas configuraciones no se aplican. Por lo tanto, es esencial investigar si esto es un accidente o a propósito.
Supongamos que estamos familiarizados con el funcionamiento interno de la GPO. En ese caso, podemos usar el comando Get-GPOReport
. Por lo tanto, esto es para verificar estas configuraciones directamente haciendo referencia a una propiedad en lugar de navegar al GPMC.
Alternatively, podemos querer enfocarnos en algunas configuraciones en una GPO. O eventualmente queremos adjuntar una GPO a una OU usando PowerShell, para que no necesitemos crear un informe.
- Elimine el parámetro
Path
en esa situación. Tenga en cuenta la conversión a[xml]
y la ausencia de un parámetroPath
en el siguiente ejemplo.
[xml]$GpoXml = Get-GPOReport -Name 'Sample GPO' -ReportType Xml
2. Ahora que hemos convertido la salida de Get-GPOReport
en un objeto XML, podemos hacer referencia rápidamente a sus muchas propiedades utilizando una breve notación de puntos.
$GpoXml.GPO.Computer
$GpoXml.GPO.User
3. Agregue un bucle foreach
y use el argumento All
para recorrer cada salida 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
También leer Herramienta de informes de Active Directory
Análisis de informes XML de GPO
Podemos aprender sobre muchos aspectos de sus GPO utilizando la salida XML que produce Get-GPOReport
. En el ejemplo anterior, si observamos las propiedades $GPOXML.GPO.Computer
y $GPOXML.GPO.User
del modelo anterior, veremos una propiedad ExtensionData
como se muestra a continuación.
Como se muestra a continuación, podemos comenzar a crear sus informes basados en los datos XML accediendo a estos nodos XML en PowerShell.
$PolicyDetails = foreach ($policy in $GpoXml.GPO.User.ExtensionData.Extension.Policy) {
[PSCustomObject]@{
"Name" = $policy.Name
"State" = $policy.State
}
}
$PolicyDetails
Gracias por leer nuestro blog sobre cómo crear informes de directivas de Active Directory con PowerShell. Concluyamos.
Crear informes de directivas de grupo de Active Directory con PowerShell – Conclusión
Además de la Consola de administración de directivas de grupo (GPMC) nativa, este artículo discutió formas de generar informes completos sobre las Directivas de grupo exportándolas en formatos HTML y XML. También discutimos el Get-GpoReport
cmdlet. Este cmdlet ahora puede recuperar la misma información que la GPMC a través de PowerShell. Esto nos permite consultar muchas GPO simultáneamente, lo que seguramente ayudará a construir excelentes informes.
Source:
https://infrasos.com/create-active-directory-policy-reports-with-powershell/