So kopieren Sie Berechtigungen von einem Ordner in einen anderen mit unterschiedlichem Inhalt

So kopieren Sie Berechtigungen von einem Ordner in einen anderen mit unterschiedlichem Inhalt

Dank der hier verfügbaren Antworten weiß ich, wie ich die Berechtigungen eines identischen Ordners mithilfe von icacls /save & /restoreoder replizieren robocopy /MIRkann. Aber ich kann sie nicht dazu bringen, die gleichen Benutzerberechtigungen von einem Ordner auf einen Zielordner mit anderem Inhalt zu übertragen. Mit ìcacls /restoreerhält der Zielordner immer noch die Benutzerberechtigung, die er von seinem übergeordneten Ordner erbt (obwohl ich die Vererbung bereits explizit deaktiviert habe).

Mein Anwendungsfall ist, dass ich einen portablen App-Ordner habe und dieser nicht richtig läuft, wenn ich ihn in diesen problematischen Unterordner lege, aber er funktioniert vollständig, wenn ich ihn in das Stammverzeichnis desselben Laufwerks D:\ lege. Mein Ordnerpfad enthält keine „verbotenen“ Zeichen wie % ^ etc., nur Buchstaben und außerdem ist der Pfad nicht besonders lang.

Gibt es eine Möglichkeit, Berechtigungen schnell von einem bekannten guten Ort in einen Zielordner zu replizieren? Bitte helfen Sie.

Vielen Dank.

Illustration

Antwort1

BEARBEITEN:

Entschuldigen Sie die Eile beim Posten.

Nach nochmaliger Überprüfung hier alles was ich gefunden habe:

  • Der robocopyBefehl weist den darin enthaltenen Dateien oder Unterordnern keine Berechtigung zu. Daher ist dieser zusätzliche Schritt erforderlich (unter Windows 10): Folder properties > Security tab > Advanced > Permission = Check the box at "Replace all child object permission entries with inheritable permission entries from this object"
  • Icacls /savedann Icacls /restorefunktioniert es tatsächlich auch. Aber es wendet den Ordnervererbungsstatus an. Wenn die „Quelle“ die Vererbung aktiviert hat, wird die Vererbung auch im Zielordner aktiviert (von seinem übergeordneten Ordner, nicht vom übergeordneten Ordner der Quelle). Daher muss die Ordnervererbung für die „Quelle“ vorübergehend deaktiviert werden.

*)Ich denke, es ist besser, dies nicht zu tun, um zu vermeiden, dass die Quelle beschädigt wird, wenn etwas schief geht oder vergessen wird, alle Änderungen an der „Quelle“ rückgängig zu machen.

  • Ich teste nicht weiter mit Powershell get-acl -path | set-acl -path, aber vorher habe ich festgestellt, dass es funktioniert wieicacls /restore

Für meinen Anwendungsfall wähle ich den Befehl robocopy. Insbesondere nachdem ich dies gefunden habehttps://serverfault.com/questions/475612/replace-permission-entries-on-all-child-objects-using-icacls. Ich teste das nicht, sondern stelle mir nur vor, dass man das zu einem einzeiligen cmd-Befehl wie diesem kombinieren kann:

robocopy d:\source_folder_permission destination_folder_permission /e /sec /secfix /xc /xn /xo /xx /xl & icacls "destination_folder_permission\*" /q /c /t /reset

Das ist alles. Prost :)


Endlich! Ich habe die Traumantwort gefunden. Danke an diesen TypenKopieren von Berechtigungen nur mit Robocopy

Dies ist der Beispielbefehl robocopy:

robocopy d:\source_folder_permission destination_folder_permission /e /sec /secfix /xc /xn /xo /xx /xl

Ich führe es als Administrator aus.

Hoffe, das ist für alle wertvoll. Schönen Tag!

verwandte Informationen