This commit is contained in:
Przemyslaw Klys
2020-06-28 22:00:27 +02:00
parent 7501693276
commit de4ff8ff07
6 changed files with 215 additions and 2 deletions
+89
View File
@@ -0,0 +1,89 @@
function ConvertTo-LocalUserAndGroups {
[cmdletBinding()]
param(
[Array] $GPOList
)
foreach ($GPOEntry in $GPOList) {
foreach ($User in $GPOEntry.User) {
$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
Changed = [DateTime] $User.Changed
GPOSettingOrder = $User.GPOSettingOrder
UserAction = $User.Properties.action #: U
UserNewName = $User.Properties.newName #:
UserFullName = $User.Properties.fullName #:
UserDescription = $User.Properties.description #:
UserCpassword = $User.Properties.cpassword #:
UserChangeLogon = $User.Properties.changeLogon #: 0
UserNoChange = $User.Properties.noChange #: 0
UserNeverExpires = $User.Properties.neverExpires #: 0
UserAcctDisabled = $User.Properties.acctDisabled #: 0
UserAubAuthority = $User.Properties.subAuthority #: RID_ADMIN
UserUserName = $User.Properties.userName #: Administrator (built-in)
UserMembers = $User.Properties.Members #:
}
$CreateGPO['Linked'] = $GPOEntry.Linked #: True
$CreateGPO['LinksCount'] = $GPOEntry.LinksCount #: 1
$CreateGPO['Links'] = $GPOEntry.Links #: area1.local
[PSCustomObject] $CreateGPO
}
foreach ($Group in $GPOEntry.Group) {
# We're mostly interested in Members
[Array] $Members = foreach ($Member in $Group.Properties.Members.Member) {
[ordered] @{
MemberName = $Member.Name
MemberAction = $Member.Action
MemberSID = $Member.SID
}
}
# if we have no members we create dummy object to make sure we can use foreach below
if ($Members.Count -eq 0) {
$Members = @(
[ordered] @{
MemberName = $null
MemberAction = $null
MemberSID = $null
}
)
}
foreach ($Member in $Members) {
$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
Changed = [DateTime] $Group.Changed
GPOSettingOrder = $Group.GPOSettingOrder
GroupUid = $Group.uid #: {8F435B0A-CD15-464E-85F3-B6A55B9E816A}: {8F435B0A-CD15-464E-85F3-B6A55B9E816A}
GroupUserContext = $Group.userContext #: 0: 0
GroupRemovePolicy = $Group.removePolicy #: 1: 1
#Properties = $Group.Properties #: Properties: Properties
Filters = $Group.Filters #::
GroupAction = $Group.Properties.action #: U
GroupNewName = $Group.Properties.newName #:
GroupDescription = $Group.Properties.description #:
GroupDeleteAllUsers = $Group.Properties.deleteAllUsers #: 0
GroupDeleteAllGroups = $Group.Properties.deleteAllGroups #: 0
GroupRemoveAccounts = $Group.Properties.removeAccounts #: 1
GroupSid = $Group.Properties.groupSid #: S - 1 - 5 - 32 - 544
GroupName = $Group.Properties.groupName #: Administrators (built -in )
}
# Merging GPO with Member
$CreateGPO = $CreateGPO + $Member
$CreateGPO['Linked'] = $GPOEntry.Linked #: True
$CreateGPO['LinksCount'] = $GPOEntry.LinksCount #: 1
$CreateGPO['Links'] = $GPOEntry.Links #: area1.local
[PSCustomObject] $CreateGPO
}
}
}
}
+30
View File
@@ -0,0 +1,30 @@
function ConvertTo-Policies {
[cmdletBinding()]
param(
[Array] $GPOList
)
foreach ($GPOEntry in $GPOList) {
$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
PolicyName = $GPOEntry.Name
PolicyState = $GPOEntry.State
PolicyCategory = $GPOEntry.Category
PolicySupported = $GPOEntry.Supported
PolicyExplain = $GPOEntry.Explain
PolicyText = $GPOEntry.Text
PolicyCheckBox = $GPOEntry.CheckBox
PolicyDropDownList = $GPOEntry.DropDownList
PolicyEditText = $GPOEntry.EditText
}
$CreateGPO['Linked'] = $GPOEntry.Linked #: True
$CreateGPO['LinksCount'] = $GPOEntry.LinksCount #: 1
$CreateGPO['Links'] = $GPOEntry.Links #: area1.local
[PSCustomObject] $CreateGPO
}
}
-2
View File
@@ -12,8 +12,6 @@
GpoType = $GPOEntry.GpoType #: Computer
GpoCategory = $GPOEntry.GpoCategory #: SecuritySettings
GpoSettings = $GPOEntry.GpoSettings #: SecurityOptions
#Changed = [DateTime] $Registry.changed
GPOSettingOrder = $Registry.GPOSettingOrder
AutoAdminLogon = $null
DefaultDomainName = $null
DefaultUserName = $null
+26
View File
@@ -0,0 +1,26 @@
function ConvertTo-Scripts {
[cmdletBinding()]
param(
[Array] $GPOList
)
foreach ($GPOEntry in $GPOList) {
$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
Command = $GPOEntry.Command
Parameters = $GPOEntry.Parameters
Type = $GPOEntry.Type
Order = $GPOEntry.Order
RunOrder = $GPOEntry.RunOrder
}
$CreateGPO['Linked'] = $GPOEntry.Linked #: True
$CreateGPO['LinksCount'] = $GPOEntry.LinksCount #: 1
$CreateGPO['Links'] = $GPOEntry.Links #: area1.local
[PSCustomObject] $CreateGPO
}
}
@@ -0,0 +1,42 @@
function ConvertTo-SoftwareInstallation {
[cmdletBinding()]
param(
[Array] $GPOList
)
foreach ($GPOEntry in $GPOList) {
$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
Identifier = $GPOEntry.Identifier #: { 10495e9e-79c1-4a32-b278-a24cd495437f }
Name = $GPOEntry.Name #: Local Administrator Password Solution (2)
Path = $GPOEntry.Path #: \\area1.local\SYSVOL\area1.local\Policies\ { 5F5042A0-008F-45E3-8657-79C87BD002E3 }\LAPS.x64.msi
MajorVersion = $GPOEntry.MajorVersion #: 6
MinorVersion = $GPOEntry.MinorVersion #: 2
LanguageId = $GPOEntry.LanguageId #: 1033
Architecture = $GPOEntry.Architecture #: 9
IgnoreLanguage = if ($GPOEntry.IgnoreLanguage -eq 'true') { $true } else { $false } #: false
Allowx86Onia64 = if ($GPOEntry.Allowx86Onia64 -eq 'true') { $true } else { $false } #: true
SupportURL = $GPOEntry.SupportURL #:
AutoInstall = if ($GPOEntry.AutoInstall -eq 'true') { $true } else { $false } #: true
DisplayInARP = if ($GPOEntry.DisplayInARP -eq 'true') { $true } else { $false } #: true
IncludeCOM = if ($GPOEntry.IncludeCOM -eq 'true') { $true } else { $false } #: true
SecurityDescriptor = $GPOEntry.SecurityDescriptor #: SecurityDescriptor
DeploymentType = $GPOEntry.DeploymentType #: Assign
ProductId = $GPOEntry.ProductId #: { ea8cb806-c109 - 4700 - 96b4-f1f268e5036c }
ScriptPath = $GPOEntry.ScriptPath #: \\area1.local\SysVol\area1.local\Policies\ { 5F5042A0-008F-45E3-8657-79C87BD002E3 }\Machine\Applications\ { EAC9B821-FB4D - 457A-806F-E5B528D1E41A }.aas
DeploymentCount = $GPOEntry.DeploymentCount #: 0
InstallationUILevel = $GPOEntry.InstallationUILevel #: Maximum
Upgrades = if ($GPOEntry.Upgrades.Mandatory -eq 'true') { $true } else { $false } #: Upgrades
UninstallUnmanaged = if ($GPOEntry.UninstallUnmanaged -eq 'true') { $true } else { $false } #: false
LossOfScopeAction = $GPOEntry.LossOfScopeAction #: Unmanage
}
$CreateGPO['Linked'] = $GPOEntry.Linked #: True
$CreateGPO['LinksCount'] = $GPOEntry.LinksCount #: 1
$CreateGPO['Links'] = $GPOEntry.Links #: area1.local
[PSCustomObject] $CreateGPO
}
}
+28
View File
@@ -6,6 +6,20 @@
ConvertTo-RegistryAutologon -GPOList $GPOList
}
}
LocalUsersAndGroups = [ordered] @{
Category = 'LugsSettings'
Settings = 'LocalUsersAndGroups'
Code = {
ConvertTo-LocalUserAndGroups -GPOList $GPOList
}
}
Policies = @{
Category = 'RegistrySettings'
Settings = 'Policy'
Code = {
ConvertTo-Policies -GPOList $GPOList
}
}
RegistrySettings = [ordered] @{
Category = 'RegistrySettings'
Settings = 'RegistrySettings'
@@ -20,6 +34,13 @@
ConvertTo-RegistrySettingsCollection -GPOList $GPOList
}
}
Scripts = [ordered] @{
Category = 'Scripts'
Settings = 'Script'
Code = {
ConvertTo-Scripts -GPOList $GPOList
}
}
SecurityOptions = [ordered] @{
Category = 'SecuritySettings'
Settings = 'SecurityOptions'
@@ -27,6 +48,13 @@
ConvertTo-SecurityOptions -GPOList $GPOList
}
}
SoftwareInstallation = [ordered] @{
Category = 'SoftwareInstallationSettings'
Settings = 'MsiApplication'
Code = {
ConvertTo-SoftwareInstallation -GPOList $GPOList
}
}
SystemServices = [ordered] @{
Description = ''
GPOPath = 'Computer Configuration -> Policies -> Windows Settings -> Security Settings -> System Services'