Rewritten Autologon using Reports on Reports

This commit is contained in:
Przemyslaw Klys
2020-07-30 21:58:28 +02:00
parent 989d3ba9f0
commit 8b963c6b82
2 changed files with 64 additions and 0 deletions
@@ -0,0 +1,49 @@
function ConvertTo-XMLRegistryAutologonOnReport {
[cmdletBinding()]
param(
[PSCustomObject] $GPO
)
$CreateGPO = [ordered]@{
DisplayName = $GPO.DisplayName
DomainName = $GPO.DomainName
GUID = $GPO.GUID
GpoType = $GPO.GpoType
#GpoCategory = $GPOEntry.GpoCategory
#GpoSettings = $GPOEntry.GpoSettings
AutoAdminLogon = $null
DefaultDomainName = $null
DefaultUserName = $null
DefaultPassword = $null
DateChangedAutoAdminLogon = $null
DateChangedDefaultDomainName = $null
DateChangedDefaultUserName = $null
DateChangedDefaultPassword = $null
}
foreach ($Registry in $GPO.Settings) {
if ($Registry.Key -eq 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon') {
if ($Registry.Name -eq 'AutoAdminLogon') {
$CreateGPO['AutoAdminLogon'] = [bool] $Registry.value
$CreateGPO['DateChangedAutoAdminLogon'] = [DateTime] $Registry.changed
} elseif ($Registry.Name -eq 'DefaultDomainName') {
$CreateGPO['DefaultDomainName'] = $Registry.value
$CreateGPO['DateChangedDefaultDomainName'] = [DateTime] $Registry.changed
} elseif ($Registry.Name -eq 'DefaultUserName') {
$CreateGPO['DefaultUserName'] = $Registry.value
$CreateGPO['DateChangedDefaultUserName'] = [DateTime] $Registry.changed
} elseif ($Registry.Name -eq 'DefaultPassword') {
$CreateGPO['DefaultPassword'] = $Registry.value
$CreateGPO['DateChangedDefaultPassword'] = [DateTime] $Registry.changed
}
}
}
if ($null -ne $CreateGPO['AutoAdminLogon'] -or
$null -ne $CreateGPO['DefaultDomainName'] -or
$null -ne $CreateGPO['DefaultUserName'] -or
$null -ne $CreateGPO['DefaultPassword']
) {
$CreateGPO['Linked'] = $GPOEntry.Linked #: True
$CreateGPO['LinksCount'] = $GPOEntry.LinksCount #: 1
$CreateGPO['Links'] = $GPOEntry.Links #: area1.local
[PSCustomObject] $CreateGPO
}
}
+15
View File
@@ -30,18 +30,33 @@
}
}
Autologon = [ordered] @{
# We want to process this based on other report called RegistrySettings
# This is because registry settings can be stored in Collections or nested within other registry settings
# The original function ConvertTo-XMLRegistryAutologon was processing it in limited ordered and potentially would skip some entries.
<#
Types = @(
@{
Category = 'RegistrySettings'
Settings = 'RegistrySettings'
}
)
#>
ByReports = @(
@{
Report = 'RegistrySettings'
}
)
<#
Code = {
ConvertTo-XMLRegistryAutologon -GPO $GPO
}
CodeSingle = {
ConvertTo-XMLRegistryAutologon -GPO $GPO
}
#>
CodeReport = {
ConvertTo-XMLRegistryAutologonOnReport -GPO $GPO
}
}
DriveMapping = [ordered] @{
Types = @(