mirror of
https://github.com/EvotecIT/GPOZaurr.git
synced 2026-08-20 23:22:32 +00:00
Improved Get-GPOZaurrLink
This commit is contained in:
@@ -6,15 +6,37 @@
|
||||
[System.Collections.IDictionary] $GPOCache
|
||||
)
|
||||
if ($Object.GpLink -and $Object.GpLink.Trim() -ne '') {
|
||||
#$Object.GpLink -split { $_ -eq '[' -or $_ -eq ']' } -replace ';0' -replace 'LDAP://'
|
||||
$Object.GpLink -split '\[LDAP://' -split ';' | ForEach-Object -Process {
|
||||
#Write-Verbose $_
|
||||
if ($_.Length -gt 10) {
|
||||
$DomainCN = ConvertFrom-DistinguishedName -DistinguishedName $_ -ToDomainCN
|
||||
$Object.GpLink -split '\]\[' | ForEach-Object -Process {
|
||||
$Link = $_ -replace '\[LDAP://' -replace '\]' -replace '\['
|
||||
if ($Link.Length -gt 10) {
|
||||
$SplitGPLink = $Link -split ';'
|
||||
$DN = $SplitGPLink[0]
|
||||
$Option = $SplitGPLink[1]
|
||||
if ($Option -eq '0') {
|
||||
$Enforced = $false
|
||||
$Enabled = $true
|
||||
} elseif ($Option -eq '1') {
|
||||
$Enabled = $false
|
||||
$Enforced = $false
|
||||
} elseif ($Option -eq '2') {
|
||||
$Enabled = $true
|
||||
$Enforced = $true
|
||||
} elseif ($Option -eq '3') {
|
||||
$Enabled = $false
|
||||
$Enforced = $true
|
||||
} else {
|
||||
Write-Warning "Get-PrivGPOZaurrLink - This should't happen. Please investigate - Option: $Option"
|
||||
$Enabled = $null
|
||||
$Enforced = $null
|
||||
}
|
||||
$DomainCN = ConvertFrom-DistinguishedName -DistinguishedName $DN -ToDomainCN
|
||||
$Output = [ordered] @{
|
||||
DistinguishedName = $Object.DistinguishedName
|
||||
CanonicalName = if ($Object.CanonicalName) { $Object.CanonicalName.TrimEnd('/') } else { $Object.CanonicalName }
|
||||
Guid = [Regex]::Match( $_, '(?={)(.*)(?<=})').Value -replace '{' -replace '}'
|
||||
Guid = [Regex]::Match( $DN, '(?={)(.*)(?<=})').Value -replace '{' -replace '}'
|
||||
Enforced = $Enforced
|
||||
Enabled = $Enabled
|
||||
ObjectClass = $Object.ObjectClass
|
||||
}
|
||||
$Search = -join ($DomainCN, $Output['Guid'])
|
||||
if ($GPOCache -and -not $Limited) {
|
||||
@@ -26,15 +48,15 @@
|
||||
$Output['Description'] = $GPOCache[$Search].Description
|
||||
$Output['CreationTime'] = $GPOCache[$Search].CreationTime
|
||||
$Output['ModificationTime'] = $GPOCache[$Search].ModificationTime
|
||||
$Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $_ -ToDC
|
||||
$Output['GPODistinguishedName'] = $_
|
||||
$Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $DN -ToDC
|
||||
$Output['GPODistinguishedName'] = $DN
|
||||
[PSCustomObject] $Output
|
||||
} else {
|
||||
Write-Warning "Get-PrivGPOZaurrLink - Couldn't find link $Search in a GPO Cache. Lack of permissions for given GPO? Are you running as admin? Skipping."
|
||||
}
|
||||
} else {
|
||||
$Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $_ -ToDC
|
||||
$Output['GPODistinguishedName'] = $_
|
||||
$Output['GPODomainDistinguishedName'] = ConvertFrom-DistinguishedName -DistinguishedName $DN -ToDC
|
||||
$Output['GPODistinguishedName'] = $DN
|
||||
[PSCustomObject] $Output
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user