diff --git a/Private/ConvertTo-Policies.ps1 b/Private/ConvertTo-Policies.ps1 index b9a3413..dbdfcf1 100644 --- a/Private/ConvertTo-Policies.ps1 +++ b/Private/ConvertTo-Policies.ps1 @@ -27,4 +27,66 @@ [PSCustomObject] $CreateGPO } +} + +function ConvertTo-XMLPolicies { + [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 ($Policy in $GPO.DataSet) { + [PSCustomObject] @{ + PolicyName = $Policy.Name + PolicyState = $Policy.State + PolicyCategory = $Policy.Category + PolicySupported = $Policy.Supported + PolicyExplain = $Policy.Explain + PolicyText = $Policy.Text + PolicyCheckBox = $Policy.CheckBox + PolicyDropDownList = $Policy.DropDownList + PolicyEditText = $Policy.EditText + } + } + $CreateGPO['Count'] = $CreateGPO['Settings'].Count + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } else { + foreach ($Policy in $GPO.DataSet) { + $CreateGPO = [ordered]@{ + DisplayName = $GPO.DisplayName + DomainName = $GPO.DomainName + GUID = $GPO.GUID + GpoType = $GPO.GpoType + #GpoCategory = $GPOEntry.GpoCategory + #GpoSettings = $GPOEntry.GpoSettings + PolicyName = $Policy.Name + PolicyState = $Policy.State + PolicyCategory = $Policy.Category + PolicySupported = $Policy.Supported + PolicyExplain = $Policy.Explain + PolicyText = $Policy.Text + PolicyCheckBox = $Policy.CheckBox + PolicyDropDownList = $Policy.DropDownList + PolicyEditText = $Policy.EditText + } + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } + } } \ No newline at end of file diff --git a/Private/ConvertTo-RegistrySettings.ps1 b/Private/ConvertTo-RegistrySettings.ps1 index 791a909..8a50a83 100644 --- a/Private/ConvertTo-RegistrySettings.ps1 +++ b/Private/ConvertTo-RegistrySettings.ps1 @@ -27,4 +27,193 @@ [PSCustomObject] $CreateGPO } } +} + + +function ConvertTo-XMLRegistrySettings { + [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'] = Get-XMLNestedRegistry -GPO $GPO -DataSet $GPO.DataSet + <# + [Array] $CreateGPO['Settings'] = foreach ($Registry in $GPO.DataSet.Registry) { + [PSCustomObject] @{ + Changed = [DateTime] $Registry.changed + GPOSettingOrder = $Registry.GPOSettingOrder + Hive = $Registry.Properties.hive #: HKEY_LOCAL_MACHINE + Key = $Registry.Properties.key #: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon + Name = $Registry.Properties.name #: AutoAdminLogon + Type = $Registry.Properties.type #: REG_SZ + Value = $Registry.Properties.value # + Filters = $Registry.Filters + } + } + #> + $CreateGPO['Count'] = $CreateGPO['Settings'].Count + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } else { + <# + if ($GPO.DataSet.Registry) { + Get-XMLNestedRegistry -GPO $GPO -RegistryCollection $GPO.DataSet.Registry + } + if ($GPO.DataSet.Collection) { + Get-XMLNestedRegistry -GPO $GPO -RegistryCollection $GPO.DataSet.Collection + } + #> + Get-XMLNestedRegistry -GPO $GPO -DataSet $GPO.DataSet + + <# + foreach ($Registry in $GPO.DataSet.Registry) { + $CreateGPO = [ordered]@{ + DisplayName = $GPO.DisplayName + DomainName = $GPO.DomainName + GUID = $GPO.GUID + GpoType = $GPO.GpoType + #GpoCategory = $GPOEntry.GpoCategory + #GpoSettings = $GPOEntry.GpoSettings + Changed = [DateTime] $Registry.changed + GPOSettingOrder = $Registry.GPOSettingOrder + Hive = $Registry.Properties.hive #: HKEY_LOCAL_MACHINE + Key = $Registry.Properties.key #: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon + Name = $Registry.Properties.name #: AutoAdminLogon + Type = $Registry.Properties.type #: REG_SZ + Value = $Registry.Properties.value # + Filters = $Registry.Filters + } + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } + #> + } +} + +function Get-XMLNestedRegistry { + [cmdletBinding()] + param( + [PSCustomObject] $GPO, + [System.Xml.XmlElement[]] $DataSet, + [string] $Collection, + [switch] $Limited + ) + if ($DataSet.Properties) { + $Registry = $DataSet + foreach ($Registry in $DataSet) { + if ($Limited) { + [PSCustomObject] @{ + Collection = $Collection + Changed = [DateTime] $Registry.changed + GPOSettingOrder = $Registry.GPOSettingOrder + Hive = $Registry.Properties.hive #: HKEY_LOCAL_MACHINE + Key = $Registry.Properties.key #: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon + Name = $Registry.Properties.name #: AutoAdminLogon + Type = $Registry.Properties.type #: REG_SZ + Value = $Registry.Properties.value # + Filters = $Registry.Filters + } + } else { + $CreateGPO = [ordered]@{ + DisplayName = $GPO.DisplayName + DomainName = $GPO.DomainName + GUID = $GPO.GUID + GpoType = $GPO.GpoType + #GpoCategory = $GPOEntry.GpoCategory + #GpoSettings = $GPOEntry.GpoSettings + Collection = $Collection + Changed = [DateTime] $Registry.changed + GPOSettingOrder = $Registry.GPOSettingOrder + Hive = $Registry.Properties.hive #: HKEY_LOCAL_MACHINE + Key = $Registry.Properties.key #: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon + Name = $Registry.Properties.name #: AutoAdminLogon + Type = $Registry.Properties.type #: REG_SZ + Value = $Registry.Properties.value # + Filters = $Registry.Filters + } + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } + } + } + foreach ($Name in @('Registry', 'Collection')) { + foreach ($Registry in $DataSet.$Name) { + if ($Registry.Properties) { + if ($Limited) { + [PSCustomObject] @{ + Collection = $Collection + Changed = [DateTime] $Registry.changed + GPOSettingOrder = $Registry.GPOSettingOrder + Hive = $Registry.Properties.hive #: HKEY_LOCAL_MACHINE + Key = $Registry.Properties.key #: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon + Name = $Registry.Properties.name #: AutoAdminLogon + Type = $Registry.Properties.type #: REG_SZ + Value = $Registry.Properties.value # + Filters = $Registry.Filters + } + } else { + $CreateGPO = [ordered]@{ + DisplayName = $GPO.DisplayName + DomainName = $GPO.DomainName + GUID = $GPO.GUID + GpoType = $GPO.GpoType + #GpoCategory = $GPOEntry.GpoCategory + #GpoSettings = $GPOEntry.GpoSettings + Collection = $Collection + Changed = [DateTime] $Registry.changed + GPOSettingOrder = $Registry.GPOSettingOrder + Hive = $Registry.Properties.hive #: HKEY_LOCAL_MACHINE + Key = $Registry.Properties.key #: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon + Name = $Registry.Properties.name #: AutoAdminLogon + Type = $Registry.Properties.type #: REG_SZ + Value = $Registry.Properties.value # + Filters = $Registry.Filters + } + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } + } else { + if ($Registry.Registry) { + #$Collection = $Registry.name + $TempCollection = $Collection + if ($Collection) { + $Collection = "$Collection\$($Registry.name)" + } else { + $Collection = $Registry.name + } + Get-XMLNestedRegistry -GPO $GPO -DataSet $Registry.Registry -Collection $Collection + $Collection = $TempCollection + } + if ($Registry.Collection) { + if ($Collection) { + $Collection = "$Collection\$($Registry.Collection.name)" + } else { + $Collection = "$($Registry.name)\$($Registry.Collection.name)" + } + Get-XMLNestedRegistry -GPO $GPO -DataSet $Registry.Collection -Collection $Collection + } + } + } + + } } \ No newline at end of file diff --git a/Private/ConvertTo-RegistrySettingsCollection.ps1 b/Private/ConvertTo-RegistrySettingsCollection.ps1 index e470346..665fa58 100644 --- a/Private/ConvertTo-RegistrySettingsCollection.ps1 +++ b/Private/ConvertTo-RegistrySettingsCollection.ps1 @@ -40,7 +40,4 @@ [PSCustomObject] $CreateGPO } } -} - - - +} \ No newline at end of file diff --git a/Private/ConvertTo-Scripts.ps1 b/Private/ConvertTo-Scripts.ps1 index 2eaa6da..37ec690 100644 --- a/Private/ConvertTo-Scripts.ps1 +++ b/Private/ConvertTo-Scripts.ps1 @@ -40,9 +40,9 @@ function ConvertTo-XMLScripts { #GpoCategory = $GPOEntry.GpoCategory #GpoSettings = $GPOEntry.GpoSettings Count = 0 - Data = $null + Settings = $null } - [Array] $CreateGPO['Data'] = foreach ($Script in $GPO.DataSet) { + [Array] $CreateGPO['Settings'] = foreach ($Script in $GPO.DataSet) { [PSCustomObject] @{ Type = $GPO.DataSet.Type Command = $GPO.DataSet.Command @@ -51,7 +51,7 @@ function ConvertTo-XMLScripts { RunOrder = $GPO.DataSet.RunOrder } } - $CreateGPO['DataCount'] = $CreateGPO['Data'].Count + $CreateGPO['DataCount'] = $CreateGPO['Settings'].Count $CreateGPO['Linked'] = $GPO.Linked $CreateGPO['LinksCount'] = $GPO.LinksCount $CreateGPO['Links'] = $GPO.Links diff --git a/Private/ConvertTo-SecurityOptions.ps1 b/Private/ConvertTo-SecurityOptions.ps1 index e7c4e68..b7047f7 100644 --- a/Private/ConvertTo-SecurityOptions.ps1 +++ b/Private/ConvertTo-SecurityOptions.ps1 @@ -25,4 +25,70 @@ $CreateGPO['Links'] = $GPOEntry.Links #: area1.local [PSCustomObject] $CreateGPO } +} + +function ConvertTo-XMLSecurityOptions { + [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) { + $Object = [ordered] @{} + $Object['KeyName'] = $Entry.KeyName + $Object['KeyDisplayName'] = $Entry.Display.Name + $Object['KeyDisplayUnits'] = $Entry.Display.Units + $Object['KeyDisplayBoolean'] = try { [bool]::Parse($Entry.Display.DisplayBoolean) } catch { $null }; + $Object['KeyDisplayString'] = $Entry.Display.DisplayString + $Object['SystemAccessPolicyName'] = $Entry.SystemAccessPolicyName + if ($Entry.SettingString) { + $Object['KeyValue'] = $Entry.SettingString + } else { + $Object['KeyValue'] = $Entry.SettingNumber + } + [PSCustomObject] $Object + } + $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) { + $CreateGPO = [ordered]@{ + DisplayName = $GPO.DisplayName + DomainName = $GPO.DomainName + GUID = $GPO.GUID + GpoType = $GPO.GpoType + #GpoCategory = $GPOEntry.GpoCategory + #GpoSettings = $GPOEntry.GpoSettings + } + $CreateGPO['KeyName'] = $Entry.KeyName + $CreateGPO['KeyDisplayName'] = $Entry.Display.Name + $CreateGPO['KeyDisplayUnits'] = $Entry.Display.Units + $CreateGPO['KeyDisplayBoolean'] = try { [bool]::Parse($Entry.Display.DisplayBoolean) } catch { $null }; + $CreateGPO['KeyDisplayString'] = $Entry.Display.DisplayString + $CreateGPO['SystemAccessPolicyName'] = $Entry.SystemAccessPolicyName + if ($Entry.SettingString) { + $CreateGPO['KeyValue'] = $Entry.SettingString + } else { + $CreateGPO['KeyValue'] = $Entry.SettingNumber + } + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } + } } \ No newline at end of file diff --git a/Private/ConvertTo-SoftwareInstallation.ps1 b/Private/ConvertTo-SoftwareInstallation.ps1 index 283f6b2..6d1f8da 100644 --- a/Private/ConvertTo-SoftwareInstallation.ps1 +++ b/Private/ConvertTo-SoftwareInstallation.ps1 @@ -56,9 +56,9 @@ function ConvertTo-XMLSoftwareInstallation { #GpoCategory = $GPOEntry.GpoCategory #GpoSettings = $GPOEntry.GpoSettings Count = 0 - Data = $null + Settings = $null } - [Array] $CreateGPO['Data'] = foreach ($MsiInstallerr in $GPO.DataSet) { + [Array] $CreateGPO['Settings'] = foreach ($MsiInstallerr in $GPO.DataSet) { [PSCustomObject] @{ Identifier = $MsiInstallerr.Identifier #: { 10495e9e-79c1-4a32-b278-a24cd495437f } Name = $MsiInstallerr.Name #: Local Administrator Password Solution (2) @@ -84,7 +84,7 @@ function ConvertTo-XMLSoftwareInstallation { LossOfScopeAction = $MsiInstallerr.LossOfScopeAction #: Unmanage } } - $CreateGPO['Count'] = $CreateGPO['Data'].Count + $CreateGPO['Count'] = $CreateGPO['Settings'].Count $CreateGPO['Linked'] = $GPO.Linked $CreateGPO['LinksCount'] = $GPO.LinksCount $CreateGPO['Links'] = $GPO.Links diff --git a/Private/ConvertTo-SystemServices.ps1 b/Private/ConvertTo-SystemServices.ps1 index f295bd9..23720fe 100644 --- a/Private/ConvertTo-SystemServices.ps1 +++ b/Private/ConvertTo-SystemServices.ps1 @@ -22,4 +22,58 @@ $CreateGPO['Links'] = $GPOEntry.Links #: area1.local [PSCustomObject] $CreateGPO } +} + +function ConvertTo-XMLSystemServices { + [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 ($GPOEntry in $GPO.DataSet) { + [PSCustomObject] @{ + ServiceName = $GPOEntry.Name + ServiceStartUpMode = $GPOEntry.StartUpMode + SecurityAuditingPresent = try { [bool]::Parse($GPOEntry.SecurityDescriptor.AuditingPresent.'#text') } catch { $null }; + SecurityPermissionsPresent = try { [bool]::Parse($GPOEntry.SecurityDescriptor.PermissionsPresent.'#text') } catch { $null }; + SecurityDescriptor = $GPOEntry.SecurityDescriptor + } + } + $CreateGPO['Count'] = $CreateGPO['Settings'].Count + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } else { + foreach ($GPOEntry in $GPO.DataSet) { + $CreateGPO = [ordered]@{ + DisplayName = $GPO.DisplayName + DomainName = $GPO.DomainName + GUID = $GPO.GUID + GpoType = $GPO.GpoType + #GpoCategory = $GPOEntry.GpoCategory + #GpoSettings = $GPOEntry.GpoSettings + ServiceName = $GPOEntry.Name + ServiceStartUpMode = $GPOEntry.StartUpMode + SecurityAuditingPresent = try { [bool]::Parse($GPOEntry.SecurityDescriptor.AuditingPresent.'#text') } catch { $null }; + SecurityPermissionsPresent = try { [bool]::Parse($GPOEntry.SecurityDescriptor.PermissionsPresent.'#text') } catch { $null }; + SecurityDescriptor = $GPOEntry.SecurityDescriptor + } + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } + } } \ No newline at end of file diff --git a/Private/ConvertTo-SystemServicesNT.ps1 b/Private/ConvertTo-SystemServicesNT.ps1 index 16f453c..fce1cd4 100644 --- a/Private/ConvertTo-SystemServicesNT.ps1 +++ b/Private/ConvertTo-SystemServicesNT.ps1 @@ -33,4 +33,111 @@ [PSCustomObject] $CreateGPO } } +} + +function ConvertTo-XMLSystemServicesNT { + [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 ($Service in $GPO.DataSet.NTService) { + [PSCustomObject] @{ + GPOSettingOrder = $Service.GPOSettingOrder + #ServiceName = $Service.Name + ServiceName = $Service.Properties.serviceName #: AppIDSvc: AppIDSvc + ServiceStartupType = $Service.Properties.startupType #: NOCHANGE: NOCHANGE + ServiceAction = $Service.Properties.serviceAction #: START: START + Timeout = $Service.Properties.timeout #: 50: 50 + FirstFailure = $Service.Properties.firstFailure #: REBOOT: REBOOT + SecondFailure = $Service.Properties.secondFailure #: REBOOT: REBOOT + ThirdFailure = $Service.Properties.thirdFailure #: REBOOT: REBOOT + ResetFailCountDelay = $Service.Properties.resetFailCountDelay #: 0: 0 + RestartComputerDelay = $Service.Properties.restartComputerDelay #: 60000: 60000 + Filter = $Service.Filter + AccountName = $Service.Properties.accountName + AllowServiceToInteractWithTheDesktop = if ($Service.Properties.interact -eq 1) { 'Yes' } elseif ($Service.Properties.interact -eq 0) { 'No' } else { $null } + RunThisProgram = $Service.Properties.program + CommandLineParameters = $Service.Properties.args + AppendFailCountToEndOfCommandLine = if ($Service.Properties.append -eq 1) { 'Yes' } elseif ($Service.Properties.append -eq 0) { 'No' } else { $null } + } + } + $CreateGPO['Count'] = $CreateGPO['Settings'].Count + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } else { + foreach ($Service in $GPO.DataSet.NTService) { + $CreateGPO = [ordered]@{ + DisplayName = $GPO.DisplayName + DomainName = $GPO.DomainName + GUID = $GPO.GUID + GpoType = $GPO.GpoType + #GpoCategory = $GPOEntry.GpoCategory + #GpoSettings = $GPOEntry.GpoSettings + GPOSettingOrder = $Service.GPOSettingOrder + #ServiceName = $Service.Name + ServiceName = $Service.Properties.serviceName #: AppIDSvc: AppIDSvc + ServiceStartupType = $Service.Properties.startupType #: NOCHANGE: NOCHANGE + ServiceAction = $Service.Properties.serviceAction #: START: START + Timeout = $Service.Properties.timeout #: 50: 50 + FirstFailure = $Service.Properties.firstFailure #: REBOOT: REBOOT + SecondFailure = $Service.Properties.secondFailure #: REBOOT: REBOOT + ThirdFailure = $Service.Properties.thirdFailure #: REBOOT: REBOOT + ResetFailCountDelay = $Service.Properties.resetFailCountDelay #: 0: 0 + RestartComputerDelay = $Service.Properties.restartComputerDelay #: 60000: 60000 + Filter = $Service.Filter + AccountName = $Service.Properties.accountName + AllowServiceToInteractWithTheDesktop = if ($Service.Properties.interact -eq 1) { 'Yes' } elseif ($Service.Properties.interact -eq 0) { 'No' } else { $null } + RunThisProgram = $Service.Properties.program + CommandLineParameters = $Service.Properties.args + AppendFailCountToEndOfCommandLine = if ($Service.Properties.append -eq 1) { 'Yes' } elseif ($Service.Properties.append -eq 0) { 'No' } else { $null } + <#$ + + startupType : NOCHANGE + serviceName : AudioEndpointBuilder + timeout : 30 + accountName : LocalSystem + interact : 1 + thirdFailure : RUNCMD + resetFailCountDelay : 0 + program : fgdfg + args : dg + append : 1 + + Service name AudioEndpointBuilder + Action No change + Startup type: No change + Wait timeout if service is locked: 30 seconds + Service AccountLog on service as: LocalSystem + Allow service to interact with the desktop: Yes + + First failure: No change + Second failure: No change + Subsequent failures: Run a program + Reset fail count after: 0 days + Run this program: fgdfg + Command line parameters: dg + Append fail count to end of command line: Yes + + #> + } + $CreateGPO['Linked'] = $GPO.Linked + $CreateGPO['LinksCount'] = $GPO.LinksCount + $CreateGPO['Links'] = $GPO.Links + [PSCustomObject] $CreateGPO + } + } } \ No newline at end of file