changed: logging

changed: sort and deduplicate output
changed: "GruppenVerwaltungNEU..." output
This commit is contained in:
Edmond Gebara 2026-07-06 06:50:50 +02:00
parent b84b5a73a1
commit a5e28a7f52
12 changed files with 785 additions and 1280 deletions

51
Process-ADObjects-Work.ps1 Executable file → Normal file
View file

@ -1,6 +1,3 @@
# --------------------------------------------------------------
# Relevante OU filtern und fuer jede OU eigene Datei generieren
# --------------------------------------------------------------
function prepareADObjectsByType {
Param
(
@ -11,17 +8,17 @@ function prepareADObjectsByType {
$counter = 1
$count = $ADObjects.Count
foreach ($adObject in $ADObjects) {
outLogVerbose 'foreach $adObject in $ADObjects:' $adObject.ObjectName
if (-Not ($adObject.Description)) {
outLogVerbose 'if (-Not ($adObject.Description)) -> true'
$adObject.Description = $Config.EmptyDescription
}
#$adObject.Description = $Config.EmptyDescription
#$activityMessage = "Processing entry " + $counter + " of " + $count + ", type " + $typeTag + " object " + $adObject.ObjectName
#Write-Host $activityMessage
$currentADObject = $null
if ($typeTag -ieq $FI.TypeTagAppConfiguration) {
outLogVerbose 'if ($typeTag -ieq $FI.TypeTagAppConfiguration) -> true'
if ($adObject.OU -cmatch $FI.RelevantGroups.AppConfiguration.Filter) {
# $userMemberShips = getAllUserMemberships $adObject
outLogVerbose 'if ($adObject.OU -cmatch $FI.RelevantGroups.AppConfiguration.Filter) -> true'
$userMemberShips = @()
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.AppConfiguration.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
$adObjectFileEntry = $adObject.ObjectName + ";" + $adObject.OU + ";" + $FI.RelevantGroups.AppConfiguration.ShortCut + ";" + $adObject.Description
@ -29,15 +26,15 @@ function prepareADObjectsByType {
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
# $activityMessage = "Processing entry " + $counter + " of " + $count + ", type " + $typeTag + " object " + $adObject.ObjectName
# Write-Host $activityMessage
}
}
elseif ($typeTag -ieq $FI.TypeTagAppAccess) {
outLogVerbose 'elseif ($typeTag -ieq $FI.TypeTagAppAccess) -> true'
if ($adObject.OU -cmatch $FI.RelevantGroups.AppAccess.Filter) {
# $userMemberShips = getAllUserMemberships $adObject
outLogVerbose 'if ($adObject.OU -cmatch $FI.RelevantGroups.AppAccess.Filter) -> true'
$userMemberShips = @()
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.AppAccess.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
$adObjectFileEntry = $adObject.ObjectName + ";" + $adObject.OU + ";" + $FI.RelevantGroups.AppAccess.ShortCut + ";" + $adObject.Description
@ -45,16 +42,15 @@ function prepareADObjectsByType {
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
# $activityMessage = "Processing entry " + $counter + " of " + $count + ", type " + $typeTag + " object " + $adObject.ObjectName
# Write-Host $activityMessage
}
}
elseif ($typeTag -ieq $FI.TypeTagFileSystemAccess) {
outLogVerbose 'elseif ($typeTag -ieq $FI.TypeTagFileSystemAccess) -> true'
if ($adObject.OU -cmatch $FI.RelevantGroups.FilesystemAccess.Filter) {
# Teile gehoeren in den Block Anwendungszugriff
# $userMemberShips = getAllUserMemberships $adObject
outLogVerbose 'if ($adObject.OU -cmatch $FI.RelevantGroups.FilesystemAccess.Filter) -> true'
$userMemberShips = @()
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.FilesystemAccess.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
$adObjectFileEntry = $adObject.ObjectName + ";" + $adObject.OU + ";" + $FI.RelevantGroups.FilesystemAccess.ShortCut + ";" + $adObject.Description
@ -62,15 +58,15 @@ function prepareADObjectsByType {
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
# $activityMessage = "Processing entry " + $counter + " of " + $count + ", type " + $typeTag + " object " + $adObject.ObjectName
# Write-Host $activityMessage
}
}
elseif ($typeTag -ieq $FI.TypeTagOrganisation) {
outLogVerbose 'elseif ($typeTag -ieq $FI.TypeTagOrganisation) -> true'
if ($adObject.OU -cmatch $FI.RelevantGroups.Organisation.Filter) {
# $userMemberShips = getAllUserMemberships $adObject
outLogVerbose 'if ($adObject.OU -cmatch $FI.RelevantGroups.Organisation.Filter) -> true'
$userMemberShips = @()
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.Organisation.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
$adObjectFileEntry = $adObject.ObjectName + ";" + $adObject.OU + ";" + $FI.RelevantGroups.Organisation.ShortCut + ";" + $adObject.Description
@ -78,15 +74,15 @@ function prepareADObjectsByType {
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
# $activityMessage = "Processing entry " + $counter + " of " + $count + ", type " + $typeTag + " object " + $adObject.ObjectName
# Write-Host $activityMessage
}
}
elseif ($typeTag -ieq $FI.TypeTagSecurity) {
outLogVerbose 'elseif ($typeTag -ieq $FI.TypeTagSecurity) -> true'
if ($adObject.OU -cmatch $FI.RelevantGroups.Security.Filter) {
# $userMemberShips = getAllUserMemberships $adObject
outLogVerbose 'if ($adObject.OU -cmatch $FI.RelevantGroups.Security.Filter) -> true'
$userMemberShips = @()
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.Security.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
$adObjectFileEntry = $adObject.ObjectName + ";" + $adObject.OU + ";" + $FI.RelevantGroups.Security.ShortCut + ";" + $adObject.Description
@ -94,19 +90,16 @@ function prepareADObjectsByType {
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
# $activityMessage = "Processing entry " + $counter + " of " + $count + ", type " + $typeTag + " object " + $adObject.ObjectName
# Write-Host $activityMessage
}
}
elseif ($typeTag -ieq $FI.TypeTagRole) {
#Write-Host "----: " $FI.TypeTagRole " -> " $typeTag " -> " $FI.RelevantGroups.Role.Filter " -> " $adObject.OU
#-contains "find"
outLogVerbose 'elseif ($typeTag -ieq $FI.TypeTagRole) -> true'
#if ($adObject.OU -cmatch $FI.RelevantGroups.Role.Filter) {
if ($adObject.OU -like "*Anwenderrollen*") {
# $userMemberShips = getAllUserMemberships $adObject
outLogVerbose 'if ($adObject.OU -like "*Anwenderrollen*") -> true'
$userMemberShips = @()
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.Role.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
$adObjectFileEntry = $adObject.ObjectName + ";" + $adObject.OU + ";" + $FI.RelevantGroups.Role.ShortCut + ";" + $adObject.Description
@ -114,18 +107,14 @@ function prepareADObjectsByType {
$adGroupObjects += $adObjectEntry
$counter++
#Write-Host "+---: " $FI.TypeTagRole " -> " $typeTag " -> " $counter
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
#$activityMessage = "Processing entry " + $counter + " of " + $count + ", type " + $typeTag + " object " + $adObject.ObjectName
#Write-Host $activityMessage
}
}
# $percentCompleted = $counter / $count * 100
# Write-Progress -Activity $activityMessage -Status "zzz" -PercentComplete -1
}
return $adGroupObjects
}