diff --git a/GPOZaurr.psd1 b/GPOZaurr.psd1 index 30ff47a..3aea644 100644 --- a/GPOZaurr.psd1 +++ b/GPOZaurr.psd1 @@ -3,7 +3,7 @@ # # Generated by: Przemyslaw Klys # -# Generated on: 19.02.2020 +# Generated on: 24.02.2020 # @{ @@ -12,7 +12,7 @@ RootModule = 'GPOZaurr.psm1' # Version number of this module. - ModuleVersion = '0.0.3' + ModuleVersion = '0.0.4' # Supported PSEditions CompatiblePSEditions = 'Desktop' diff --git a/Private/Get-XMLGPO.ps1 b/Private/Get-XMLGPO.ps1 index 72195a7..4a2ca66 100644 --- a/Private/Get-XMLGPO.ps1 +++ b/Private/Get-XMLGPO.ps1 @@ -3,30 +3,57 @@ param( [XML] $XMLContent ) + if ($XMLContent.GPO.LinksTo) { + $Linked = $true + $LinksCount = ([Array] $XMLContent.GPO.LinksTo).Count + } else { + $Linked = $false + $LinksCount = 0 + } + + # Find proper values for enabled/disabled user/computer settings + if ($XMLContent.GPO.Computer.Enabled -eq 'False') { + $ComputerEnabled = $false + } elseif ($XMLContent.GPO.Computer.Enabled -eq 'True') { + $ComputerEnabled = $true + } + if ($XMLContent.GPO.User.Enabled -eq 'False') { + $UserEnabled = $false + } elseif ($XMLContent.GPO.User.Enabled -eq 'True') { + $UserEnabled = $true + } + # Translate Enabled to same as GPO GUI + if ($UserEnabled -eq $True -and $ComputerEnabled -eq $true) { + $Enabled = 'Enabled' + } elseif ($UserEnabled -eq $false -and $ComputerEnabled -eq $false) { + $Enabled = 'All settings disabled' + }elseif ($UserEnabled -eq $true -and $ComputerEnabled -eq $false) { + $Enabled = 'Computer configuration settings disabled' + }elseif ($UserEnabled -eq $false -and $ComputerEnabled -eq $true) { + $Enabled = 'User configuration settings disabled' + } + [PsCustomObject] @{ 'Name' = $XMLContent.GPO.Name - 'Links' = $XMLContent.GPO.LinksTo #| Select-Object -ExpandProperty SOMPath - 'Enabled' = $XMLContent.GPO.GpoStatus - 'GUID' = $XMLContent.GPO.Identifier.Identifier.InnerText - 'Domain' = $XMLContent.GPO.Identifier.Domain.'#text' - + 'GUID' = $XMLContent.GPO.Identifier.Identifier.InnerText + 'Linked' = $Linked + 'LinksCount' = $LinksCount + 'Enabled' = $Enabled + 'ComputerEnabled' = $ComputerEnabled + 'UserEnabled' = $UserEnabled 'ComputerSettingsAvailable' = if ($null -eq $XMLContent.GPO.Computer.ExtensionData) { $false } else { $true } + 'UserSettingsAvailable' = if ($null -eq $XMLContent.GPO.User.ExtensionData) { $false } else { $true } 'ComputerSettingsStatus' = if ($XMLContent.GPO.Computer.VersionDirectory -eq 0 -and $XMLContent.GPO.Computer.VersionSysvol -eq 0) { "NeverModified" } else { "Modified" } - 'ComputerEnabled' = [bool] $XMLContent.GPO.Computer.Enabled 'ComputerSetttingsVersionIdentical' = if ($XMLContent.GPO.Computer.VersionDirectory -eq $XMLContent.GPO.Computer.VersionSysvol) { $true } else { $false } 'ComputerSettings' = $XMLContent.GPO.Computer.ExtensionData.Extension - - 'UserSettingsAvailable' = if ($null -eq $XMLContent.GPO.User.ExtensionData) { $false } else { $true } - 'UserEnabled' = [bool] $XMLContent.GPO.User.Enabled 'UserSettingsStatus' = if ($XMLContent.GPO.User.VersionDirectory -eq 0 -and $XMLContent.GPO.User.VersionSysvol -eq 0) { "NeverModified" } else { "Modified" } 'UserSettingsVersionIdentical' = if ($XMLContent.GPO.User.VersionDirectory -eq $XMLContent.GPO.User.VersionSysvol) { $true } else { $false } 'UserSettings' = $XMLContent.GPO.User.ExtensionData.Extension - - # 'CreationTime' = [DateTime] $XMLContent.GPO.CreatedTime - # 'ModificationTime' = [DateTime] $XMLContent.GPO.ModifiedTime - # 'ReadTime' = [DateTime] $XMLContent.GPO.ReadTime + 'CreationTime' = [DateTime] $XMLContent.GPO.CreatedTime + 'ModificationTime' = [DateTime] $XMLContent.GPO.ModifiedTime + 'ReadTime' = [DateTime] $XMLContent.GPO.ReadTime 'WMIFilter' = $GPO.WmiFilter.name 'WMIFilterDescription' = $GPO.WmiFilter.Description @@ -40,6 +67,7 @@ 'Permissions' = $_.Standard.GPOGroupedAccessEnum } } + 'Links' = $XMLContent.GPO.LinksTo #| Select-Object -ExpandProperty SOMPath } #break diff --git a/Public/Get-GPOZaurrPassword.ps1 b/Public/Get-GPOZaurrPassword.ps1 index d8c8528..46fbde3 100644 --- a/Public/Get-GPOZaurrPassword.ps1 +++ b/Public/Get-GPOZaurrPassword.ps1 @@ -41,7 +41,7 @@ '3' { $Cpassword += ('=' * (4 - $Mod)) } } $Base64Decoded = [Convert]::FromBase64String($Cpassword) - $AesObject = New-Object System.Security.Cryptography.AesCryptoServiceProvider + $AesObject = [System.Security.Cryptography.AesCryptoServiceProvider]::new() #Use th AES Key [Byte[]] $AesKey = @(0x4e, 0x99, 0x06, 0xe8, 0xfc, 0xb6, 0x6c, 0xc9, 0xfa, 0xf4, 0x93, 0x10, 0x62, 0x0f, 0xfe, 0xe8, 0xf4, 0x96, 0xe8, 0x06, 0xcc, 0x05, 0x79, 0x90, 0x20, 0x9b, 0x09, 0xa4, 0x33, 0xb6, 0x6c, 0x1b) $AesIV = New-Object Byte[]($AesObject.IV.Length)