Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Ordnerrechte und Gruppenmitglieder in Beziehung setzen

$
0
0

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 Script (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



Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>