Hallo,
mein Problem ist das ändern von NTFS Berechtigungen für bestimmte Unterverzeichnisse in ProgramFiles (Programme und Programme (x86)) sowie ProgramData unter Win 7. Hier ist was ich bisher habe.
Das Problem liegt darin, dass die Unterverzeichnisse von den übergeordneten erben. Der Code oben funzt gut bei Verzeichnissen, die nicht von oben erben. Auch neue Verzeichnisse direkt unter C:\ können geändert werden. In der GUI kann man diese Vererbung ja einfach unterbrechen, aber ich weiß nicht wie ich das per Code hinkriegen kann.
Ich habe mir in MSDN schon nen Wolf angelesen, aber es will einfach net klappen. Soweit ich das Verstanden habe, sind die InheritanceFlags für das erben der ACE's von übergeordneten Objekten zuständig (wobei die Formulierung dazu in MSDN für mich nicht ganz klar ist). Das wäre eigentlich was ich brauche, nur funzt es nicht. Die PropagationFlags dagegen sind für das weitervererben der ACE's an untergeordnete Objekte zuständig (hier ist die Formulierung in MSDN klar). Wie dem auch sei, ich hab schon alle möglichen Kombinationen dieser Flags ausprobiert, aber die neuen Rechte werden meinem Verzeichnis nicht hinzugefügt. Es gibt auch keine Fehlermeldung - es passiert einfach gar nix. Kann mir dabei jemand helfen?
Danke
gonzo
mein Problem ist das ändern von NTFS Berechtigungen für bestimmte Unterverzeichnisse in ProgramFiles (Programme und Programme (x86)) sowie ProgramData unter Win 7. Hier ist was ich bisher habe.
VB.NET-Quellcode
- Private Sub SetFolderNTFSPermissions(FolderPath As String, UserAccount As String)
- Dim FolderInfo As IO.DirectoryInfo = New IO.DirectoryInfo(FolderPath)
- Dim FolderAcl As New DirectorySecurity
- FolderAcl.AddAccessRule(New FileSystemAccessRule(UserAccount, FileSystemRights.Modify, InheritanceFlags.None, PropagationFlags.None, AccessControlType.Allow))
- 'FolderAcl.SetAccessRuleProtection(True, False) 'Kommentar entfernen um vorhandene Berechtigungen zu löschen
- FolderInfo.SetAccessControl(FolderAcl)
- End Sub
Das Problem liegt darin, dass die Unterverzeichnisse von den übergeordneten erben. Der Code oben funzt gut bei Verzeichnissen, die nicht von oben erben. Auch neue Verzeichnisse direkt unter C:\ können geändert werden. In der GUI kann man diese Vererbung ja einfach unterbrechen, aber ich weiß nicht wie ich das per Code hinkriegen kann.
Ich habe mir in MSDN schon nen Wolf angelesen, aber es will einfach net klappen. Soweit ich das Verstanden habe, sind die InheritanceFlags für das erben der ACE's von übergeordneten Objekten zuständig (wobei die Formulierung dazu in MSDN für mich nicht ganz klar ist). Das wäre eigentlich was ich brauche, nur funzt es nicht. Die PropagationFlags dagegen sind für das weitervererben der ACE's an untergeordnete Objekte zuständig (hier ist die Formulierung in MSDN klar). Wie dem auch sei, ich hab schon alle möglichen Kombinationen dieser Flags ausprobiert, aber die neuen Rechte werden meinem Verzeichnis nicht hinzugefügt. Es gibt auch keine Fehlermeldung - es passiert einfach gar nix. Kann mir dabei jemand helfen?
Danke
gonzo