15187
Goto Top

Suche Skript für automatische Besitzer-Änderung (NTFS)

Aufgabe: Migration auf neuen Fileserver (2008 R2) ist schief gelaufen. Alle homefolder sind jetzt aber kopiert, aber mit falschem Besitzer. Ändere für jeden der 200 Ordner den Besitzer

es muss doch sicher schon mal jemand auf folgende Idee gekommen sein: was tun, wenn man hunderte von Ordnern hat (homefolder von Usern), die mit dem Namen des Users benannt sind (%username%), deren Besitzer nach einem Serverumzug jedoch nicht mehr passen.
Ich rede [nicht davon, dass es ganz einfach ist, wenn man alles richtig macht (alten Server laufen lassen, GPO für Ordnerumleitung ändern, warten, bis sich 200 User angemeldet haben und ihre Daten auf den neuen Server verschoben sind), sondern eben] von einem Automatismus, mit dem ich den Besitzer auf denjenigen ändern kann, wie der Ordnername heißt.
Ein Skript, das den Namen des Ordners liest, mit icacls (stimmt's so?) den Besitzernamen einträgt (=Ordnername) und gleichzeitig noch die passende Berechtigung setzt.

Der gute Internetindex google führt mich hier auf ganz gute Ideen, jedoch keine ausgereift und lauffähig, oder die "gehässigen" Skripter face-wink geben bei Erfolg ihr Wissen nicht raus (ok, ich könnte mich noch in 1000 Foren registrieren und nachfragen...).

Die manuelle Korrektur ist dank Microsofts Sicherheitswahn nun noch umständlicher als unter Windows 200x, sodass ich irgendwie nicht wirklich Lust hab, damit anzufangen.

Wer nun statt Skript eine Idee hat, wie ich die Ordner mit den Usern als Besitzer auf andere Art und Weise hinbekomme, würde mir ebenfalls sehr weiterhelfen.
Ich dachte schon an ein Skript, das einen neuen Ordner anlegt und die Daten aus einer zweiten Freigabe raus-"move-t" - doch dabei wird der Benutzer nicht als Besitzer eingetragen.

Eine aufwendige Möglichkeit wäre, die homefolder zu verschieben, sich alle User neu anmelden lassen, und die Daten zurückkopieren - manuell oder per logonskript (xcopy \\server\home_org\%username% \\server\home\%username% /E). Den Zeitaufwand darf ich mir jedoch nicht mehr machen, denn das Projekt ist am Ende seiner Laufzeit angelangt.

Wer hat Ideen?

vg tc

Content-Key: 128572

Url: https://administrator.de/contentid/128572

Printed on: April 23, 2024 at 10:04 o'clock

Member: bastla
bastla Nov 03, 2009 at 22:26:30 (UTC)
Goto Top
Hallo turbocyclone!

Könnte mit folgendem (ungetesteten) Oneliner gehen:
for /d %i in ("D:\Home\*.*") do @echo icacls "%i" /setowner "Domain\%~nxi" /T && @echo icacls "%i" /grant "Domain\%~nxi":F /T
Das "echo" sorgt dafür, dass die jeweiligen "icacls"-Befehle (zum Testen) nur angezeigt werden - um sie ausführen zu lassen, anstelle von "@echo icacls" nur "@icacls" verwenden.

Falls die Zeile als Batch ausgeführt werden soll, jedes Prozentzeichen verdoppeln.

Grüße
bastla
Mitglied: 15187
15187 Nov 06, 2009 at 18:14:53 (UTC)
Goto Top
hallo bastla,

vielen Dank für deine Antwort. Ich probiere sie heute Abend mal im Labor aus und melde mich, wenn ich ein Ergebnis hab.
viele Grüße,
TC