tg6300
Goto Top

Rechte per icacls setzen nach Kopieren

Hallo zusammen,

es geht um die Migration von Terminalserver-Profilen, welche auf einen neuen Profilserver kopiert werden sollen
und anschließend die Rechte auf die Ordner entsprechend gesetzt werden.
Dabei sind die zu kopierenden Profile in einer txt-Datei hinterlegt, welche mit "robocopy" ausgelesen und kopiert werden.

Das funktioniert soweit:

set src=c:\temp-src
set dest=c:\temp-dest

FOR /F "delims=" %%i in (c:\usr\list.txt) do robocopy /MIR %src%\%%i %dest%\%%i   

Jetzt habe ich folgende Zeile in das Script hinzugefügt:

icacls "%dest%\%%i" /grant "Domäne\%%i":F /T  


Dabei bekomme ich jedoch den Fehler:

Domäne\%i: Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt.
0 Dateien erfolgreich verarbeitet, bei 1 Dateien ist ein Verarbeitungsfehler aufgetreten.


Dabei wurde das Script unter einer Kennung mit administrativen Rechten ausgeführt.
Auch das half nicht face-sad.

Wie kann ich die Ordner entsprechend berechtigen? Mir gehen grad die Ideen aus...

Danke im Voraus.

Mfg tg6300

Content-ID: 306031

Url: https://administrator.de/forum/rechte-per-icacls-setzen-nach-kopieren-306031.html

Ausgedruckt am: 19.12.2024 um 15:12 Uhr

129413
Lösung 129413 02.06.2016 aktualisiert um 14:35:32 Uhr
Goto Top
Domäne\%i:
Der Fehlermeldung zu urteilen hast du die Klammern bei der FOR-Schleife vergessen, so dass die Laufvariable %%i eben nicht mehr verfügbar ist:

FALSCH:
FOR /F "usebackq delims=" %%i in ("c:\usr\list.txt") do robocopy "%src%\%%i" "%dest%\%%i" /MIR  
icacls "%dest%\%%i" /grant "Domäne\%%i":F /T  

RICHTIG:
FOR /F "usebackq delims=" %%i in ("c:\usr\list.txt") do (  
   robocopy "%src%\%%i" "%dest%\%%i" /MIR  
   icacls "%dest%\%%i" /grant "Domäne\%%i":F /T  
)
Gruß skybird
tg6300
tg6300 02.06.2016 um 14:44:47 Uhr
Goto Top
Hi skybird,

das war die Lösung! Jetzt funktioniert es!

Danke Dir.

Gruß tg6300
tg6300
tg6300 02.06.2016 um 15:19:29 Uhr
Goto Top
Hallo skybird,

auf ein kleines Problem bin noch gestoßen.
Eigentlich sollten doch mit dem Parameter "F" die Rechte des Zielordners auf Vollzugriff gesetzt werden.
Bei den darunterliegenden Files macht er das auch, aber am eigentlichen Ordners des Profiles steht
der Nutzer zwar dran, hat aber keinerlei Rechte.

Hab ich da was übersehen??

Gruß
tg6300
129413
129413 02.06.2016 aktualisiert um 15:25:45 Uhr
Goto Top
Zitat von @tg6300:
Hab ich da was übersehen??
Ja, die Inheritance (CI)(OI) face-smile
tg6300
tg6300 02.06.2016 um 15:58:03 Uhr
Goto Top
Dazu muss ich die Parameter doch in Klammern setzen. Da bleibt aber dann das Script mit Meldung stehen:

(OI)(F)" kann syntaktisch an dieser Stelle nicht verarbeitet werden.

Lass ich die Klammer(n) weg und setze nur "F", dann funktioniert es.
Könnte ich die erste Klammer auch gegen eine geschweifte Klammer ersetzen?

Gruß
tg6300
129413
129413 02.06.2016 aktualisiert um 16:33:13 Uhr
Goto Top
So gehört das ...
icacls "%dest%\%%i" /grant "Domäne\%%i:(CI)(OI)F" /T   

icacls /? eintippen und davon lernen ... face-wink