diff --git a/Private/ConvertTo-XMLDriveMapSettings.ps1 b/Private/ConvertTo-XMLDriveMapSettings.ps1 new file mode 100644 index 0000000..40aee19 --- /dev/null +++ b/Private/ConvertTo-XMLDriveMapSettings.ps1 @@ -0,0 +1,75 @@ +function ConvertTo-XMLDriveMapSettings { + [cmdletBinding()] + param( + [PSCustomObject] $GPO, + [switch] $SingleObject + ) + if ($SingleObject) { + $CreateGPO = [ordered]@{ + DisplayName = $GPO.DisplayName + DomainName = $GPO.DomainName + GUID = $GPO.GUID + GpoType = $GPO.GpoType + #GpoCategory = $GPOEntry.GpoCategory + #GpoSettings = $GPOEntry.GpoSettings + Count = 0 + Settings = $null + } + [Array] $CreateGPO['Settings'] = foreach ($Entry in $GPO.DataSet.Drive) { + [PSCustomObject] @{ + Changed = [DateTime] $Entry.changed + #uid = $Entry.uid + GPOSettingOrder = $Entry.GPOSettingOrder + Filter = $Entry.Filter + + Name = $Entry.Name + Status = $Entry.status + Action = $Entry.Properties.action + ThisDrive = $Entry.Properties.thisDrive + AllDrives = $Entry.Properties.allDrives + UserName = $Entry.Properties.userName + Path = $Entry.Properties.path + Label = $Entry.Properties.label + Persistent = if ($Entry.Properties.persistent -eq '1') { $true } elseif ($Entry.Properties.persistent -eq '0') { $false } else { $Entry.Properties.persistent }; + UseLetter = if ($Entry.Properties.useLetter -eq '1') { $true } elseif ($Entry.Properties.useLetter -eq '0') { $false } else { $Entry.Properties.useLetter }; + Letter = $Entry.Properties.letter + } + } + $CreateGPO['Count'] = $CreateGPO['Settings'].Count + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } else { + foreach ($Entry in $GPO.DataSet.Drive) { + $CreateGPO = [ordered]@{ + DisplayName = $GPO.DisplayName + DomainName = $GPO.DomainName + GUID = $GPO.GUID + GpoType = $GPO.GpoType + #GpoCategory = $GPOEntry.GpoCategory + #GpoSettings = $GPOEntry.GpoSettings + Changed = [DateTime] $Entry.changed + #uid = $Entry.uid + GPOSettingOrder = $Entry.GPOSettingOrder + Filter = $Entry.Filter + + Name = $Entry.Name + Status = $Entry.status + Action = $Entry.Properties.action + ThisDrive = $Entry.Properties.thisDrive + AllDrives = $Entry.Properties.allDrives + UserName = $Entry.Properties.userName + Path = $Entry.Properties.path + Label = $Entry.Properties.label + Persistent = if ($Entry.Properties.persistent -eq '1') { $true } elseif ($Entry.Properties.persistent -eq '0') { $false } else { $Entry.Properties.persistent }; + UseLetter = if ($Entry.Properties.useLetter -eq '1') { $true } elseif ($Entry.Properties.useLetter -eq '0') { $false } else { $Entry.Properties.useLetter }; + Letter = $Entry.Properties.letter + } + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } + } +} \ No newline at end of file diff --git a/Private/Script.GPODictionary.ps1 b/Private/Script.GPODictionary.ps1 index fb71e3c..aa53959 100644 --- a/Private/Script.GPODictionary.ps1 +++ b/Private/Script.GPODictionary.ps1 @@ -31,6 +31,17 @@ ConvertTo-XMLRegistryAutologon -GPO $GPO } } + DriveMapping = [ordered] @{ + Category = 'DriveMapSettings' + Settings = 'DriveMapSettings' + GPOPath = '' + Code = { + ConvertTo-XMLDriveMapSettings -GPO $GPO + } + CodeSingle = { + ConvertTo-XMLDriveMapSettings -GPO $GPO -SingleObject + } + } EventLog = [ordered] @{ Category = 'SecuritySettings' Settings = 'EventLog'