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