Geerbte Berechtigungen werden beim Verschieben von Ordnern nicht automatisch aktualisiert.

Dieser Artikel bietet eine Lösung für ein Problem, bei dem geerbte Berechtigungen beim Verschieben von Ordnern nicht automatisch aktualisiert werden.

Gilt für: Windows Server 2012 R2
Ursprüngliche KB-Nummer: 320246

Symptome

Eine Access Control List (ACL) kann Berechtigungen anzeigen, die als vom übergeordneten Element geerbt gekennzeichnet sind, aber für das übergeordnete Element selbst sind diese Berechtigungen möglicherweise nicht in seiner ACL konfiguriert. Dieses Symptom kann auftreten, obwohl die Vererbung noch aktiviert ist. Jede nachfolgende Änderung der ACL des übergeordneten Ordners bewirkt, dass die ACL des untergeordneten Elements die geerbten Berechtigungen erhält. Außerdem bewirkt jeder Versuch, die ACL des untergeordneten Elements zu ändern, dass die Vererbung angewendet wird (es sei denn, die Änderung markiert die ACL als vor Vererbung geschützt). Dieses Verhalten kann überraschend sein, wenn der Vererbungszustand nicht notiert wurde, bevor Sie mit der Bearbeitung der ACL beginnen.

Hinweis

Dieses Verhalten kann nicht durch das Verschieben eines Ordners verursacht werden, wenn Sie einen Windows Vista-basierten Computer ausführen. Der Verschiebungsvorgang funktioniert jetzt, da der Ordner oder die Datei die ACL des Zielordners oder der Zieldatei erben kann. Der Ordner oder die Datei verfügt auch über Berechtigungen, die als vom übergeordneten Element geerbt gekennzeichnet sind. Dies ist eine Entwurfsänderung von Windows XP zu Windows Vista und Windows Server 2008.

Ursache

Dieses Verhalten kann durch das Verschieben eines Ordners verursacht werden. Wenn Sie einen Ordner verschieben, wird die Zugriffssteuerungsliste nicht geändert, und die geerbten Berechtigungen werden nicht aktualisiert. Beachten Sie, dass verschieben im Kontext dieses Artikels immer bedeutet, innerhalb desselben Volumes zu verschieben.

Wenn Sie eine Datei oder einen Ordner verschieben, wird auch die Zugriffssteuerungsliste verschoben und in keiner Weise geändert. Auch wenn die Vererbung für diesen Ordner aktiviert ist, werden die geerbten Berechtigungen nicht automatisch aktualisiert. Die Zugriffssteuerungsliste wird beim nächsten Ändern der Berechtigungen aktualisiert, und dies zwingt das übergeordnete Element, seine Berechtigungen weiterzuverbreiten.

Dieses Verhalten kann auch durch Folgendes verursacht werden:

  • Das Festlegen der Berechtigungen eines übergeordneten Ordners mithilfe von CACLS wird nicht an die Unterordner weitergegeben. Die Option /T bedeutet nicht, dass die Rechte mithilfe von Vererbung weitergegeben werden, sondern alle ACLs überschrieben werden.

  • Festlegen der Berechtigungen eines übergeordneten Ordners mithilfe einer API, die die Vererbung nicht automatisch weitergibt (z. B. Adssecurity.dll).

  • Wiederherstellung aus einer Sicherung an einem anderen Speicherort.

Lösung

Um unerwartete Berechtigungsänderungen zu vermeiden, legen Sie die ACL der Datei/des Ordners auf geschützt fest, bevor Sie verschieben, wenn Sie die Einstellungen beibehalten möchten. Aktualisieren Sie andernfalls die ACL der verschobenen Datei/des verschobenen Ordners mithilfe des Explorer-ACL-Editors manuell. Deaktivieren Sie die Vererbung, und aktivieren Sie sie dann erneut, um zu erzwingen, dass die ACL mit den richtigen geerbten Berechtigungen aktualisiert wird. Sie können auch ein VBScript verwenden, um diesen Prozess zu automatisieren.

Status

Es handelt sich hierbei um ein beabsichtigtes Verhalten. Dieses Verhalten tritt aufgrund der Entwurfsänderung in Windows Vista nicht auf.

Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie einen Test1-Ordner mit den Berechtigungen "everyone:read " und " users:change ".
  2. Erstellen Sie einen Unterordner test1\, und aktivieren Sie die Vererbung aus dem übergeordneten Element (Standard). In diesem Ordner sollten "everyone:read" und " users:change " als geerbte Berechtigungen angezeigt werden.
  3. Erstellen Sie einen weiteren Ordner test2 mit nur administrator:vollzugriffsberechtigungen .
  4. Verschieben Sie den Unterordner in test2.
  5. Zeigen Sie die Berechtigungen für test2\sub an, um "everyone:read " und " users:change " als geerbte Berechtigungen anzuzeigen, obwohl die übergeordnete Berechtigung administrators:full control ist.
  6. Fügen Sie der ACL der Unterlizenzierung eine weitere Gruppe/Einen weiteren Benutzer (z. B. Gast) hinzu, z. B. Lesezugriff mithilfe des Explorer-ACL-Editors. Nachdem Sie auf Anwenden geklickt haben, werden alle:read und users:change entfernt, und nur administrators:full control wird als geerbte Berechtigungen neben der soeben hinzugefügten angezeigt.