mirror of
https://github.com/EvotecIT/GPOZaurr.git
synced 2026-08-21 07:26:57 +00:00
Update
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user