mirror of
https://github.com/EvotecIT/GPOZaurr.git
synced 2026-07-26 11:49:17 +00:00
77 lines
2.8 KiB
PowerShell
77 lines
2.8 KiB
PowerShell
function ConvertTo-XMLRestrictedGroups {
|
|
[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 ($Script in $GPO.DataSet) {
|
|
$Members = foreach ($Member in $Group.Member) {
|
|
if ($($Member.SID.'#text')) {
|
|
"$($Member.Name.'#text') ($($Member.SID.'#text'))"
|
|
} else {
|
|
$Member.Name.'#text'
|
|
}
|
|
}
|
|
$MemberOf = foreach ($Member in $Group.MemberOf) {
|
|
if ($($Member.SID.'#text')) {
|
|
"$($Member.Name.'#text') ($($Member.SID.'#text'))"
|
|
} else {
|
|
$Member.Name.'#text'
|
|
}
|
|
}
|
|
[PSCustomObject]@{
|
|
GroupName = $Group.GroupName.Name
|
|
GroupSID = $Group.GroupName.SID.'#text'
|
|
Members = $Members -join ', '
|
|
MembersOf = $MemberOf -join ', '
|
|
}
|
|
}
|
|
$CreateGPO['DataCount'] = $CreateGPO['Settings'].Count
|
|
$CreateGPO['Linked'] = $GPO.Linked
|
|
$CreateGPO['LinksCount'] = $GPO.LinksCount
|
|
$CreateGPO['Links'] = $GPO.Links
|
|
[PSCustomObject] $CreateGPO
|
|
} else {
|
|
foreach ($Group in $GPO.DataSet) {
|
|
$Members = foreach ($Member in $Group.Member) {
|
|
if ($($Member.SID.'#text')) {
|
|
"$($Member.Name.'#text') ($($Member.SID.'#text'))"
|
|
} else {
|
|
$Member.Name.'#text'
|
|
}
|
|
}
|
|
$MemberOf = foreach ($Member in $Group.MemberOf) {
|
|
if ($($Member.SID.'#text')) {
|
|
"$($Member.Name.'#text') ($($Member.SID.'#text'))"
|
|
} else {
|
|
$Member.Name.'#text'
|
|
}
|
|
}
|
|
$CreateGPO = [ordered]@{
|
|
DisplayName = $GPO.DisplayName
|
|
DomainName = $GPO.DomainName
|
|
GUID = $GPO.GUID
|
|
GpoType = $GPO.GpoType
|
|
GroupName = $Group.GroupName.Name.'#text'
|
|
GroupSID = $Group.GroupName.SID.'#text'
|
|
Members = $Members -join ', '
|
|
MembersOf = $MemberOf -join ', '
|
|
}
|
|
$CreateGPO['Linked'] = $GPO.Linked
|
|
$CreateGPO['LinksCount'] = $GPO.LinksCount
|
|
$CreateGPO['Links'] = $GPO.Links
|
|
[PSCustomObject] $CreateGPO
|
|
}
|
|
}
|
|
} |