WiZdooM
Erfahrenes Mitglied
Hallo,
ich programmiere gerade ein kleines Werkzeug, dass in einem rekursiven Aufruf alle Unterverzeichnisse eines gegebenen Verzeichnisses auflistet. So far no problem.
Nun soll ich damit aber für jedes Verzeichnis alle NTFS-Berechtigungen für die zugewiesenen Gruppen und Benutzer auslesen. Ich hab nur keine Peilung wie, oder zumindest nicht die richtige Peilung.
Es gibt eine DirectorySecurity Klasse die mit GetAccessControl ein Verzeichnis-Objekt ausliest. Aber ich weiß nicht wie ich jetzt von dort an den sAMAccountName bzw. Gruppennamen und die jeweiligen Berechtigungen komme.
Hat da jemand in der Richtung schonmal was gemacht und kann mir einen Tip geben?
Edit:
Ich habe eine Lösung gefunden. Mit Hilfe des DirectorySecurity Objekts lassen sich die Berechtigungen wie folgt für ein gegebenes Verzeichnis auslesen:
ich programmiere gerade ein kleines Werkzeug, dass in einem rekursiven Aufruf alle Unterverzeichnisse eines gegebenen Verzeichnisses auflistet. So far no problem.
Nun soll ich damit aber für jedes Verzeichnis alle NTFS-Berechtigungen für die zugewiesenen Gruppen und Benutzer auslesen. Ich hab nur keine Peilung wie, oder zumindest nicht die richtige Peilung.
Es gibt eine DirectorySecurity Klasse die mit GetAccessControl ein Verzeichnis-Objekt ausliest. Aber ich weiß nicht wie ich jetzt von dort an den sAMAccountName bzw. Gruppennamen und die jeweiligen Berechtigungen komme.
Hat da jemand in der Richtung schonmal was gemacht und kann mir einen Tip geben?
Edit:
Ich habe eine Lösung gefunden. Mit Hilfe des DirectorySecurity Objekts lassen sich die Berechtigungen wie folgt für ein gegebenes Verzeichnis auslesen:
Code:
DirectorySecurity directorySecurity = Directory.GetAccessControl(currentDirectory);
foreach (FileSystemAccessRule fileSystemAccessRule in directorySecurity.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
{
string userName = fileSystemAccessRule.IdentityReference.Value;
string userRights = fileSystemAccessRule.FileSystemRights.ToString();
Console.Writeline(userName+": "+userRights);
}
Zuletzt bearbeitet: