Chmod/chown für Windows


#1

erstmal vor weg die randbedingung : die zielplatform ist das Win7-PE x64 aus dem aktuellen WAIK

worum es geht :
ich hab mir mit dem Win7-PE das WAIK eine kleine live-disc zusammen gebaut die ich gerne mal bei freunden zur system-vorbereitung bei neuen rigs oder auch als daten-retter bei system-ausfällen oder viren-befall nutze
enthalten sind natürlich alle spielerein wie daten-recovery oder auch key-manager um an “geschützte” bereiche ran zu kommen

was ich nun noch bräuchte wäre eine art CHMOD/CHOWN für dieses system
eigentlich ist es so das wenn man einen datenträger “extern” anspricht dieser kein aktives rechte system hat, zumindest nicht unter NTFS, so das also ein Windows-System-Drive über das PE komplett angesprochen werden können sollte

leider ist dem nicht der fall und mir passiert es häufig das ich, warum auch immer, auf files oder ordner keinen zugriff habe

meine idee wäre nun, ähnlich wie unter linux, das man das ganze nun so modifiziert das man das PE quasi als “root” fährt und so auf die partionen vollen zugriff hat um dann den eigentümer und die berechtigungen zurückzusetzen um wirklich vollen zugriff zu erhalten

mein frage ist nun erstmal : ist sowas überhaupt unter windows möglich ? und wenn ja : wie komplex wird sowas ?
mir würde es ja auch als kleines tool reichen was halt mit der sammlung liegt nach dem motto : “permission resetter” oder so …
wichtig nur : der code sollte sehr robust sein, also fehler nach möglichkeit einfach übergehen aber dennoch zum nachvollziehen protokollieren

hoffe das ganze ist jetzt nicht zu komplex, würde mich über jede hilfe freuen

ich frag nur deshalb hier da ich eigentlich aus der java-ecke komme und mit native-code wie C überhaupt nichts am hut hab, geschweige denn von system-spezifischer programierung


#2

Ich bin mir nicht sicher, ob ich dich richtig verstanden habe, aber unter Windows gibt es cacls bzw. das neuere icacls, mit dem du die Berechtigungen im NTFS ändern kannst, genau wie mit chmod und chown.
[inline]chown[/inline] entspricht [inline]ICACLS name /setowner user [/T] ``` [/L] [/Q][/inline]
[inline]chmod[/inline] entspricht

ICACLS name [/grant[:r] Sid:perm[...]]
       [/deny Sid:perm [...]]
       [/remove[:g|:d]] Sid[...]] [/T] ``` [/L] [/Q]
       [/setintegritylevel Level:policy[...]]

#3

erstmal danke für deine bemühungen
leider ist ICACLS unter WinPE 7 x64 nicht verfügbar
als ich aber die hilfe unter meinem system las stand dort was von "takeown"
hab das ganze ausprobiert und bin auf n einzeiler gekommen der genau das macht was ich möchte
FOR /R X:\ %a IN (*) DO takeown /F "%a"
ich hab es vorher auch mit der umgekehrten variante versucht
FOR %a IN (X:\*) DO takeown /F "%a" /R /D j
was aber leider nur die ordner in X: verändert hat

was auch sehr merkwürdig ist : obwohl auch in der deutschen hilfe für /D also mögliche parameter nur “N” und “Y” angegeben werden merkt die deutsche version das “Y” als falsch an, stattdessen muss man lokalisiert “J” verwenden

btw : man kann takeown auch noch den parameter “/A” geben um anstatt den user die group zu ändern
macht beim WinPE 7 x64 aber keinen unterschied