Effektive Berechtigung des angemeldeten Users auf bestimmte Dateien oder Verzeichnisse aus Batch ermitteln
Hallo zusammen.
Ich habe mal eine Frage zur Batchprogrammierung. Und zwar bin ich in der Situation die effektive Berechtigung eines angemeldeten Users auf bestimmte Dateien und Ordner auslesen zu müssen und basierend darauf im Batch zu verzweigen. Aktuell habe ich noch keine richtige Idee wie ich das anstellen soll. Hat jemand von euch einen Vorschlag?
Bin für jede Hilfe dankbar.
VG
Markus
Ich habe mal eine Frage zur Batchprogrammierung. Und zwar bin ich in der Situation die effektive Berechtigung eines angemeldeten Users auf bestimmte Dateien und Ordner auslesen zu müssen und basierend darauf im Batch zu verzweigen. Aktuell habe ich noch keine richtige Idee wie ich das anstellen soll. Hat jemand von euch einen Vorschlag?
Bin für jede Hilfe dankbar.
VG
Markus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 600109
Url: https://administrator.de/forum/effektive-berechtigung-des-angemeldeten-users-auf-bestimmte-dateien-oder-verzeichnisse-aus-batch-ermitteln-600109.html
Ausgedruckt am: 10.04.2025 um 17:04 Uhr
5 Kommentare
Neuester Kommentar
Hi,
per Batch wird das nicht gehen. Max. mit PowerShell.
Aber auch hier nicht auf dem Silbertablett. Man müsste in etwa so:
oder
Dabei dann noch Verweigerungen und Gewährungen unterscheiden und ggf. die generellen Rechte in feingranulare aufschlüsseln.
E.
per Batch wird das nicht gehen. Max. mit PowerShell.
Aber auch hier nicht auf dem Silbertablett. Man müsste in etwa so:
- die verschachtelte Gruppenmitgliedschaft des Benutzers auslesen
- bestimmen, welche der ermittelten Gruppen für den Zielserver zutreffen (Stichworte "multi domain" und "group scope")
- dann die ACL des betreffenden Ordners auslesen
- mit der ermittelten Gruppenmitgliedschaft zusammenführen
oder
- ACL auslesen
- für jede einzelne ACE für die betreffende Gruppe die Mitglieder verschachtelt auflösen
- wenn aktueller Benutzer dabei, dann gilt die ACE für diesen Benutzer
Dabei dann noch Verweigerungen und Gewährungen unterscheiden und ggf. die generellen Rechte in feingranulare aufschlüsseln.
E.
Nimm https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk damit passt das auch in Batch und das recht unkompliziert.
Sowas hier für den Anfang vielleicht?
Der Account im Script muss dann entsprechend anpasst werden.
Der Account im Script muss dann entsprechend anpasst werden.
$CurrentDate = Get-Date
$CurrentDate = $CurrentDate.ToString('MM-dd-yyyy')
Function Get-Folder($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")|Out-Null
$Ordnername = New-Object System.Windows.Forms.FolderBrowserDialog
$Ordnername.Description = "Ordner auswählen"
$Ordnername.rootfolder = "MyComputer"
if($Ordnername.ShowDialog() -eq "OK")
{
$Ordner += $Ordnername.SelectedPath
}
return $Ordner
}
$folder = Get-Folder
Write-Host
Write-Host
Write-Host "Berechtigungsstruktur wird gelesen"
Write-Host "Liste wird erstellt. Bitte warten..."
Get-ChildItem –Path $folder –Recurse -Directory | Get-NTFSAccess | ?{$_.Account.Sid -notin @('S-1-5-18','S-1-5-32-544')} | select Fullname,Account,AccessRights,InheritedFrom | export-csv -Path C:\temp\Berechtigungsstruktur_$CurrentDate.csv -NoType -Encoding UTF8 -Delimiter ";"