Das Kommandozeilen-Tool icacls zum Vergeben und Vererben von NTFS-Berechtigungen ist nicht so vollständig wie wünschenswert dokumentiert. Beisoielsweise vergibt der Parameter /grant:r (Benutzer):F zwar für den Benutzer Vollzugriff, jedoch nur als „spezielle“ Berechtigung.
Lösung:
Als Beispiel wollen wir den Vollzugriff für einen Ordner und alle enthaltenen Objekte vererben.
icacls <ordner>/inheritance:r /grant:r "<domaene>Gruppe":(OI)(CI)F /T
- /inheritance:r – Entfernt alle vererbten ACEs in diesem Ordner
- /grant:r „<domaene>Gruppe“:(OI)(CI)F – „Echter“ Vollzugriff für die Gruppe setzen
- /T – Rekursiv durch Unterordner und Dateien
Ein weiteres Beispiel aus der Praxis: Auf einem Zielordner muss ich ab und an mal alle wild gewuchterten (oder vom System beim Kopieren hinzugefügten) Rechte entfernen und eine saubere Rechtestruktur von oben nach unten vererben. Natürlich sollen dabei auch Besitzer-Rechte keine Rolle spielen und der Besitz durch den Admin (der ausführende) übernommen werden. Das Script wird mit dem Zielordner als Parameter gestartet (nimmrechte.cmd <ziel>). Achtung: Das ä ist schon ein ANSI-Ä, also Kommandozeilen-Kompatibel.
REM --- Besitz uebernehmen takeown /F %1 /R /D J REM --- Rechte korrekt setzen icacls %1 /inheritance:r /grant:r "<domaene>Dom„nen-Admins":(OI)(CI)F /T /grant "<domaene>%1":(OI)(CI)F /T /remove "benutzer" /t /remove "Ersteller-Besitzer" /remove "system" REM --- Vererbung innerhalb des Ordners wieder aktivieren icacls %1* /inheritance:e /T