Batch-Skript, das Administratorrechte erteilt und alle Dateien und Ordner durchläuft

42489
nwgat

Ich habe das, ziemlich sicher, dass es ein bisschen hart ist, aber es erledigt die Aufgabe, gibt mir alle Rechte an den Dateien und Ordnern auf einem Laufwerk, wenn es auf einem Laufwerk ausgeführt wird. Jetzt brauche ich Hilfe, um es in Unterverzeichnisse zu bringen, also brauche ich es nicht um das bat-Skript in jeden Ordner zu kopieren und auszuführen

takeown /f * icacls * /grant Administrator:F icacls * /grant Administrators:F icacls * /grant SYSTEM:F icacls * /grant "Authenticated Users":F 

Wie würde ich es rekursiv durch das Laufwerk fahren lassen?

6

2 Antworten auf die Frage

7
Scott Chamberlain

Kurze Antwort: hinzufügen, /tum (i) cacls

Lange Antwort:

Hier ist mein Skript, das ich verwende, wenn die Datei für jeden Benutzer zugänglich sein soll. Es enthält Kommentare zu den einzelnen Flaggen. Legen Sie dies einfach in eine Batch-Datei im %AppData%Ordner.

REM --v2 ----------------------------------------------------------- takeown /r /d y /f %1 icacls %1 /t /grant Everyone:F  REM takeown /r /d y /f will set the owner to the Administrators group recursively. REM /t makes it recursive REM /grant Sets the permision to the following user, replaces existing permissions for the specified uesr. REM :f Grants full controll permission. REM ----------------------------------------------------------------  REM --v1 ----------------------------------------------------------- REM cacls %1 /t /e /g Everyone:f  REM /t makes it recursive REM /e Edits the ACL instead of replaceing it REM /g Grants permissions to the following users REM :f Grants full controll permission. REM ---------------------------------------------------------------- 

Dann %AppData%\Microsoft\Windows\SendToerstellen Sie eine Verknüpfung zum Batch-Skript.

Bearbeiten Sie die Eigenschaften dieser Verknüpfung und wählen Sie das Advanced...Kontrollkästchen ausRun as Administrator.

Jetzt in Ihrem right click menu -> Send Tofinden Sie ein Element namens haben Fix Permissionsjede Datei oder den Ordner, die Sie tun eine Send Toauf wird die Gruppe Jeder gegeben haben Full AccessBerechtigungen. Wenn Sie es für einen Ordner ausführen, wird es rekursiv durchlaufen und die Berechtigungen auf alle untergeordneten Objekte im Ordner angewendet.


Ich speichere die Stapeldatei im %AppData%Ordner, da ich mich in einer Domäne befinde. Dadurch wird sie Teil meines servergespeicherten Profils, sodass sie auf jedem Computer, auf dem ich eine Verbindung herstelle, verwendet werden kann.

Vielleicht möchten Sie auch "Takeown" hinzufügen. https://gist.github.com/972013 Sathya vor 12 Jahren 2
@Sathya sehr cool, habe davon noch nie etwas gehört, ich füge es meinem Skript hinzu Scott Chamberlain vor 12 Jahren 0
Sieht gut aus, Scott! Sathya vor 12 Jahren 0
Wie entfernen Sie die aktuellen Sicherheitseinstellungen für Ordner / Dateien, bevor Sie neue hinzufügen? nwgat vor 12 Jahren 0
@wiak mit `/ grant: r` anstelle von` / grant`. Ich wollte die vorhandenen beibehalten und der Gruppe "Jeder" die Option "Vollzugriff" hinzufügen. Scott Chamberlain vor 12 Jahren 0
Ich folge dieser genauen Methode, aber es funktioniert nicht wie hier beschrieben (http://stackoverflow.com/questions/11893844/senden-zu-afolder-over-to-a-batch-script-not-having -wie erwartet) laggingreflex vor 12 Jahren 0
fand dies, es funktioniert viel besser http://teejee2008.wordpress.com/2012/06/30/fixing-ntfs-file-permissions/ nwgat vor 11 Jahren 0
@wiak Für mich ist es so einfach, einfach ein Skript zu schreiben, das ich lieber mache, als einem Programm zu vertrauen, von dem ich nichts weiß. Auf diese Weise weiß ich genau, was auf meinem Computer passiert (insbesondere ein Programm, das ich als Administrator ausführen werde). Scott Chamberlain vor 11 Jahren 0
1
user259728

Funktioniert dies für Netzwerkfreigaben?

Takeown /f * icacls * /grant Administrator:F icacls * /grant Administrators:F icacls * /grant SYSTEM:F icacls * /grant "Authenticated Users":F icacls * /grant "doamin\users":R