Files
GPOZaurr/Private/ConvertTo-RegistrySettingsCollection.ps1
T
2020-06-28 18:42:06 +02:00

47 lines
2.4 KiB
PowerShell

function ConvertTo-RegistrySettingsCollection {
[cmdletBinding()]
param(
[Array] $GPOList
)
foreach ($GPOEntry in $GPOList) {
foreach ($Collection in $GPOEntry.Collection) {
$OutputDictionaries = foreach ($Registry in $Collection.Registry) {
[ordered] @{
#"$($Registry.Name)FieldName" = $Registry.Name
#"$($Registry.Name)FieldStatus" = $Registry.Status
"$($Registry.Name)BypassErrors" = try { [bool]::Parse($Registry.BypassErrors) } catch { $null };
"$($Registry.Name)Changed" = [DateTime] $Registry.Changed
"$($Registry.Name)UID" = $Registry.UID
"$($Registry.Name)GPOSettingOrder" = $Registry.GPOSettingOrder
"$($Registry.Name)Action" = $Registry.Properties.action
"$($Registry.Name)DisplayDecimal" = $Registry.Properties.displayDecimal
"$($Registry.Name)Default" = $Registry.Properties.default
"$($Registry.Name)Hive" = $Registry.Properties.hive
"$($Registry.Name)Name" = $Registry.Properties.name
"$($Registry.Name)Type" = $Registry.Properties.type
"$($Registry.Name)Value" = $Registry.Properties.value
"$($Registry.Name)Values" = $Registry.Properties.Values
}
}
$CreateGPO = [ordered]@{
DisplayName = $GPOEntry.DisplayName #: WO_SEC_NTLM_Auth_Level
DomainName = $GPOEntry.DomainName #: area1.local
GUID = $GPOEntry.GUID #: 364B095E-C7BF-4CC1-9BFA-393BD38975E5
GpoType = $GPOEntry.GpoType #: Computer
GpoCategory = $GPOEntry.GpoCategory #: SecuritySettings
GpoSettings = $GPOEntry.GpoSettings #: SecurityOptions
}
foreach ($Dictionary in $OutputDictionaries) {
$CreateGPO = $CreateGPO + $Dictionary
}
$CreateGPO['Linked'] = $GPOEntry.Linked #: True
$CreateGPO['LinksCount'] = $GPOEntry.LinksCount #: 1
$CreateGPO['Links'] = $GPOEntry.Links #: area1.local
[PSCustomObject] $CreateGPO
}
}
}