Créez des rapports de stratégie Active Directory avec PowerShell. Avec l’aide du cmdlet Get-GpoReport
, nous pouvons produire des rapports sur les Group Policies (GPO), allant de simples rapports basés sur du texte à des rapports complets en Hypertext Markup Language (HTML). De plus, nous pouvons automatiser ce processus de génération de rapports avec PowerShell. Cela permet de gagner du temps et d’obtenir des informations importantes sur votre système Active Directory (AD). Dans cet article, nous allons voir comment importer le module PowerShell GPO, exporter les GPO et lier les GPO à une Organizational Unit (OU). Ce sera à titre d’exemple, de sorte qu’ils fonctionneront tous ensemble pour produire de superbes rapports.
Commençons par savoir comment créer des rapports de stratégie Active Directory avec PowerShell.
Créer des rapports de stratégie de groupe AD (GPO) avec PowerShell
Prérequis
Dans cet article, nous aborderons quelques situations différentes qui consistent à créer et à modifier des GPO existantes. Assurez-vous d’avoir les éléments suivants en place si vous souhaitez suivre les exemples:
- Le module PowerShell pour la stratégie de groupe. Si vous utilisez Windows 10, vous pouvez le trouver en téléchargeant et en installant RSAT, ou si vous utilisez Windows Server, vous pouvez utiliser la commande PowerShell ci-dessous:
Install-WindowsFeature -Name GPMC
- A computer member of the same AD domain from which we will query GPOs.
- Un ordinateur joint au domaine avec un compte utilisateur de domaine ayant les droits de lecture des GPO.
Générer des rapports HTML avec Get-GpoReport
Tout d’abord, imaginons que nous ayons un seul GPO. Donc, vous souhaitez afficher les paramètres de celui-ci (ainsi que générer un rapport HTML) pour commencer. Heureusement, Get-GpoReport
peut découvrir un GPO sur l’un ou l’autre et utiliser PowerShell pour les exporter. Pour ce faire, nous aurons besoin du nom du GPO ou de l’identifiant unique global (GUID) du GPO.
Par conséquent, vous devrez utiliser au moins trois paramètres pour créer un rapport HTML détaillé :
- Nom ou GUID pour localiser le GPO.
- Le paramètre ReportType pour spécifier le type de rapport à générer. Nous pouvons choisir entre HTML ou XML (Extensible Markup Language).
- Chemin pour spécifier où nous voulons enregistrer le rapport.
Peut-être avons-nous un GPO dans votre environnement. Par exemple, nous pouvons spécifier la valeur HTML
pour un rapport HTML et le chemin où vous souhaitez enregistrer ce fichier HTML si nous connaissons le nom du GPO, comme dans cet exemple.
Get-GPOReport -Name 'Sample GPO' -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'
Alternativement, nous pourrions utiliser le paramètre Guid
pour trouver le GPO, mais cela nécessite une étape supplémentaire, comme dans l’exemple ci-dessous.
$gponame = (Get-GPO -Name 'Sample GPO').Id
Get-GPOReport -Guid $gponame -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'
Nous pouvons afficher le rapport dans votre navigateur préféré une fois préparé.
Génération de rapports HTML pour tous les GPO
En revanche, pour créer un rapport à l’échelle du domaine pour les GPO. Dans cette situation, nous devons utiliser l’argument All
pour interroger chaque GPO du domaine. Cependant, cette fois-ci, au lieu d’utiliser l’option Name
ou Guid
pour désigner une GPO spécifique, nous utilisons le paramètre de commutation All
pour les trouver toutes.
Get-GPOReport -All -ReportType Html -Path "C:\Temp\All-SampleReport.html"
Lorsqu’il est utilisé dans un environnement AD, la cmdlet Get-GPOReport
contacte un contrôleur de domaine (DC) spécifié par le paramètre Server
pour lire les GPO. Ensuite, le DC avec le rôle de l’émulateur de PDC sera utilisé par défaut s’il n’y a aucun serveur disponible.
Ensuite, nous verrons comment créer des rapports sur les stratégies Active Directory avec PowerShell en générant des rapports XML.
Aussi lire Rapports d’utilisateur Office 365
Générer des rapports XML avec Get-GpoReport
Généralement, une fois que nous avons importé le module GPO dans PowerShell, il y a d’autres choses que Get-GPOReport
peut faire. Cela signifie que, en plus d’exporter des GPO et de produire des rapports HTML, nous pouvons également produire des rapports XML. Par exemple, nous devrions modifier la valeur du paramètre ReportType
de HTML
à XML
si nous voulions créer un rapport XML pour une GPO spécifique.
Par exemple, ci-dessous, nous interrogeons une GPO existante, Rapport d'exemple
, pour produire un rapport XML. Ensuite, nous ouvrons ce rapport à l’aide de la commande Invoke-Item
dans l’application par défaut du fichier XML:
Get-GPOReport -Name 'Sample GPO' -ReportType Xml -Path "C:\temp\SampleReport.xml"
Invoke-Item -Path "C:\Temp\SampleReport.xml"
Une fois terminé, nous verrons le fichier XML comme sur la capture d’écran ci-dessous.
Premièrement, nous remarquons que le nœud XML GPO contient tout. À l’intérieur, nous pouvons trouver des choses comme Identifiant
(l’ID GPO), Nom
(Le nom du GPO), Inclure les commentaires, Descripteur de sécurité Descripteur, SDDL
et bien plus d’informations.
Rapport GPO XML
À part le format, qu’est-ce qui distingue ce rapport XML de celui en HTML? Fondamentalement, les attributs vus dans le rapport HTML sont également présents dans le rapport XML. Mais ils sont plus structurés et plus faciles à analyser.
- VersionDirectory – Version du GPO stockée dans la base de données AD.
- VersionSysvol – Version du GPO stocké dans SYSVOL.
- Activé – Si désactivé, le moteur de traitement du GPO sur l’ordinateur client n’appliquera pas les paramètres correspondant à cette partie de la stratégie.
De manière cruciale, la version de la stratégie (ordinateur ou utilisateur) augmente lorsque nous modifions un GPO. Par conséquent, le moteur de traitement des Group Policy peut alors déterminer quand appliquer de nouveaux paramètres et quand une stratégie a changé. De plus, ce comportement nous permettra de lancer gpupdate.exe après avoir modifié un GPO sans utiliser l’interrupteur /force combiné.
Lire aussi Gestion Active Directory
Vérifiez les rapports de stratégie de groupe Active Directory à l’aide d’InfraSOS
Essayez-nous gratuitement, accès à toutes les fonctionnalités. – 200+ modèles de rapports AD disponibles. Personnalisez facilement vos propres rapports AD.
GMPC
Nous pouvons voir la version du GPO (pour AD et SYSVOL) et son état dans le GPMC.
De plus, l’ordinateur du client traitera toujours une stratégie même lorsque VersionDirectory
et VersionSysvol
ont une valeur de 0
, mais que Enabled
est true
. Le système informera le moteur de traitement que nous n’avons pas besoin de mettre en œuvre la partie pertinente de la GPO. La modification de la configuration n’affectera pas beaucoup les performances d’un ordinateur rapide sur un réseau relativement court. Même ainsi, cela peut encore sauver beaucoup de précieuses secondes de GPO, surtout pour les anciennes machines sur les réseaux plus lents.
Par conséquent, le moteur de traitement sur la machine cliente n’appliquera pas une politique avec VersionDirectory
et VersionSysvol
supérieurs à 0
mais Enabled
est défini sur false
. Nous pouvons nous demander pourquoi certaines paramètres ne s’appliquent pas. Il est donc essentiel d’enquêter pour déterminer s’il s’agit d’un accident ou d’un choix délibéré.
Supposons que nous connaissions le fonctionnement interne de la GPO. Dans ce cas, nous pouvons utiliser la commande Get-GPOReport
. Ainsi, cela permet de vérifier directement ces paramètres en référençant une propriété plutôt que de naviguer vers le GPMC.
Alternativement, nous pouvons vouloir nous concentrer sur quelques paramètres dans une GPO. Ou éventuellement nous voulons attacher une GPO à une OU en utilisant PowerShell, de sorte que nous n’ayons pas besoin de créer un rapport.
- Supprimez le paramètre
Path
dans cette situation. Notez la conversion en[xml]
et l’absence d’un paramètrePath
dans l’exemple ci-dessous.
[xml]$GpoXml = Get-GPOReport -Name 'Sample GPO' -ReportType Xml
2. Maintenant que nous avons converti la sortie de Get-GPOReport
en un objet XML, nous pouvons rapidement faire référence à ses nombreuses propriétés en utilisant une brève notation par point.
$GpoXml.GPO.Computer
$GpoXml.GPO.User
3. Ajoutez une boucle foreach
et utilisez l’argument All
pour parcourir chaque sortie 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
Lire aussi Outil de reporting Active Directory
Parcours des rapports XML GPO
Nous pouvons en apprendre davantage sur de nombreux aspects de vos GPO en utilisant la sortie XML produite par Get-GPOReport
. Dans l’exemple précédent, si nous examinons les propriétés $GPOXML.GPO.Computer
et $GPOXML.GPO.User
du modèle précédent, nous verrons une propriété ExtensionData
comme indiqué ci-dessous.
Comme indiqué ci-dessous, nous pouvons commencer à créer vos rapports basés sur les données XML en accédant à ces nœuds XML dans PowerShell.
$PolicyDetails = foreach ($policy in $GpoXml.GPO.User.ExtensionData.Extension.Policy) {
[PSCustomObject]@{
"Name" = $policy.Name
"State" = $policy.State
}
}
$PolicyDetails
Merci d’avoir lu notre blog sur la création de rapports de stratégie Active Directory avec PowerShell. Concluons.
Créer des rapports de stratégie de groupe Active Directory avec PowerShell Conclusion
Outre la console de gestion native des stratégies de groupe (GPMC), cet article a discuté des moyens de générer des rapports complets sur les stratégies de groupe en les exportant au format HTML et XML. Nous avons également abordé la cmdlet Get-GpoReport
. Ce cmdlet peut désormais récupérer les mêmes informations que la GPMC via PowerShell. Cela nous permet d’interroger simultanément de nombreuses GPO, ce qui nous aidera certainement à créer d’excellents rapports.
Source:
https://infrasos.com/create-active-directory-policy-reports-with-powershell/