SparKURS.DAW/Process-ADObjects-Work.ps1
Edmond Gebara a5e28a7f52 changed: logging
changed: sort and deduplicate output
changed: "GruppenVerwaltungNEU..." output
2026-07-06 06:50:50 +02:00

120 lines
7.2 KiB
PowerShell

function prepareADObjectsByType {
Param
(
[Parameter(Mandatory = $true, Position = 0)]
[String] $typeTag
)
$adGroupObjects = @()
$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
}
$currentADObject = $null
if ($typeTag -ieq $FI.TypeTagAppConfiguration) {
outLogVerbose 'if ($typeTag -ieq $FI.TypeTagAppConfiguration) -> true'
if ($adObject.OU -cmatch $FI.RelevantGroups.AppConfiguration.Filter) {
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
$adObjectFileEntry | out-file $AppConfigurationTmpFilePath -Encoding "utf8NoBom" -Append
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
}
}
elseif ($typeTag -ieq $FI.TypeTagAppAccess) {
outLogVerbose 'elseif ($typeTag -ieq $FI.TypeTagAppAccess) -> true'
if ($adObject.OU -cmatch $FI.RelevantGroups.AppAccess.Filter) {
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
$adObjectFileEntry | out-file $AppAccessTmpFilePath -Encoding "utf8NoBom" -Append
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
}
}
elseif ($typeTag -ieq $FI.TypeTagFileSystemAccess) {
outLogVerbose 'elseif ($typeTag -ieq $FI.TypeTagFileSystemAccess) -> true'
if ($adObject.OU -cmatch $FI.RelevantGroups.FilesystemAccess.Filter) {
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
$adObjectFileEntry | out-file $FilesystemAccessTmpFilePath -Encoding "utf8NoBom" -Append
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
}
}
elseif ($typeTag -ieq $FI.TypeTagOrganisation) {
outLogVerbose 'elseif ($typeTag -ieq $FI.TypeTagOrganisation) -> true'
if ($adObject.OU -cmatch $FI.RelevantGroups.Organisation.Filter) {
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
$adObjectFileEntry | out-file $OrganisationTmpFilePath -Encoding "utf8NoBom" -Append
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
}
}
elseif ($typeTag -ieq $FI.TypeTagSecurity) {
outLogVerbose 'elseif ($typeTag -ieq $FI.TypeTagSecurity) -> true'
if ($adObject.OU -cmatch $FI.RelevantGroups.Security.Filter) {
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
$adObjectFileEntry | out-file $SecurityTmpFilePath -Encoding "utf8NoBom" -Append
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
}
}
elseif ($typeTag -ieq $FI.TypeTagRole) {
outLogVerbose 'elseif ($typeTag -ieq $FI.TypeTagRole) -> true'
if ($adObject.OU -like "*Anwenderrollen*") {
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
$adObjectFileEntry | out-file $RoleTmpFilePath -Encoding "utf8NoBom" -Append
$adGroupObjects += $adObjectEntry
$counter++
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
break
}
}
}
}
return $adGroupObjects
}