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
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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue