none
Ordnerrechte und Gruppenmitglieder in Beziehung setzen RRS feed

  • Allgemeine Diskussion

  • Hallo liebe Gemeinde,

    ich möchte per Powershell 1. Ordnerberechtigungen sowie 2. Mitglieder der Gruppen auslesen. Sodann beides in einer Datenbbank in Beziehung zueinander setzen um das ganze für die Chefetage visualisieren zu können. 

    Leider bekomme ich als Ergebnis zu 1: "Gruppenname"

    und als Ergebnis zu 2.: "Domain\Gruppenname" 

    Wie bekomme ich bei 1. das gleiche Ergebnis wie bei 2. hin?

    Vielen Dank

    Grüße

    Nick

    Nachfolgende Scripte (meinen Dank den Autoren) benutze ich:

    1.

    #// Get all AD groups in the domain 
    $ADGroups = Get-ADGroup -Filter * -SearchBase "OU=x, DC=y, DC=z, DC=com"
     
    #// Set progress bar variables 
    $i=0 
    $tot = $ADGroups.count 
     
    foreach ($ADGroup in $ADGroups) { 
    #// Set up progress bar 
    $i++ 
    $status = "{0:N0}" -f ($i / $tot * 100) 
    Write-Progress -Activity "Exporting AD Groups" -status "Processing Group $i of $tot : $status% Completed" -PercentComplete ($i / $tot * 100) 
     
    #// Get group members which are also groups and add to string
    $MembersArr = Get-ADGroup -filter {Name -eq $ADGroup.Name} | Get-ADGroupMember -recursive |  select Name
    if ($MembersArr) {
    foreach ($Member in $MembersArr) { 
    $HashTab = $NULL 
    $HashTab = [ordered]@{ 
    "Name" = $ADGroup.Name 
    "Category" = $ADGroup.GroupCategory 
    "Scope" = $ADGroup.GroupScope 
    "Members" = $Member.Name
    }
    #// Add hash table to CSV data array 
    $CSVOutput += New-Object PSObject -Property $HashTab
    }
    }
    }
     
    #// Export to CSV files 
    $CSVOutput | Sort-Object Name | Export-Csv $CSVFile -NoTypeInformation

     

    2.

    # Ordner der rekursiv gescannt werden soll
    $ORDNER = "g:\"
    
    function List-FolderRights{
        param(
            [parameter(mandatory=$true)][string]$RootFolder,
            [bool]$IncludeInheritedRights = $true
        )
        $accessrules = @()
        $folders = gci $RootFolder | ?{$_.PSIsContainer}
        foreach($folder in $folders){
            try{
                $acl = Get-Acl $folder.FullName
                $acl.GetAccessRules($true,$IncludeInheritedRights,[System.Security.Principal.NTAccount]) | %{
                    $accessrules += New-Object PSObject -Property @{
                        "Folder" = $folder.FullName
                        "Account" = $_.IdentityReference
                        "Rights" = $_.FileSystemRights
                        "AccessControlType" = $_.AccessControlType
                        "InheritanceFlags" = $_.InheritanceFlags
                    }
                }
            }catch{write-host $_.Exception.Message -ForegroundColor Red}
        }
        return $accessrules
    }
    
    $result = List-FolderRights $ORDNER -IncludeInheritedRights $false | sort Folder,Account | select Folder,Account
    
    Output to CSV
    $result | export-csv "C:\folderrights.csv" -NoType -Delimiter ";" -Encoding UTF8





    Freitag, 13. Dezember 2019 14:48

Alle Antworten

  • Bitte bearbeite Deine Frage nochmal und formatiere den Code als Code: How to Use the Code Feature in a TechNet Forum Post

    Nachfolgende Script (meinen Dank den Autoren) benutze ich:

    Du solltest keinen Code ungeprüft in Deiner produktiven Domäne ausführen, den Du nicht verstehst.

    $ADGroupList = Get-ADGroup -Filter * -SearchBase 'OU=DE-Baesweiler, DC=corp, DC=trumpf, DC=com' -Properties Members
    $Domain = (Get-ADDomain).Name
    $CSVOutput = foreach ($ADGroup in $ADGroupList) { 
        [PSCustomObject]@{
            Name     = "{0}\{1}" -f $Domain, $ADGroup.Name 
            Category = $ADGroup.GroupCategory 
            Scope    = $ADGroup.GroupScope 
            Members  = @($ADGroup.Members | ForEach-Object {$_.split(',')[0].split('=')[1]})
        }
    }
     
    $CSVOutput | 
        Sort-Object Name | 
            Export-Csv $CSVFile -NoTypeInformation


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    • Bearbeitet BOfH-666 Samstag, 14. Dezember 2019 01:03
    Samstag, 14. Dezember 2019 01:00