Dans certains cas, il est nécessaire de pouvoir connaitre les clefs de registres modifiés par une GPO.
A l’aide de Powershell et des fonctions “Get-GPRegistry” et “Get-GPRegistryvalue”, il est possible de convertir une GPO fichier regedit.
Le script Powershell ci-dessous permet de récupérer chaque clef de registre configuré par une GPO à partir des modèles d’administration.
Celui-ci retourne la liste de chaque clefs ainsi que ça valeur configurée.
Function Get-GPORegeditKeys{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)][string]$GPOName,
[Parameter(Mandatory=$true)][string]$RegeditRootKey
)
$Result=@()
$LstGPORegeditValue=Get-GPRegistryValue -Name $GPOName -Key $RegeditRootKey
Foreach($GPORegeditValue in $LstGPORegeditValue){
If($GPORegeditValue.ValueName -ne $null){
$objGPORegedit = New-Object System.Object
$objGPORegedit | Add-Member -MemberType NoteProperty -Name ‘FullKeyPath’ -Value $GPORegeditValue.FullKeyPath
$objGPORegedit | Add-Member -MemberType NoteProperty -Name ‘Type’ -Value $GPORegeditValue.Type
$objGPORegedit | Add-Member -MemberType NoteProperty -Name ‘Action’ -Value $GPORegeditValue.PolicyState
$objGPORegedit | Add-Member -MemberType NoteProperty -Name ‘ValueName’ -Value $GPORegeditValue.ValueName
$objGPORegedit | Add-Member -MemberType NoteProperty -Name ‘Value’ -Value $GPORegeditValue.Value
$Result+=$objGPORegedit
}else{
Get-GPORegeditKeys -GPOName $GPOName -RegeditRootKey $GPORegeditValue.FullKeyPath
}
}
$Result
}
Get-GPORegeditKeys -GPOName ‘GPO_Test’ -RegeditRootKey ‘HKEY_LOCAL_MACHINE\SOFTWARE’ | FT
Ci-dessous le résultat du script :
Retourne les valeurs configurées uniquement dans à partir des modèles d’administration. Ne prends pas en compte la partir GPP…