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-Key: 306031

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

Printed on: April 26, 2024 at 03:04 o'clock

Mitglied: 129413
Solution 129413 Jun 02, 2016 updated at 12:35:32 (UTC)
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
Member: tg6300
tg6300 Jun 02, 2016 at 12:44:47 (UTC)
Goto Top
Hi skybird,

das war die Lösung! Jetzt funktioniert es!

Danke Dir.

Gruß tg6300
Member: tg6300
tg6300 Jun 02, 2016 at 13:19:29 (UTC)
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
Mitglied: 129413
129413 Jun 02, 2016 updated at 13:25:45 (UTC)
Goto Top
Zitat von @tg6300:
Hab ich da was übersehen??
Ja, die Inheritance (CI)(OI) face-smile
Member: tg6300
tg6300 Jun 02, 2016 at 13:58:03 (UTC)
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
Mitglied: 129413
129413 Jun 02, 2016 updated at 14:33:13 (UTC)
Goto Top
So gehört das ...
icacls "%dest%\%%i" /grant "Domäne\%%i:(CI)(OI)F" /T   

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