changed: logging
changed: sort and deduplicate output changed: "GruppenVerwaltungNEU..." output
This commit is contained in:
parent
b84b5a73a1
commit
a5e28a7f52
12 changed files with 785 additions and 1280 deletions
3
.vscode/launch.json
vendored
3
.vscode/launch.json
vendored
|
|
@ -10,8 +10,7 @@
|
|||
"request": "launch",
|
||||
"script": "${workspaceFolder}/Process-ADObjects.ps1",
|
||||
"args": ["R125"],
|
||||
"preLaunchTask": "clean-workdirs",
|
||||
"postDebugTask": "normalize-output"
|
||||
"preLaunchTask": "clean-workdirs"
|
||||
},
|
||||
{
|
||||
"name": "Launch Measure Main Script",
|
||||
|
|
|
|||
139
CLAUDE.md
Normal file
139
CLAUDE.md
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
# CLAUDE.md — SparKURS / Process-ADObjects
|
||||
|
||||
Briefing for Claude sessions on this repository. Read fully before touching code.
|
||||
|
||||
## Purpose
|
||||
|
||||
PowerShell system processing Active Directory group memberships for Sparkassen
|
||||
banking institutes (currently R125, Y015). Reads AD export CSVs, transforms them
|
||||
per institute, and writes CSV files consumed by (a) the DAW GUI import baskets
|
||||
("Basket.Import.ADGroup.*") and (b) KNIME workflows. Runtime target: ~3 minutes
|
||||
per institute (down from 10 h; do not regress this).
|
||||
|
||||
## File map
|
||||
|
||||
| File | Role |
|
||||
|---|---|
|
||||
| `Process-ADObjects.ps1` | Main entry, loads config, dot-sources the rest |
|
||||
| `Process-ADObjects-Configuration.ps1` | `$Config` hashtable: institutes, GroupManagementMappings, flags (`TestMode`, `Verbose`, ...). Pure data, no logic |
|
||||
| `Process-ADObjects-Base.ps1` | Core lookups: membership index (`newObjectMembershipsIndex`, `getObjectMemberships`, `getUsersByMemberGroup`), `getRoleType`, prefix matcher (`buildPrefixMatcher`, `testKnownPrefixes`) |
|
||||
| `Process-ADObjects-Utility.ps1` | Logging (`openLog`/`closeLog`/`outLog`/`outLogVerbose`), input checks, exception helpers, `removeDuplicatesFromSortedList` |
|
||||
| `Process-ADObjects-Work.ps1` | Institute dispatch |
|
||||
| `Process-ADObjects-Work-R125.ps1` / `-Y015.ps1` | Per-institute processing. Structurally identical copies (deduplication planned). Sections: FileSystemAccess, AppAccess, AppConfiguration, Organisation, Security, Anwenderrollen; then post-processing (sort → dedup → Neu derivation → file writes) |
|
||||
| `Process-ADObjects-Analyze.ps1` | AD object analysis. Known incomplete; cleanup planned |
|
||||
| `Process-ADObjects-Test.ps1` | Test scaffolding |
|
||||
|
||||
## Conventions (mandatory)
|
||||
|
||||
- **English** for all code, comments, identifiers, log messages. German only in chat.
|
||||
- **Allman** brace style (opening brace on its own line).
|
||||
- **`utf8NoBom`** for every file output; LF is fine (runs on macOS/pwsh 7).
|
||||
- No `Write-Host` in processing code — use `outLog` / `outLogVerbose`.
|
||||
Exceptions: the output helpers themselves (`outLog`, `outScreen`, `dumpVar`,
|
||||
`writeExceptionInfo*`).
|
||||
- Institute code is parameterized via `$SPKID` (e.g. "R125") and `$SPKNO`
|
||||
(e.g. "125"). No hardcoded institute literals in Work files.
|
||||
- Code is currently intentionally comment-free (old comments stripped 2026-07;
|
||||
re-commenting planned). Bug history lives in git and in this file.
|
||||
|
||||
## Logging system
|
||||
|
||||
- `outLog <args...>` — always-on log line; args are joined with **newline**.
|
||||
For a single-line message concatenate in parentheses:
|
||||
`outLog ("found " + $n + " entries")`.
|
||||
- `outLog ... -ToScreen $false` — file only. Named parameter only; positional
|
||||
args all go to the message (`PositionalBinding=$false` +
|
||||
`ValueFromRemainingArguments`).
|
||||
- `outLogVerbose <args...>` — trace layer, gated by `$Config.Verbose`, never to
|
||||
screen. ~440 call sites instrument every loop iteration and if/elseif/else
|
||||
branch. With `Verbose = $true` a full run writes millions of lines — use
|
||||
`TestMode` for verbose runs.
|
||||
- Writer: persistent `StreamWriter` (UTF-8 no BOM, append, `AutoFlush=$true`),
|
||||
auto-opens on first `outLog` and auto-reopens when `$LogFileName` changes.
|
||||
`closeLog` at end is good style, not required. `tail -f` on the log works.
|
||||
- Timestamp format is `HH:mm:ss.fff`. (`".mmm"` was a historic bug: minutes,
|
||||
not milliseconds. Do not reintroduce.)
|
||||
|
||||
## Output post-processing (per Work file, end of run)
|
||||
|
||||
1. `Sort($ordinalComparer)` on all four collections
|
||||
(`DAWGruppenAnlegenOutList`, `DAWGruppenverwaltungOutList`,
|
||||
`KURSSollProfileOutList`, `KURSIstMitarbeiterProfileOutList`).
|
||||
2. `removeDuplicatesFromSortedList` on each (logs removed count per list).
|
||||
3. `DAWGruppenverwaltungNeuOutList` is **derived** from the sorted Out list —
|
||||
never written inline. Rule: rows with empty `Accounts.Add` pass through;
|
||||
first row per `GUIADGroup.LDAP` block keeps all columns; subsequent rows
|
||||
carry only the account (`;;;;;<acct>;;;;`).
|
||||
Open point: same account via multiple Quellgruppen still yields duplicate
|
||||
reduced rows within a block (3-line fix pending DAW import behavior).
|
||||
|
||||
## Verification workflow
|
||||
|
||||
1. Syntax check before any run (parser API, no execution):
|
||||
`[System.Management.Automation.Language.Parser]::ParseFile(...)` per file.
|
||||
On error lists, fix the **bottom-most concrete** error (e.g. "Unexpected
|
||||
token 'X'"); "Missing closing brace" messages above it are usually cascade.
|
||||
2. Output comparison is always a **sorted multiset compare**, never a join:
|
||||
`diff <(tail -n +3 REF.csv | sort -u) <(tail -n +3 NEW.csv | sort)`
|
||||
(`+3`: skip Basket preamble + header; `-u` on the reference because current
|
||||
code dedups and old references contain exact duplicates, e.g. 362 in the
|
||||
R125 reference).
|
||||
3. Reference files written under Windows PowerShell 5.1 have **UTF-8 BOM +
|
||||
CRLF** and a semicolon-padded preamble (`ManageMembers;;;;;;;;;`); current
|
||||
output has no BOM, LF, unpadded preamble. Normalize before comparing.
|
||||
|
||||
## Trap registry (hard-won; check before "optimizing")
|
||||
|
||||
- **PS 5.1 vs pwsh 7 divergences:**
|
||||
- `Sort-Object -Property "Order"` on hashtables silently does NOT sort on
|
||||
5.1. Always use scriptblock form: `Sort-Object { [int]$_.Order }`.
|
||||
- `-Encoding utf8` writes BOM on 5.1, no BOM on 7. Always specify
|
||||
`utf8NoBom` (or `utf8BOM` deliberately).
|
||||
- Reference outputs originate from 5.1 → see verification §3.
|
||||
- **R125 Proxy rules have `Order = 130/140`** (were 0/1). Reason: reference
|
||||
behavior classifies `GGX-Proxy*` as `GPO`; on pwsh 7 a working sort would let
|
||||
the (non-FI-Doku) Proxy rules win. Other institutes still have the 0/1
|
||||
pattern — same trap waits there when validating against 5.1-era references.
|
||||
- **`getUsersByMemberGroup` must index `$ADObjectMembershipsIndexed`** (the
|
||||
hashtable). Indexing the flat array with a string key fails silently
|
||||
($null → all indirect memberships vanish). Cost us 157k rows once.
|
||||
- **Both membership expansion branches need their `$users = ...` assignment.**
|
||||
A deleted line in the AppAccess group branch silently dropped 83k rows
|
||||
($users was stale from the FS section).
|
||||
- **Out vs Neu list Add targets:** adding a line to the wrong collection
|
||||
duplicated every FS creation row. The Neu list is derived now, but the same
|
||||
copy-paste class applies to the four remaining lists.
|
||||
- **Prefix filter (Anwenderrollen):** `R125GUX*`/`<SPKID>GUX*` objects fall
|
||||
THROUGH (original cascade had an empty first branch). The explicit
|
||||
`StartsWith` check preserves this regardless of the prefix CSV content.
|
||||
- **`+` in argument mode is a literal argument**, not concatenation:
|
||||
`outLog "a" + $b` passes three args. Parenthesize: `outLog ("a" + $b)`.
|
||||
- **Adding named parameters to `$args`-style functions** breaks positional
|
||||
callers. Pattern: `[CmdletBinding(PositionalBinding=$false)]` +
|
||||
`[Parameter(ValueFromRemainingArguments)]`.
|
||||
- **Institute porting:** check for bare `SPKNO`/`SPKID` (missing `$`) —
|
||||
happened twice in Y015. `grep -P '[^$\w]SPK(NO|ID)\b'`.
|
||||
- **Editor hazards:** regex replace across guard lines and format-on-save have
|
||||
each corrupted a file (interleaved fragments, brace salad). Prefer scripted,
|
||||
validated transforms; always `git diff` after merging delivered files;
|
||||
replace whole files rather than hand-merging.
|
||||
- **KNIME comparisons are fragile:** BOM breaks column autodetection; the
|
||||
`DOMAIN\user` backslash can be eaten as escape char; join column pairing
|
||||
drifts (Add vs Rem columns); duplicate keys break join semantics. Use the
|
||||
shell/PowerShell multiset compare instead.
|
||||
- **`Start-ThreadJob` scriptblocks don't write parent variables** — the
|
||||
`$startParallel` path in Analyze never worked. Needs `Receive-Job` if ever
|
||||
activated.
|
||||
- **Empty `catch {}` blocks** exist in both Work files (Write-Host removed) —
|
||||
exceptions are currently swallowed there; add log lines when instrumenting.
|
||||
|
||||
## Backlog
|
||||
|
||||
- Re-comment the codebase (fresh, English). Document at minimum: scriptblock
|
||||
sort rationale, GUX fall-through, Proxy Order renumbering, Neu derivation.
|
||||
- Deduplicate R125/Y015 into a shared parameterized core.
|
||||
- TestMode: implement consistently across all sections.
|
||||
- Analyze: rework (incomplete; parallel path broken by design).
|
||||
- Decide: preamble semicolon padding for DAW import; Neu per-block account
|
||||
dedup.
|
||||
- Y015: first verification run against its 5.1-era reference still pending.
|
||||
112
Process-ADObjects-Analyze.ps1
Executable file → Normal file
112
Process-ADObjects-Analyze.ps1
Executable file → Normal file
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
function analyzeADObjects {
|
||||
function analyzeADObjects
|
||||
{
|
||||
Param
|
||||
(
|
||||
[Parameter(Mandatory = $false, Position = 0)]
|
||||
|
|
@ -7,7 +8,7 @@ function analyzeADObjects {
|
|||
)
|
||||
|
||||
$start = Get-Date
|
||||
outLog "started: analyzeADObjects at" $start.ToString("HH:mm:ss.mmm")
|
||||
outLog "started: analyzeADObjects at" $start.ToString("HH:mm:ss.fff")
|
||||
|
||||
$adObjectsOrganisation = @()
|
||||
$adObjectsAppAccess = @()
|
||||
|
|
@ -15,8 +16,9 @@ function analyzeADObjects {
|
|||
$adObjectsAppConfiguration = @()
|
||||
$adObjectsSecurity = @()
|
||||
|
||||
if ($startParallel) {
|
||||
#this stuff won´t work this way - missing globals !!!
|
||||
if ($startParallel)
|
||||
{
|
||||
outLogVerbose 'if ($startParallel) -> true'
|
||||
Start-ThreadJob -ScriptBlock { $adObjectsOrganisation += analyzeADObjectsByType $FI.TypeTagOrganisation}
|
||||
Start-ThreadJob -ScriptBlock { $adObjectsAppAccess += analyzeADObjectsByType $FI.TypeTagAppAccess}
|
||||
Start-ThreadJob -ScriptBlock { $adObjectsFilesystemAccess += analyzeADObjectsByType $FI.TypeTagFilesystemAccess}
|
||||
|
|
@ -24,107 +26,143 @@ function analyzeADObjects {
|
|||
Start-ThreadJob -ScriptBlock { $adObjectsSecurity += analyzeADObjectsByType $FI.TypeTagSecurity}
|
||||
Get-Job | Wait-Job
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
outLogVerbose 'else -> true (if/elseif ($startParallel) -> false)'
|
||||
$adObjectsOrganisation += analyzeADObjectsByType $FI.TypeTagOrganisation
|
||||
$adObjectsAppAccess += analyzeADObjectsByType $FI.TypeTagAppAccess
|
||||
$adObjectsFilesystemAccess += analyzeADObjectsByType $FI.TypeTagFilesystemAccess
|
||||
$adObjectsAppConfiguration += analyzeADObjectsByType $FI.TypeTagAppConfiguration
|
||||
$adObjectsSecurity += analyzeADObjectsByType $FI.TypeTagSecurity
|
||||
}
|
||||
outlog "found " $adObjectsOrganisation.Count " entries of type " $FI.TypeTagOrganisation
|
||||
outlog "found " $adObjectsAppAccess.Count " entries of type " $FI.TypeTagAppAccess
|
||||
outlog "found " $adObjectsFilesystemAccess.Count " entries of type " $FI.TypeTagFilesystemAccess
|
||||
outlog "found " $adObjectsAppConfiguration.Count " entries of type " $FI.TypeTagAppConfiguration
|
||||
outlog "found " $adObjectsSecurity.Count " entries of type " $FI.TypeTagSecurity
|
||||
outLog ("found " + $adObjectsOrganisation.Count + " entries of type " + $FI.TypeTagOrganisation)
|
||||
outLog ("found " + $adObjectsAppAccess.Count + " entries of type " + $FI.TypeTagAppAccess)
|
||||
outLog ("found " + $adObjectsFilesystemAccess.Count + " entries of type " + $FI.TypeTagFilesystemAccess)
|
||||
outLog ("found " + $adObjectsAppConfiguration.Count + " entries of type " + $FI.TypeTagAppConfiguration)
|
||||
outLog ("found " + $adObjectsSecurity.Count + " entries of type " + $FI.TypeTagSecurity)
|
||||
$end = Get-Date
|
||||
outLog "finished: analyzeADObjects at " $end.ToString("HH:mm:ss.mmm") ", used " ($end - $start)
|
||||
outLog ("finished: analyzeADObjects at " + $end.ToString("HH:mm:ss.fff") + ", used " + ($end - $start))
|
||||
}
|
||||
|
||||
function analyzeDirectoryPaths {
|
||||
function analyzeDirectoryPaths
|
||||
{
|
||||
$header = "Verzeichnisname", "Normierter Pfad" , "Kontrolle" , "Endpunktname", "Verzeichnisart", "Verantwortlicher (Stelle oder Personalnummer)" , "Gruppe Lesen", "Gruppe Aendern", "Benutzer mit Leserecht", "Benutzer mit Aenderungsrecht", "Rollen mit Leserecht", "Rollen mit Aenderungsrecht"
|
||||
$DirectoriesFilePathEntries = Get-Content -Path $DirectoriesInFilePath | Select-Object -Skip 1 | ConvertFrom-Csv -Delimiter ";" -Header $header
|
||||
# \\V998DPVP.V998.INTERN\DFSRootP014$\P014\Daten\Ablage\GS\01010
|
||||
|
||||
# use slashes '/' as directory seperator to avoid backslash '\'-handling with
|
||||
# $rootPath = [regex]::escape('\' + $SPK.RootDomainName + '.V998.INTERN\DFSRoot' + $Institut + '$\' + $Institut + '\Daten')
|
||||
$rootPath = [regex]::escape('\' + $SPK.RootDomainName + '.V998.INTERN\DFSRoot' + $Institut + '$\' + $Institut + '\Daten')
|
||||
|
||||
outLog $rootPath
|
||||
foreach ($directoryEntry in $DirectoriesFilePathEntries) {
|
||||
foreach ($directoryEntry in $DirectoriesFilePathEntries)
|
||||
{
|
||||
outLogVerbose 'foreach $directoryEntry in $DirectoriesFilePathEntries:' $directoryEntry.Verzeichnisname
|
||||
$path = [regex]::escape($directoryEntry.Verzeichnisname)
|
||||
$restPath = $path.Replace($rootPath, "")
|
||||
# $restPath = $path.Substring($rootPath.length)
|
||||
outLog $restPath
|
||||
}
|
||||
}
|
||||
|
||||
function analyzeADObjectsByType {
|
||||
function analyzeADObjectsByType
|
||||
{
|
||||
Param
|
||||
(
|
||||
[Parameter(Mandatory = $true, Position = 0)]
|
||||
[String] $typeTag
|
||||
)
|
||||
$start = Get-Date
|
||||
outLog "started: analyzeADObjects type " $typeTag "at" $start.ToString("HH:mm:ss.mmm")
|
||||
outLog "started: analyzeADObjects type " $typeTag "at" $start.ToString("HH:mm:ss.fff")
|
||||
|
||||
$adGroupObjects = @()
|
||||
$counter = 1
|
||||
|
||||
foreach ($adObject in $ADObjects) {
|
||||
if (-Not ($adObject.Description)) {
|
||||
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
|
||||
}
|
||||
if ($typeTag -ieq $FI.TypeTagAppConfiguration) {
|
||||
if ($adObject.OU -cmatch $FI.RelevantGroups.AppConfiguration.Filter) {
|
||||
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 = getAllUserMemberships $adObject
|
||||
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.AppConfiguration.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
|
||||
$adGroupObjects += $adObjectEntry
|
||||
$counter++
|
||||
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
|
||||
if ($IsTestMode -and ($counter -gt $Config.TestMode) )
|
||||
{
|
||||
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($typeTag -ieq $FI.TypeTagAppAccess) {
|
||||
if ($adObject.OU -cmatch $FI.RelevantGroups.AppAccess.Filter) {
|
||||
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 = getAllUserMemberships $adObject
|
||||
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.AppAccess.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
|
||||
$adGroupObjects += $adObjectEntry
|
||||
$counter++
|
||||
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
|
||||
if ($IsTestMode -and ($counter -gt $Config.TestMode) )
|
||||
{
|
||||
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($typeTag -ieq $FI.TypeTagFileSystemAccess) {
|
||||
if ($adObject.OU -cmatch $FI.RelevantGroups.FilesystemAccess.Filter) {
|
||||
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 = getAllUserMemberships $adObject
|
||||
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.FilesystemAccess.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
|
||||
$adGroupObjects += $adObjectEntry
|
||||
$counter++
|
||||
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
|
||||
if ($IsTestMode -and ($counter -gt $Config.TestMode) )
|
||||
{
|
||||
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($typeTag -ieq $FI.TypeTagOrganisation) {
|
||||
if ($adObject.OU -cmatch $FI.RelevantGroups.Organisation.Filter) {
|
||||
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 = getAllUserMemberships $adObject
|
||||
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.Organisation.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
|
||||
$adGroupObjects += $adObjectEntry
|
||||
$counter++
|
||||
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
|
||||
if ($IsTestMode -and ($counter -gt $Config.TestMode) )
|
||||
{
|
||||
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($typeTag -ieq $FI.TypeTagSecurity) {
|
||||
if ($adObject.OU -cmatch $FI.RelevantGroups.Security.Filter) {
|
||||
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 = getAllUserMemberships $adObject
|
||||
$adObjectEntry = @{ObjectName = $adObject.ObjectName; Path = $adObject.OU; ShortCut = $FI.RelevantGroups.Security.ShortCut; Description = $adObject.Description; Users = $userMemberShips}
|
||||
$adGroupObjects += $adObjectEntry
|
||||
$counter++
|
||||
if ($IsTestMode -and ($counter -gt $Config.TestMode) ) {
|
||||
if ($IsTestMode -and ($counter -gt $Config.TestMode) )
|
||||
{
|
||||
outLogVerbose 'if ($IsTestMode -and ($counter -gt $Config.TestMode)) -> true'
|
||||
break
|
||||
}
|
||||
}
|
||||
|
|
@ -132,7 +170,7 @@ function analyzeADObjectsByType {
|
|||
}
|
||||
|
||||
$end = Get-Date
|
||||
outLog "finished: analyzeADObjects type " $typeTag "at" $end.ToString("HH:mm:ss.mmm") ", used " ($end - $start)
|
||||
outLog "finished: analyzeADObjects type " $typeTag "at" $end.ToString("HH:mm:ss.fff") ", used " ($end - $start)
|
||||
|
||||
return $adGroupObjects
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,32 +2,18 @@
|
|||
function writeHeaders
|
||||
{
|
||||
|
||||
################################################################
|
||||
# --------------------------------------------------------------
|
||||
# Header für $DAWGruppenAnlegenOutFilePath anlegen
|
||||
# --------------------------------------------------------------
|
||||
"Basket.Import.ADGroup.Create" | Out-File $DAWGruppenAnlegenOutFilePath -Encoding "utf8NoBOM"
|
||||
"GUIMandator" + ";" + "GUIADGroup.Name" + ";" + "GUIADGroup.Description" + ";" + "GUIMandatorADGroupType" + ";" + "GUIADGroup.DisplayName" + ";" + "GUIProcessingNote" + ";" + "OldName" | Out-File $DAWGruppenAnlegenOutFilePath -Append -Encoding "utf8NoBom"
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Header für $DAWGruppenverwaltungOutFilePath anlegen
|
||||
# --------------------------------------------------------------
|
||||
"Basket.Import.ADGroup.ManageMembers" | Out-File "$DAWGruppenverwaltungOutFilePath" -Encoding "utf8NoBom"
|
||||
"GUIMandator" + ";" + "GUIMandatorADGroupType" + ";" + "GUIADGroup.LDAP" + ";" + "GUIADGroup.ADGroups.Add.LDAPs" + ";" + "GUIADGroup.ADGroups.Rem.LDAPs" + ";" + "GUIADGroup.Accounts.Add.LDAPs" + ";" + "GUIADGroup.Accounts.Rem.LDAPs" + ";" + "GUIProcessingNote" + ";" + "ADObjectType" + ";" + "Quellgruppe" | Out-File $DAWGruppenverwaltungOutFilePath -Encoding "utf8NoBom" -Append
|
||||
|
||||
"Basket.Import.ADGroup.ManageMembers" | Out-File "$DAWGruppenverwaltungNeuOutFilePath" -Encoding "utf8NoBom"
|
||||
"GUIMandator" + ";" + "GUIMandatorADGroupType" + ";" + "GUIADGroup.LDAP" + ";" + "GUIADGroup.ADGroups.Add.LDAPs" + ";" + "GUIADGroup.ADGroups.Rem.LDAPs" + ";" + "GUIADGroup.Accounts.Add.LDAPs" + ";" + "GUIADGroup.Accounts.Rem.LDAPs" + ";" + "GUIProcessingNote" + ";" + "ADObjectType" + ";" + "Quellgruppe" | Out-File $DAWGruppenverwaltungNeuOutFilePath -Encoding "utf8NoBom" -Append
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Header für $KURSSollProfile anlegen
|
||||
# --------------------------------------------------------------
|
||||
"Profilnummer;Name;Beschreibung;Profilverantwortliche OE/Stelle;Info;InfoKurs" | Out-File $KURSSollProfileOutFilePath -Encoding "utf8NoBom"
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Header für $IstMitarbeiterProfile anlegen
|
||||
# --------------------------------------------------------------
|
||||
"Personalnummer;;Profilnummer;Name Berechtigungsprofil" | Out-File "$KURSIstMitarbeiterProfileOutFilePath" -Encoding "utf8NoBom"
|
||||
################################################################
|
||||
}
|
||||
|
||||
function getObjectMemberships
|
||||
|
|
@ -51,6 +37,7 @@ function getObjectMemberships
|
|||
}
|
||||
else
|
||||
{
|
||||
outLogVerbose 'else -> true (if/elseif (?) -> false)'
|
||||
@($bucket)
|
||||
}
|
||||
|
||||
|
|
@ -73,34 +60,20 @@ function getAllUserMemberships
|
|||
$groupMemberships = @(getObjectMemberships $adObjectEntry.ObjectName "group" "group")
|
||||
foreach ($groupMembership in $groupMemberships)
|
||||
{
|
||||
outLogVerbose 'foreach $groupMembership in $groupMemberships:' $groupMembership.MemberName
|
||||
$result.AddRange(@(getObjectMemberships $groupMembership.MemberName "user" "group"))
|
||||
}
|
||||
# it's the same, bad odd syntax
|
||||
# return ,$result.ToArray()
|
||||
return @($result)
|
||||
}
|
||||
|
||||
function getUsersByMemberGroup
|
||||
{
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Retrieves the user membership entries for a given group via the
|
||||
prebuilt membership index (O(1) lookup, exact class match).
|
||||
.PARAMETER GroupName
|
||||
The group whose user members are requested (matched against GroupName).
|
||||
.OUTPUTS
|
||||
Array of matching membership entries (empty array if none).
|
||||
Object references are preserved from the index.
|
||||
#>
|
||||
param
|
||||
(
|
||||
[Parameter(Mandatory = $true, Position = 0)]
|
||||
[string] $GroupName
|
||||
)
|
||||
|
||||
# BUGFIX 2026-07-02: was indexing the flat array $ADObjectMemberships with a string
|
||||
# key, which fails silently (non-terminating Int32 conversion error -> $null) and
|
||||
# dropped ALL indirect (group-inherited) user memberships. Must use the hashtable.
|
||||
$bucket = $ADObjectMembershipsIndexed[(getMembershipIndexKey $GroupName "user")]
|
||||
$result = if ($null -eq $bucket)
|
||||
{
|
||||
|
|
@ -108,47 +81,17 @@ function getUsersByMemberGroup
|
|||
}
|
||||
else
|
||||
{
|
||||
outLogVerbose 'else -> true (if/elseif (?) -> false)'
|
||||
@($bucket)
|
||||
}
|
||||
return $result
|
||||
}
|
||||
|
||||
# function getAllUserMemberships
|
||||
# {
|
||||
# param([Parameter(Mandatory, Position = 0)] $adObjectEntry)
|
||||
|
||||
# $result = [System.Collections.Generic.List[object]]::new()
|
||||
# $result.AddRange(@(getObjectMemberships $adObjectEntry.ObjectName "user" "user"))
|
||||
|
||||
# $groupMemberships = @(getObjectMemberships $adObjectEntry.ObjectName "group" "group")
|
||||
# foreach ($groupMembership in $groupMemberships)
|
||||
# {
|
||||
# $result.AddRange(@(getObjectMemberships $groupMembership.MemberName "user" "group"))
|
||||
# }
|
||||
|
||||
# # ist beides gleich
|
||||
# # return ,$result.ToArray()
|
||||
# return @($result)
|
||||
# }
|
||||
|
||||
# function getObjectMemberships
|
||||
# {
|
||||
# param
|
||||
# (
|
||||
# [Parameter(Mandatory = $true, Position = 0)]
|
||||
# [String] $adObjectEntryName,
|
||||
# [Parameter(Mandatory = $true, Position = 1)]
|
||||
# [string] $memberShipType,
|
||||
# [Parameter(Mandatory = $true, Position = 2)]
|
||||
# [string] $memberShipOriginalType
|
||||
# )
|
||||
|
||||
# $objectMemberships = @($ADObjectMemberships | Where-Object {($_.GroupName -ieq $adObjectEntryName) -and ($_.MemberClass -ieq $memberShipType)})
|
||||
# # this is not very nice - we should only add members if they don´t exist - not just to set the values
|
||||
# $objectMemberships | Add-Member -Force "Origin" $memberShipOriginalType
|
||||
# $objectMemberships | Add-Member -Force "OriginName" $adObjectEntryName
|
||||
# return $objectMemberships
|
||||
# }
|
||||
|
||||
function getMembershipIndexKey
|
||||
{
|
||||
|
|
@ -164,16 +107,6 @@ function getMembershipIndexKey
|
|||
|
||||
function newObjectMembershipsIndex
|
||||
{
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Builds a lookup index over membership entries for O(1) retrieval by
|
||||
GroupName + MemberClass, replacing repeated linear Where-Object scans.
|
||||
.PARAMETER ADObjectMemberships
|
||||
The flat collection of membership entries to index.
|
||||
.OUTPUTS
|
||||
Hashtable mapping "<groupname>\0<memberclass>" (lowercased) to a
|
||||
List[object] of the matching entries. Object references are preserved.
|
||||
#>
|
||||
param
|
||||
(
|
||||
[Parameter(Mandatory = $true, Position = 0)]
|
||||
|
|
@ -185,16 +118,18 @@ function newObjectMembershipsIndex
|
|||
|
||||
foreach ($entry in $ADObjectMemberships)
|
||||
{
|
||||
# NUL separator avoids key collisions between e.g. "ab"+"c" and "a"+"bc"
|
||||
outLogVerbose 'foreach $entry in $ADObjectMemberships:' $entry.GroupName
|
||||
$key = getMembershipIndexKey $($entry.GroupName) $($entry.MemberClass)
|
||||
$key0 = "$($entry.GroupName)`0$($entry.MemberClass)".ToLowerInvariant()
|
||||
if (-not($key -eq $key0))
|
||||
{
|
||||
outLogVerbose 'if (-not($key -eq $key0)) -> true'
|
||||
throw "this is BAAAD"
|
||||
}
|
||||
$bucket = $index[$key]
|
||||
if ($null -eq $bucket)
|
||||
{
|
||||
outLogVerbose 'if ($null -eq $bucket) -> true'
|
||||
$bucket = [System.Collections.Generic.List[object]]::new()
|
||||
$index[$key] = $bucket
|
||||
}
|
||||
|
|
@ -213,27 +148,23 @@ function getRoleType
|
|||
[Parameter(Mandatory = $true, Position = 1)]
|
||||
[String] $typeTag
|
||||
)
|
||||
# $FileSystemAccessEntriesNew = @()
|
||||
$roleType = "unknown"
|
||||
# BUGFIX 2026-07-02: 'Sort-Object -Property "Order"' does not resolve hashtable keys on
|
||||
# Windows PowerShell 5.1 (silent no-op, declaration order preserved). The scriptblock
|
||||
# form works identically on 5.1 and 7, making rule evaluation order engine-independent.
|
||||
$relevantRoleTypes = $SPK.GroupManagementMappings | Where-Object {$_.OU -ieq $typeTag} | Sort-Object { [int]$_.Order }
|
||||
foreach ($relevantRoleType in $relevantRoleTypes)
|
||||
{
|
||||
outLogVerbose 'foreach $relevantRoleType in $relevantRoleTypes:' $relevantRoleType.TypeName
|
||||
if ($adObjectEntry.OldName -cmatch $relevantRoleType.TagRegExp)
|
||||
{
|
||||
outLogVerbose 'if ($adObjectEntry.OldName -cmatch $relevantRoleType.TagRegExp) -> true'
|
||||
$roleType = $relevantRoleType.TypeName
|
||||
break
|
||||
}
|
||||
}
|
||||
# Ausnahmebehandlungen in Absprache mit N.Zimmer am 21.01.2019
|
||||
#--------------------------------------------------------------
|
||||
if (($typeTag -ieq $FI.TypeTagSecurity) -and ($roleType -ieq "unknown"))
|
||||
{
|
||||
outLogVerbose 'if (($typeTag -ieq $FI.TypeTagSecurity) -and ($roleType -ieq "unknown")) -> true'
|
||||
$roleType = "GPO"
|
||||
}
|
||||
#--------------------------------------------------------------
|
||||
return $roletype
|
||||
}
|
||||
|
||||
|
|
@ -246,18 +177,19 @@ function buildPrefixMatcher
|
|||
|
||||
if (-not (Test-Path $CsvPath))
|
||||
{
|
||||
outLogVerbose 'if (-not (Test-Path $CsvPath)) -> true'
|
||||
throw "Prefix CSV not found: $CsvPath"
|
||||
}
|
||||
|
||||
# length -> HashSet[string] of prefixes with exactly that length
|
||||
$byLength = [System.Collections.Generic.Dictionary[int, System.Collections.Generic.HashSet[string]]]::new()
|
||||
|
||||
# foreach ($row in (Import-Csv -Path $CsvPath))
|
||||
foreach ($row in $SPK.ProfilPrefixes)
|
||||
{
|
||||
outLogVerbose 'foreach $row in $SPK.ProfilPrefixes:' $row
|
||||
$prefix = $row.Prefix
|
||||
if ([string]::IsNullOrEmpty($prefix))
|
||||
{
|
||||
outLogVerbose 'if ([string]::IsNullOrEmpty($prefix)) -> true'
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
@ -265,18 +197,15 @@ function buildPrefixMatcher
|
|||
$bucket = $null
|
||||
if (-not $byLength.TryGetValue($len, [ref] $bucket))
|
||||
{
|
||||
outLogVerbose 'if (-not $byLength.TryGetValue($len, [ref] $bucket)) -> true'
|
||||
$bucket = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::Ordinal)
|
||||
$byLength[$len] = $bucket
|
||||
}
|
||||
[void]$bucket.Add($prefix)
|
||||
}
|
||||
|
||||
# Pre-compute the distinct lengths once, sorted descending so the most specific
|
||||
# (longest) prefix wins first - mirrors the "specific before generic" ordering
|
||||
# of a well-formed elseif cascade.
|
||||
$lengths = $byLength.Keys | Sort-Object -Descending
|
||||
|
||||
# Return a small state object carrying both structures.
|
||||
return [pscustomobject]@{
|
||||
ByLength = $byLength
|
||||
Lengths = $lengths
|
||||
|
|
@ -294,40 +223,30 @@ function testKnownPrefixes
|
|||
|
||||
if ([string]::IsNullOrEmpty($Value))
|
||||
{
|
||||
outLogVerbose 'if ([string]::IsNullOrEmpty($Value)) -> true'
|
||||
return $false
|
||||
}
|
||||
|
||||
$valueLen = $Value.Length
|
||||
foreach ($len in $Matcher.Lengths)
|
||||
{
|
||||
outLogVerbose 'foreach $len in $Matcher.Lengths:' $len
|
||||
if ($len -gt $valueLen)
|
||||
{
|
||||
outLogVerbose 'if ($len -gt $valueLen) -> true'
|
||||
continue
|
||||
} # prefix longer than value -> can't match
|
||||
}
|
||||
$candidate = $Value.Substring(0, $len)
|
||||
$bucket = $Matcher.ByLength[$len]
|
||||
if ($bucket.Contains($candidate))
|
||||
{
|
||||
return $true # found a known prefix
|
||||
outLogVerbose 'if ($bucket.Contains($candidate)) -> true'
|
||||
return $true
|
||||
}
|
||||
}
|
||||
return $false
|
||||
}
|
||||
|
||||
# function getNormalizedDirectoryPaths
|
||||
# {
|
||||
# $analyzedDirectoryEntries = @()
|
||||
# # $header = "Verzeichnisname", "Endpunktname", "Gruppe Lesen", "Gruppe Aendern", "Benutzer mit Leserecht", "Benutzer mit Aenderungsrecht", "Rollen mit Leserecht", "Rollen mit Aenderungsrecht", "Verzeichnisart", "normierter Pfad"
|
||||
# # $directoriesFilePathEntries = Get-Content -Path $DirectoriesFilePath | Select-Object -Skip 1 | ConvertFrom-Csv -Delimiter ";" -Header $header
|
||||
# # $directoriesFilePathEntries = Get-Content -Path $DirectoriesInFilePath | Select-Object -Skip 1 | ConvertFrom-Csv -Delimiter ";"
|
||||
# $directoriesFilePathEntries = Get-Content -Path $DirectoriesInFilePath | ConvertFrom-Csv -Delimiter ";"
|
||||
# # $headers = ($directoriesFilePathEntries | Get-Member -MemberType NoteProperty)
|
||||
# # $interstingHeader = $headers.Name -match "Gruppe .ndern"
|
||||
# foreach ($FilePathEntry in $directoriesFilePathEntries)
|
||||
# {
|
||||
# $analyzedDirectoryEntries += $FilePathEntry.Name
|
||||
# }
|
||||
# }
|
||||
|
||||
|
||||
function postProcess
|
||||
|
|
@ -337,41 +256,10 @@ function postProcess
|
|||
[bool]$convertToAscii = $false
|
||||
)
|
||||
|
||||
#########################################################
|
||||
# just to be sure that nothing happens: comment it out until you know what`s happening here !
|
||||
#########################################################
|
||||
|
||||
# $tmpFilePath = moveToInstituteTmpPath $DAWGruppenAnlegenOutFilePath $true
|
||||
# $firstlines = Get-Content -Path $tmpFilePath -TotalCount 2
|
||||
# Get-Content -Path $tmpFilePath -TotalCount 1 | Out-File -Force $DAWGruppenAnlegenOutFilePath
|
||||
# Get-Content -Path $tmpFilePath | Select-Object -Skip 2 | ConvertFrom-Csv -Delimiter ";" | select 'GUIMandator', 'GUIADGroup.Name', 'GUIADGroup.Description', 'GUIMandatorADGroupType', 'GUIADGroup.DisplayName', 'GUIProcessingNote' | ConvertTo-Csv -Delimiter ';' -NoTypeInformation | Out-File -FilePath $DAWGruppenAnlegenOutFilePath -Encoding UTF8 -Append
|
||||
# # Import-Csv $tmpFilePath | select 'GUIMandator','GUIADGroup.Name','GUIADGroup.Description','GUIMandatorADGroupType','GUIADGroup.DisplayName','GUIProcessingNote' | Export-Csv -Path $DAWGruppenAnlegenOutFilePath -Delimiter ";" -Encoding UTF8
|
||||
|
||||
# $tmpFilePath = moveToInstituteTmpPath $DAWGruppenverwaltungOutFilePath $true
|
||||
# $firstlines = Get-Content -Path $tmpFilePath -TotalCount 2
|
||||
# Get-Content -Path $tmpFilePath -TotalCount 1 | Out-File -Force $DAWGruppenverwaltungOutFilePath
|
||||
# Get-Content -Path $tmpFilePath | Select-Object -Skip 2 | ConvertFrom-Csv -Delimiter ";" | select "GUIMandator", "GUIMandatorADGroupType", "GUIADGroup.LDAP", "GUIADGroup.ADGroups.Add.LDAPs", "GUIADGroup.ADGroups.Rem.LDAPs", "GUIADGroup.Accounts.Add.LDAPs", "GUIADGroup.Accounts.Rem.LDAPs", "GUIProcessingNote" | ConvertTo-Csv -Delimiter ';' -NoTypeInformation | Out-File -FilePath $DAWGruppenverwaltungOutFilePath -Encoding UTF8 -Append
|
||||
|
||||
# # Import-Csv $tmpFilePath | select "GUIMandator","GUIMandatorADGroupType","GUIADGroup.LDAP","GUIADGroup.ADGroups.Add.LDAPs","GUIADGroup.ADGroups.Rem.LDAPs","GUIADGroup.Accounts.Add.LDAPs","GUIADGroup.Accounts.Rem.LDAPs","GUIProcessingNote" | Export-Csv -Path $DAWGruppenverwaltungOutFilePath -Delimiter ";" -Encoding UTF8 -NoTypeInformation
|
||||
# $tmpFilePath = moveToInstituteTmpPath $DAWGruppenverwaltungNeuOutFilePath $true
|
||||
# $firstlines = Get-Content -Path $tmpFilePath -TotalCount 2
|
||||
# Get-Content -Path $tmpFilePath -TotalCount 1 | Out-File -Force $DAWGruppenverwaltungNeuOutFilePath
|
||||
# Get-Content -Path $tmpFilePath | Select-Object -Skip 2 | ConvertFrom-Csv -Delimiter ";" | select "GUIMandator", "GUIMandatorADGroupType", "GUIADGroup.LDAP", "GUIADGroup.ADGroups.Add.LDAPs", "GUIADGroup.ADGroups.Rem.LDAPs", "GUIADGroup.Accounts.Add.LDAPs", "GUIADGroup.Accounts.Rem.LDAPs", "GUIProcessingNote" | ConvertTo-Csv -Delimiter ';' -NoTypeInformation | Out-File -FilePath $DAWGruppenverwaltungNeuOutFilePath -Encoding UTF8 -Append
|
||||
|
||||
####################################################### todo ?
|
||||
# $KURSIstProfileOutFilePath
|
||||
# $KURSIstProfileBerechtigungenOutFilePath
|
||||
# $KURSIstStellenBerechtigungenOutFilePath
|
||||
# $KURSIstStellenProfileOutFilePath
|
||||
# $KURSIstOEsBerechtigungenOutFilePath
|
||||
# $KURSIstOEsProfileOutFilePath
|
||||
# $KURSIstMitarbeiterProfileOutFilePath
|
||||
# $KURSSollStellenfunktionenOutFilePath
|
||||
# $KURSSollProfileOutFilePath
|
||||
# $KURSSollProfileBerechtigungenOutFilePath
|
||||
# $KURSSollStellenfunktionenBerechtigungenOutFilePath
|
||||
# $KURSSollStellenfunktionenProfileOutFilePath
|
||||
####################################################### todo ?
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,48 +1,18 @@
|
|||
$Config = @{
|
||||
# DefaultInstitute = "Y013"
|
||||
# DefaultInstitute = "Q017"
|
||||
# DefaultInstitute = "Y058"
|
||||
# DefaultInstitute = "Y028"
|
||||
# DefaultInstitute = "P006"
|
||||
# DefaultInstitute = "P020"
|
||||
# DefaultInstitute = "R045"
|
||||
# DefaultInstitute = "E056"
|
||||
# DefaultInstitute = "Y019"
|
||||
# DefaultInstitute = "Y123"
|
||||
# DefaultInstitute = "Y015"
|
||||
DefaultInstitute = "R125"
|
||||
# DefaultInstitute = "Y087"
|
||||
# DefaultInstitute = "Q023"
|
||||
# DefaultInstitute = "P045"
|
||||
# DefaultInstitute = "P030"
|
||||
# DefaultInstitute = "P058"
|
||||
# DefaultInstitute = "Z019"
|
||||
# DefaultInstitute = "Z002"
|
||||
# DefaultInstitute = "Z001"
|
||||
# DefaultInstitute = "Z013"
|
||||
# DefaultInstitute = "P014"
|
||||
# DefaultInstitute = "Z101"
|
||||
|
||||
# Evaluation of "$Config.$DataPathTag" REALLY CAN`T WORK HERE, you stupid!!
|
||||
# DataPathTag = "Data"
|
||||
# DataRootPath = $PSScriptroot + "/" + $Config.$DataPathTag + "/"
|
||||
DataRootPath = $PSScriptroot + "/Data/"
|
||||
EmptyDescription = "### keine Beschreibung ###"
|
||||
NotAvailable = "N/A"
|
||||
#set TestMode to a value n greater than 0 to import only n entries for every ADObject-rolettype
|
||||
TestMode = 0
|
||||
TestMode = 3
|
||||
Verbose = $true
|
||||
ToScreen = $true
|
||||
Analyze = $false
|
||||
ProcessDAW = $true
|
||||
WriteKURS = $false
|
||||
TransferDAW = $false
|
||||
# PostProcess = $true --- DON'T DO THIS for now !!!
|
||||
PostProcess = $false
|
||||
FI = @{
|
||||
# put RootDomainName-Setting into $SPK, so there`s no need to do erroneous calcultations
|
||||
# RootDomainName = "V998DPV"
|
||||
# UserRolePrefix = "GGX"
|
||||
# ApplicationAccessGroupPrefix = "GGX"
|
||||
TypeTagRole = "AnwenderRollen"
|
||||
TypeTagAppConfiguration = "Anwendungskonfiguration"
|
||||
TypeTagAppAccess = "Anwendungszugriff"
|
||||
|
|
@ -51,7 +21,6 @@ $Config = @{
|
|||
TypeTagSecurity = "Sicherheitseinstellungen"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -61,11 +30,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -78,21 +42,11 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
#OU=Benutzergruppen
|
||||
#OU=Gruppen
|
||||
RelevantGroups =
|
||||
@{
|
||||
#AppAccess = @{Filter = "OU=Anwendungszugriff,OU=Benutzergruppen"; ShortCut = "A_" }
|
||||
#FilesystemAccess = @{Filter = "OU=Dateisystemzugriff,OU=Benutzergruppen"; ShortCut = "V_" }
|
||||
#AppConfiguration = @{Filter = "OU=Anwendungskonfiguration,OU=Benutzergruppen"; ShortCut = "AK_" }
|
||||
#Organisation = @{Filter = "OU=OrganisatorischeGruppen,OU=Benutzergruppen"; ShortCut = "O_" }
|
||||
#Security = @{Filter = "OU=Sicherheitseinstellungen,OU=Benutzergruppen"; ShortCut = "S_" }
|
||||
AppAccess = @{Filter = "OU=Anwendungszugriff,OU=Gruppen"; ShortCut = "A_" }
|
||||
FilesystemAccess = @{Filter = "OU=Dateisystemzugriff,OU=Gruppen"; ShortCut = "V_" }
|
||||
AppConfiguration = @{Filter = "OU=Anwendungskonfiguration,OU=Gruppen"; ShortCut = "AK_" }
|
||||
|
|
@ -102,11 +56,9 @@ $Config = @{
|
|||
}
|
||||
}
|
||||
SPK = @{
|
||||
#######
|
||||
R125 = @{ Region = "R"; No = "125"; Sign = "SK"; Name = "Leipzig"; RootDomainName = "V998DPVR"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -115,11 +67,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -132,15 +79,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
# BUGFIX 2026-07-02 (R125 only): Proxy rules moved to Order 130/140 (were 0/1).
|
||||
# Reason: 'Sort-Object -Property Order' on hashtables silently does NOT sort on
|
||||
# Windows PowerShell 5.1 (reference run) but DOES sort on PowerShell 7. With Order 0/1
|
||||
# these rules won on PS7 and 'R125GGX-Proxy*' got type 'Proxy' instead of the
|
||||
# reference value 'GPO'. Order 130/140 = evaluated after the GPO rules on both engines.
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 130 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 140 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -1556,11 +1495,9 @@ $Config = @{
|
|||
@{Prefix = "R125GGX-WG-Data_Alle"}
|
||||
)
|
||||
}
|
||||
#######
|
||||
Y015 = @{ Region = "Y"; No = "015"; Sign = "SK"; Name = "Neuwied"; RootDomainName = "V998DPVY"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -1569,11 +1506,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -1586,10 +1518,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -1608,12 +1537,9 @@ $Config = @{
|
|||
|
||||
}
|
||||
|
||||
#region OLD ################################################################################################
|
||||
#######
|
||||
Z999 = @{ Region = "Z"; No = "999"; Sign = "JPSK"; Name = "JPrise SparKURS"; RootDomainName = "V998DPVZ"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -1622,11 +1548,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -1639,10 +1560,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -1656,7 +1574,6 @@ $Config = @{
|
|||
P014 = @{ Region = "P"; No = "014"; Sign = "SLS"; Name = "Sparkass Langen-Seligenstadft"; RootDomainName = "V998DPVP"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0},
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0},
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1},
|
||||
|
|
@ -1670,10 +1587,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 2},
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Modul"; OU = "Sicherheitseinstellungen"; Order = 3},
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Fingerprint"; OU = "Sicherheitseinstellungen"; Order = 4},
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 6}
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -1687,7 +1601,6 @@ $Config = @{
|
|||
Z002 = @{ Region = "Z"; No = "002"; Sign = "SKNE"; Name = "Sparkasse Neuss"; RootDomainName = "V998DPVZ"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -1696,11 +1609,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -1713,10 +1621,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -1739,7 +1644,6 @@ $Config = @{
|
|||
Z004 = @{ Region = "Z"; No = "004"; Sign = "SSKD"; Name = "Sparkasse Duesseldorf"; RootDomainName = "V998DPVZ"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -1748,11 +1652,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -1765,10 +1664,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -1782,7 +1678,6 @@ $Config = @{
|
|||
Z101 = @{ Region = "Z"; No = "101"; Sign = "SKB"; Name = "Sparkasse Koeln-Bonn"; RootDomainName = "V998DPVZ"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -1791,11 +1686,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -1808,10 +1698,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -1825,7 +1712,6 @@ $Config = @{
|
|||
Z019 = @{ Region = "Z"; No = "019"; Sign = "SLS"; Name = "Sparkasse Essen"; RootDomainName = "V998DPVZ"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -1834,11 +1720,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -1851,10 +1732,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -1866,11 +1744,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
Q017 = @{ Region = "Q"; No = "017"; Sign = "LZO"; Name = "Sparkasse zu Oldenburg"; RootDomainName = "V998DPVP"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -1879,11 +1755,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -1896,10 +1767,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -1911,11 +1779,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
Y013 = @{ Region = "Y"; No = "013"; Sign = "KOB"; Name = "Sparkasse Koblenz"; RootDomainName = "V998DPVY"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -1924,11 +1790,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -1941,10 +1802,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -1956,11 +1814,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
Z001 = @{ Region = "Z"; No = "001"; Sign = "KRE"; Name = "Sparkasse Krefeld"; RootDomainName = "V998DPVZ"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -1969,11 +1825,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -1986,10 +1837,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2001,11 +1849,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
Z013 = @{ Region = "Z"; No = "013"; Sign = "MGL"; Name = "Sparkasse Moenchengladbach"; RootDomainName = "V998DPK1"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2014,11 +1860,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2031,10 +1872,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2046,11 +1884,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
Q023 = @{ Region = "Q"; No = "023"; Sign = "SOL"; Name = "Kreissparkasse Soltau"; RootDomainName = "V998DPVQ"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2059,11 +1895,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2076,10 +1907,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2091,11 +1919,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
P045 = @{ Region = "P"; No = "045"; Sign = "WEI"; Name = "Kreissparkasse Weilburg"; RootDomainName = "V998DPVP"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2104,11 +1930,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2121,10 +1942,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2136,11 +1954,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
P020 = @{ Region = "P"; No = "020"; Sign = "LIM"; Name = "Kreissparkasse Limburg"; RootDomainName = "V998DPVP"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2149,11 +1965,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2166,10 +1977,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2181,11 +1989,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
Y058 = @{ Region = "Y"; No = "058"; Sign = "BIT"; Name = "Kreissparkasse Bitburg-Pruem"; RootDomainName = "V998DPVY"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2194,11 +2000,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2211,10 +2012,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2226,11 +2024,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
Y087 = @{ Region = "Y"; No = "087"; Sign = "VUK"; Name = "Kreissparkasse Vulkaneifel"; RootDomainName = "V998DPVY"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2239,11 +2035,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2256,10 +2047,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2271,11 +2059,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
P006 = @{ Region = "P"; No = "006"; Sign = "KGG"; Name = "Kreissparkasse Gross Gerau"; RootDomainName = "V998DPVP"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2284,11 +2070,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2301,10 +2082,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2316,11 +2094,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
R045 = @{ Region = "R"; No = "045"; Sign = "KGG"; Name = "Sparkasse Westholstein"; RootDomainName = "V998DPVR"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2329,11 +2105,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2346,10 +2117,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2361,11 +2129,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
E056 = @{ Region = "E"; No = "056"; Sign = "SK"; Name = "Mainfranken"; RootDomainName = "V998DPVE"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2374,11 +2140,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2391,10 +2152,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2406,11 +2164,9 @@ $Config = @{
|
|||
)
|
||||
}
|
||||
|
||||
#######
|
||||
Y123 = @{ Region = "Y"; No = "123"; Sign = "SK"; Name = "Merzig-Wadern"; RootDomainName = "V998DPVY"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2419,11 +2175,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2436,10 +2187,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2453,11 +2201,9 @@ $Config = @{
|
|||
|
||||
|
||||
|
||||
#######
|
||||
Y019 = @{ Region = "Y"; No = "019"; Sign = "SK"; Name = "Rhein-Haardt"; RootDomainName = "V998DPVY"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2466,11 +2212,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2483,10 +2224,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2499,11 +2237,9 @@ $Config = @{
|
|||
}
|
||||
|
||||
|
||||
#######
|
||||
Y028 = @{ Region = "Y"; No = "028"; Sign = "AHR"; Name = "Kreissparkasse Ahrweiler"; RootDomainName = "V998DPVY"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2512,11 +2248,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2529,10 +2260,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2546,13 +2274,11 @@ $Config = @{
|
|||
|
||||
|
||||
|
||||
#######
|
||||
|
||||
|
||||
P030 = @{ Region = "P"; No = "030"; Sign = "FRASPA"; Name = "Sparkasse Frankfurt"; RootDomainName = "V998DPVP"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2561,11 +2287,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2578,10 +2299,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2595,7 +2313,6 @@ $Config = @{
|
|||
P058 = @{ Region = "P"; No = "058"; Sign = "KASPA"; Name = "Sparkasse Kassel"; RootDomainName = "V998DPVP"
|
||||
GroupManagementMappings =
|
||||
@(
|
||||
#use 'Order'-Property' to set the order of 'TagRegExp'-evaluation for 'OU's - from specific to generic !!!
|
||||
@{TypeName = "Role"; TagRegExp = "G.X-"; OU = "AnwenderRollen"; Order = 0 },
|
||||
@{TypeName = "IExplore"; TagRegExp = "GGX-IEK_"; OU = "Anwendungskonfiguration"; Order = 0 },
|
||||
@{TypeName = "Office"; TagRegExp = "GGX-OFK_"; OU = "Anwendungskonfiguration"; Order = 1 },
|
||||
|
|
@ -2604,11 +2321,6 @@ $Config = @{
|
|||
@{TypeName = "CustomerApplication"; TagRegExp = "GG.-"; OU = "Anwendungszugriff"; Order = 1 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EPEncr-"; OU = "Dateisystemzugriff"; Order = 0 },
|
||||
@{TypeName = "FileSystemAccessProd"; TagRegExp = "GDF-EP-"; OU = "Dateisystemzugriff"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
# "*GDT*" und "*GGD*" werden bei allen Sparkassen generell nicht betrachtet
|
||||
# @{TypeName = "GPO"; TagRegExp = "GDT-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# @{TypeName = "GPO"; TagRegExp = "GGD-SIA"; OU = "Sicherheitseinstellungen"; Order = 1 },
|
||||
# #####################################################################################################
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-IE-Support-Tools"; OU = "Sicherheitseinstellungen"; Order = 10 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGT-TS"; OU = "Sicherheitseinstellungen"; Order = 20 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGW-DL2"; OU = "Sicherheitseinstellungen"; Order = 30 },
|
||||
|
|
@ -2621,10 +2333,7 @@ $Config = @{
|
|||
@{TypeName = "GPO"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 100 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-Smartcard"; OU = "Sicherheitseinstellungen"; Order = 110 },
|
||||
@{TypeName = "GPO"; TagRegExp = "GGX-TCHelpdesk"; OU = "Sicherheitseinstellungen"; Order = 120 },
|
||||
# Spez. aber aktuell nicht vorhanden
|
||||
#{@Type = "GPOInd"; TagRegExp = "GGX-Ind-"; OU = "Sicherheitseinstellungen"; Order = 5},
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-PROXY"; OU = "Sicherheitseinstellungen"; Order = 0 },
|
||||
# nicht gemaess FI-Doku
|
||||
@{TypeName = "Proxy"; TagRegExp = "GGX-Proxy"; OU = "Sicherheitseinstellungen"; Order = 1 }
|
||||
)
|
||||
FileMappings =
|
||||
|
|
@ -2635,7 +2344,6 @@ $Config = @{
|
|||
@{SourceFileName = ""; TargetFileName = ""}
|
||||
)
|
||||
}
|
||||
#endregion OLD ################################################################################################
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
5
Process-ADObjects-Test.ps1
Executable file → Normal file
5
Process-ADObjects-Test.ps1
Executable file → Normal file
|
|
@ -1,5 +1,3 @@
|
|||
#Add-Type -Path "Syncfusion.XlsIO.Portable.dll"
|
||||
#Add-Type -Path "Syncfusion.Compression.Portable.dll"
|
||||
|
||||
function TestExcel {
|
||||
$inputFilePath = "/Users/edmond/Develop/PowerShell/BIT-BV/Data/Z999/In/bitBVTest.xlsx"
|
||||
|
|
@ -16,10 +14,11 @@ function TestExcel {
|
|||
$colCount = $workSheet.UsedRange.LastColumn
|
||||
|
||||
for ($i = 2; $i -le $rowCount; $i++) {
|
||||
outLogVerbose 'for ($i = 2; $i -le $rowCount; $i++) iteration:' $i
|
||||
for ($j = 1; $j -le $colCount; $j++) {
|
||||
outLogVerbose 'for ($j = 1; $j -le $colCount; $j++) iteration:' $j
|
||||
$value = $workSheet.Range[$i, $j].DisplayText
|
||||
$newValue = $value -replace "`n", " --- " -replace "`r", " --- " -replace ";", "--" -replace "`"", "'"
|
||||
# $newValue = convertUTF8ToASCII $newValue
|
||||
$workSheet.Range[$i, $j].Text = $newValue
|
||||
}
|
||||
}
|
||||
|
|
|
|||
128
Process-ADObjects-Utility.ps1
Executable file → Normal file
128
Process-ADObjects-Utility.ps1
Executable file → Normal file
|
|
@ -20,25 +20,106 @@ function getTimeStamp
|
|||
return $now.ToString($formatString)
|
||||
}
|
||||
|
||||
function openLog
|
||||
{
|
||||
param([string] $Path = $LogFileName)
|
||||
closeLog
|
||||
$parentDir = Split-Path -Parent $Path
|
||||
if ($parentDir -and -not (Test-Path $parentDir))
|
||||
{
|
||||
New-Item -ItemType Directory -Path $parentDir -Force | Out-Null
|
||||
}
|
||||
$Global:LogWriter = [System.IO.StreamWriter]::new(
|
||||
$Path, $true, [System.Text.UTF8Encoding]::new($false))
|
||||
$Global:LogWriter.AutoFlush = $true
|
||||
$Global:LogWriterPath = $Path
|
||||
}
|
||||
|
||||
function closeLog
|
||||
{
|
||||
if ($Global:LogWriter)
|
||||
{
|
||||
$Global:LogWriter.Flush()
|
||||
$Global:LogWriter.Dispose()
|
||||
$Global:LogWriter = $null
|
||||
$Global:LogWriterPath = $null
|
||||
}
|
||||
}
|
||||
|
||||
function outLogVerbose
|
||||
{
|
||||
if (-not $Config.Verbose)
|
||||
{
|
||||
return
|
||||
}
|
||||
outLog @args -ToScreen $false
|
||||
}
|
||||
|
||||
function outLog
|
||||
{
|
||||
[CmdletBinding(PositionalBinding = $false)]
|
||||
param
|
||||
(
|
||||
[Parameter(ValueFromRemainingArguments = $true)]
|
||||
[object[]] $Messages,
|
||||
[bool] $ToScreen = $true
|
||||
)
|
||||
$timestamp = Get-Date
|
||||
$outString = $timestamp.ToString("HH:mm:ss.mmm") + ": "
|
||||
for ($i = 0; $i -lt $args.count; $i++)
|
||||
$outString = $timestamp.ToString("HH:mm:ss.fff") + ": "
|
||||
if ($Messages)
|
||||
{
|
||||
$j = $i + 1
|
||||
$outString += $args[$i]
|
||||
$outString += ($Messages -join [Environment]::NewLine)
|
||||
}
|
||||
if ($previuosTime)
|
||||
{
|
||||
$outString += ($end - $start)
|
||||
$outString += [Environment]::NewLine + ($end - $start)
|
||||
}
|
||||
$outString | Tee-Object -FilePath $LogFileName -Append | Write-Host
|
||||
if (-not $Global:LogWriter -or $Global:LogWriterPath -ne $LogFileName)
|
||||
{
|
||||
openLog $LogFileName
|
||||
}
|
||||
$Global:LogWriter.WriteLine($outString)
|
||||
if ($ToScreen)
|
||||
{
|
||||
Write-Host $outString
|
||||
}
|
||||
}
|
||||
function removeDuplicatesFromSortedList
|
||||
{
|
||||
param
|
||||
(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[System.Collections.Generic.List[string]] $List,
|
||||
[Parameter(Mandatory = $false)]
|
||||
[string] $ListName = "list"
|
||||
)
|
||||
if ($List.Count -lt 2)
|
||||
{
|
||||
return
|
||||
}
|
||||
$unique = [System.Collections.Generic.List[string]]::new($List.Count)
|
||||
$previous = $null
|
||||
foreach ($entry in $List)
|
||||
{
|
||||
if ($entry -cne $previous)
|
||||
{
|
||||
$unique.Add($entry)
|
||||
$previous = $entry
|
||||
}
|
||||
}
|
||||
$removedCount = $List.Count - $unique.Count
|
||||
if ($removedCount -gt 0)
|
||||
{
|
||||
$List.Clear()
|
||||
$List.AddRange($unique)
|
||||
}
|
||||
outLog ($ListName + ": removed " + $removedCount + " duplicate lines, " + $List.Count + " remaining")
|
||||
}
|
||||
|
||||
function outScreen
|
||||
{
|
||||
$timestamp = Get-Date
|
||||
$outString = $timestamp.ToString("HH:mm:ss.mmm") + ": "
|
||||
$outString = $timestamp.ToString("HH:mm:ss.fff") + ": "
|
||||
for ($i = 0; $i -lt $args.count; $i++)
|
||||
{
|
||||
$j = $i + 1
|
||||
|
|
@ -57,28 +138,32 @@ function checkInput
|
|||
$spk = $spk.ToUpperInvariant()
|
||||
if ([string]::IsNullOrEmpty($spk))
|
||||
{
|
||||
outLogVerbose 'if ([string]::IsNullOrEmpty($spk)) -> true'
|
||||
if (isProbablyDevelopmentUser)
|
||||
{
|
||||
Write-Host "no given Institute (parameter '-sparkasse'), using default" $Config.DefaultInstitute
|
||||
outLogVerbose 'if (isProbablyDevelopmentUser) -> true'
|
||||
$spk = $Config.DefaultInstitute.ToUpperInvariant()
|
||||
}
|
||||
else
|
||||
{
|
||||
outLogVerbose 'else -> true (if/elseif (isProbablyDevelopmentUser) -> false)'
|
||||
while ($true)
|
||||
{
|
||||
outLogVerbose 'while ($true) -> true'
|
||||
$spk = $(Read-Host "please enter Institute Parameter (parameter '-sparkasse'), 'Ctrl-C for exit'" ).ToUpperInvariant()
|
||||
if ([string]::IsNullOrEmpty($spk))
|
||||
{
|
||||
outLogVerbose 'if ([string]::IsNullOrEmpty($spk)) -> true'
|
||||
continue
|
||||
}
|
||||
elseif (checkInstitute($spk))
|
||||
{
|
||||
outLogVerbose 'elseif (checkInstitute($spk)) -> true'
|
||||
break
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "this institute is not in our list of wellknown institutes: "
|
||||
Write-Host ($Config.SPK | Format-Table | Out-String)
|
||||
outLogVerbose 'else -> true (if/elseif (checkInstitute($spk)) -> false)'
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
|
@ -86,9 +171,7 @@ function checkInput
|
|||
}
|
||||
elseif (-not (checkInstitute($spk)))
|
||||
{
|
||||
# Write-Host "edmond"
|
||||
Write-Host "this institute is not in our list of wellknown institutes: "
|
||||
Write-Host ($Config.SPK | Format-Table | Out-String)
|
||||
outLogVerbose 'elseif (-not (checkInstitute($spk))) -> true'
|
||||
exit
|
||||
}
|
||||
return $spk
|
||||
|
|
@ -98,12 +181,12 @@ function checkInputSourceFiles
|
|||
{
|
||||
if (-not $InstitutsSourcePath)
|
||||
{
|
||||
Write-Host "Source file does not exist: " $InstitutsSourcePath
|
||||
outLogVerbose 'if (-not $InstitutsSourcePath) -> true'
|
||||
return $false
|
||||
}
|
||||
if (-not $InstitutsSourcePathKURS)
|
||||
{
|
||||
Write-Host "Source file does not exist: " $InstitutsSourcePathKURS
|
||||
outLogVerbose 'if (-not $InstitutsSourcePathKURS) -> true'
|
||||
return $false
|
||||
}
|
||||
return $true
|
||||
|
|
@ -114,36 +197,43 @@ function checkInputDataFiles
|
|||
$ok = $true
|
||||
if (-not $ADObjectsFilePath)
|
||||
{
|
||||
outLogVerbose 'if (-not $ADObjectsFilePath) -> true'
|
||||
outLog "no ADObjectsFile found !"
|
||||
$ok = $false
|
||||
}
|
||||
if (-not $ADObjectMembershipsFilePath)
|
||||
{
|
||||
outLogVerbose 'if (-not $ADObjectMembershipsFilePath) -> true'
|
||||
outLog "no ADObjectsFile found !"
|
||||
$ok = $false
|
||||
}
|
||||
if (-not $ADApplicationsInFilePath)
|
||||
{
|
||||
outLogVerbose 'if (-not $ADApplicationsInFilePath) -> true'
|
||||
outLog "no ADApplicationsInFile found !"
|
||||
$ok = $false
|
||||
}
|
||||
if (-not $ADDirectoriesInFilePath)
|
||||
{
|
||||
outLogVerbose 'if (-not $ADDirectoriesInFilePath) -> true'
|
||||
outLog "no ADDirectoriesInFile found !"
|
||||
$ok = $false
|
||||
}
|
||||
if (-not $SecurityInFilePath)
|
||||
{
|
||||
outLogVerbose 'if (-not $SecurityInFilePath) -> true'
|
||||
outLog "no SecurityInFile found !"
|
||||
$ok = $false
|
||||
}
|
||||
if (-not $KURSPositionsInFilePath)
|
||||
{
|
||||
outLogVerbose 'if (-not $KURSPositionsInFilePath) -> true'
|
||||
outLog "no KURSPositionsInFile found !"
|
||||
$ok = $false
|
||||
}
|
||||
if (-not $KURSEmployeesInFilePath)
|
||||
{
|
||||
outLogVerbose 'if (-not $KURSEmployeesInFilePath) -> true'
|
||||
outLog "no KURSEmployeesInFile found !"
|
||||
$ok = $false
|
||||
}
|
||||
|
|
@ -151,6 +241,7 @@ function checkInputDataFiles
|
|||
$ADObjectMembershipsFileTimeStamp = (Get-ChildItem $ADObjectMembershipsFilePath).BaseName.Split("_")[2]
|
||||
if ($ADObjectsFileTimeStamp -ne $ADObjectMembershipsFileTimeStamp)
|
||||
{
|
||||
outLogVerbose 'if ($ADObjectsFileTimeStamp -ne $ADObjectMembershipsFileTimeStamp) -> true'
|
||||
outLog "TimeStamps of latest input files found are not equal: ADObjectsFileTimeStamp:" $ADObjectsFileTimeStamp "ADObjectMembershipsFileTimeStamp: " $ADObjectMembershipsFileTimeStamp ", stopping process !"
|
||||
$ok = $false
|
||||
}
|
||||
|
|
@ -161,6 +252,7 @@ function checkTestMode
|
|||
{
|
||||
if ($Config.TestMode -gt 0)
|
||||
{
|
||||
outLogVerbose 'if ($Config.TestMode -gt 0) -> true'
|
||||
outLog "entering TestMode, reading the first" $Config.TestMode "ADObject-entries for every roletype"
|
||||
return $true
|
||||
}
|
||||
|
|
@ -173,12 +265,12 @@ function isProbablyDevelopmentUser
|
|||
$userName = [Environment]::UserName
|
||||
if ($userName -ieq "edmond")
|
||||
{
|
||||
Write-Host "developer" $userName "found"
|
||||
outLogVerbose 'if ($userName -ieq "edmond") -> true'
|
||||
return $true
|
||||
}
|
||||
elseif ($userName -ieq "burgwink")
|
||||
{
|
||||
Write-Host "developer" $userName "found"
|
||||
outLogVerbose 'elseif ($userName -ieq "burgwink") -> true'
|
||||
return $true
|
||||
}
|
||||
return $false
|
||||
|
|
@ -245,6 +337,7 @@ function moveToInstituteTmpPath
|
|||
$tmpFilePath = $InstituteRootPathTmp + "/" + $fileName
|
||||
if ($force)
|
||||
{
|
||||
outLogVerbose 'if ($force) -> true'
|
||||
Remove-Item -Path $tmpFilePath -ErrorAction Ignore
|
||||
}
|
||||
Move-Item -Path $filePath -Destination $InstituteRootPathTmp
|
||||
|
|
@ -288,6 +381,7 @@ function writeExceptionInfo
|
|||
|
||||
if ($Rethrow)
|
||||
{
|
||||
outLogVerbose 'if ($Rethrow) -> true'
|
||||
throw $ErrorRecord
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
51
Process-ADObjects-Work.ps1
Executable file → Normal file
51
Process-ADObjects-Work.ps1
Executable file → Normal 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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -203,8 +203,7 @@ if ($Config.Analyze)
|
|||
}
|
||||
|
||||
$importingTime = Get-Date
|
||||
# Write-Host "finished: importing at" $importingTime.ToString("yyyy.MM.dd-HH:mm:ss.mmm")", used" ($importingTime - $startTime)
|
||||
outLog "finished: importing at " $importingTime.ToString("yyyy.MM.dd-HH:mm:ss.mmm") ", used " ($importingTime - $startTime)
|
||||
outLog ("finished: importing at " + $importingTime.ToString("yyyy.MM.dd-HH:mm:ss.mmm") + ", used " + ($importingTime - $startTime))
|
||||
|
||||
"Name;Path;ShortCut;Description" | Out-File "$AppAccessTmpFilePath" -Encoding "utf8NoBom"
|
||||
"Name;Path;ShortCut;Description" | Out-File "$FilesystemAccessTmpFilePath" -Encoding "utf8NoBom"
|
||||
|
|
@ -223,14 +222,13 @@ $ADObjectsSecurity += prepareADObjectsByType $FI.TypeTagSecurity
|
|||
$ADObjectsRole += prepareADObjectsByType $FI.TypeTagRole
|
||||
|
||||
$preparingTime = Get-Date
|
||||
# Write-Host "finished: preparing at " $preparingTime.ToString("yyyy.MM.dd-HH:mm:ss.mmm")", used" ($preparingTime - $importingTime)
|
||||
outLog "finished: preparing at " $preparingTime.ToString("yyyy.MM.dd-HH:mm:ss.mmm") ", used " ($preparingTime - $importingTime)
|
||||
outlog "found " $ADObjectsOrganisation.Count " entries of type " $FI.TypeTagOrganisation
|
||||
outlog "found " $ADObjectsAppAccess.Count " entries of type " $FI.TypeTagAppAccess
|
||||
outlog "found " $ADObjectsFilesystemAccess.Count " entries of type " $FI.TypeTagFilesystemAccess
|
||||
outlog "found " $ADObjectsAppConfiguration.Count " entries of type " $FI.TypeTagAppConfiguration
|
||||
outlog "found " $ADObjectsSecurity.Count " entries of type " $FI.TypeTagSecurity
|
||||
outlog "found " $ADObjectsRole.Count " entries of type " $FI.TypeTagRole
|
||||
outLog ("finished: preparing at " + $preparingTime.ToString("yyyy.MM.dd-HH:mm:ss.mmm") + ", used " + ($preparingTime - $importingTime))
|
||||
outlog ("found " + $ADObjectsOrganisation.Count + " entries of type " + $FI.TypeTagOrganisation)
|
||||
outlog ("found " + $ADObjectsAppAccess.Count + " entries of type " + $FI.TypeTagAppAccess)
|
||||
outlog ("found " + $ADObjectsFilesystemAccess.Count + " entries of type " + $FI.TypeTagFilesystemAccess)
|
||||
outlog ("found " + $ADObjectsAppConfiguration.Count + " entries of type " + $FI.TypeTagAppConfiguration)
|
||||
outlog ("found " + $ADObjectsSecurity.Count + " entries of type " + $FI.TypeTagSecurity)
|
||||
outlog ("found " + $ADObjectsRole.Count + " entries of type " + $FI.TypeTagRole)
|
||||
|
||||
$processingTime = Get-Date
|
||||
|
||||
|
|
@ -272,7 +270,7 @@ if ($Config.WriteKURS)
|
|||
. $InstitutsSourcePathKURS
|
||||
WriteKURS
|
||||
$endTimeWriteKURS = Get-Date
|
||||
outLog "finished: processing WriteKURS at " $endTimeWriteKURS.ToString("HH:mm:ss.mmm")", used " ($endTimeWriteKURS - $startTimeWriteKURS)
|
||||
outLog ("finished: processing WriteKURS at " + $endTimeWriteKURS.ToString("HH:mm:ss.mmm") + ", used " + ($endTimeWriteKURS - $startTimeWriteKURS))
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -285,7 +283,7 @@ if ($Config.TransferDAW)
|
|||
. $InstitutsSourcePathDAW
|
||||
TransferDAW
|
||||
$endTimeTransferDAW = Get-Date
|
||||
outLog "finished: processing TransferDAW at " $endTimeTransferDAW.ToString("HH:mm:ss.mmm")", used " ($endTimeTransferDAW - $startTimeTransferDAW)
|
||||
outLog ("finished: processing TransferDAW at " + $endTimeTransferDAW.ToString("HH:mm:ss.mmm") + ", used " + ($endTimeTransferDAW - $startTimeTransferDAW))
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -297,7 +295,7 @@ if ($Config.PostProcess)
|
|||
$startTimePostProcess = Get-Date
|
||||
postProcess
|
||||
$endTimePostProcess = Get-Date
|
||||
outLog "finished: processing PostProcess at " $endTimePostProcess.ToString("HH:mm:ss.mmm")", used " ($endTimePostProcess - $startTimePostProcess)
|
||||
outLog ("finished: processing PostProcess at " + $endTimePostProcess.ToString("HH:mm:ss.mmm") + ", used " + ($endTimePostProcess - $startTimePostProcess))
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -306,9 +304,9 @@ else
|
|||
|
||||
|
||||
$endTime = Get-Date
|
||||
outLog "finished: processing at " $endTime.ToString("HH:mm:ss.mmm")", used " ($endTime - $processingTime)
|
||||
outLog "finished: ========================================================== " $endTime.ToString("yyyy.MM.dd-HH:mm:ss.mmm")
|
||||
outLog "used: "($endTime - $startTime)
|
||||
outLog ("finished: processing at " + $endTime.ToString("HH:mm:ss.mmm") + ", used " + ($endTime - $processingTime))
|
||||
outLog ("finished: ========================================================== " + $endTime.ToString("yyyy.MM.dd-HH:mm:ss.mmm"))
|
||||
outLog ("used: " + ($endTime - $startTime))
|
||||
|
||||
# }
|
||||
# finally
|
||||
|
|
|
|||
20
Test-ScriptSyntax.ps1
Normal file
20
Test-ScriptSyntax.ps1
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
# Test-ScriptSyntax.ps1 - parses all .ps1 files without executing them
|
||||
param([string] $Path = ".")
|
||||
|
||||
Get-ChildItem -Path $Path -Filter *.ps1 | ForEach-Object {
|
||||
$tokens = $null
|
||||
$errors = $null
|
||||
[System.Management.Automation.Language.Parser]::ParseFile(
|
||||
$_.FullName, [ref]$tokens, [ref]$errors) | Out-Null
|
||||
if ($errors.Count -gt 0)
|
||||
{
|
||||
Write-Output "FAIL: $($_.Name) ($($errors.Count) Fehler)"
|
||||
$errors | ForEach-Object {
|
||||
Write-Output (" Zeile {0}: {1}" -f $_.Extent.StartLineNumber, $_.Message)
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Output "OK: $($_.Name)"
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue