mcsenewcomer

Icacls mit FOR-Schleife

Hallo,

ich habe AD-User die bisher kein Home-Profil haben.
Ein Skript das mir die User-Ordner auf dem File-Server und DFS anlegen funktioniert.
Momentan klemmt es an den Berechtigungen.
Ich würde dies gerne via icacls mit einer Schleife realisieren die eine TXT ausließt in der die entsprechenden User stehen.

set Users=C:\Temp\script\Users.txt
FOR /F %%b in (%Users%) do 
(icacls \\SERVERNAME.DOMAINE.DE\USERS$\%%b /grant:r "DOMAIN.DE\%%b:(CI)(OI)(F)")  

Eine Fehlermeldung bekomme ich nicht - es werden einfach keine Rechte gesetzt.
Wenn ich den icacls-Befehl "händisch" mit einem Beispiel-User ausführe funktioniert es.
Was mache ich bei der FOR-Schleife falsch?


Danke
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 391043

Url: https://administrator.de/forum/icacls-mit-for-schleife-391043.html

Ausgedruckt am: 04.05.2025 um 14:05 Uhr

137443
137443 29.10.2018, aktualisiert am 30.10.2018 um 13:07:57 Uhr
Goto Top
ich habe AD-User die bisher kein Home-Profil haben.
Ein Skript das mir die User-Ordner auf dem File-Server und DFS anlegen funktioniert.
Wozu ein Skript dafür? Windows legt die Ordner automatisch beim ersten Anmelden mit richtigen Berechtigungen an wenn man den Usernamen als Umgebungs-Variable (%username%) mit im Pfad
der AD Home-Directory Eigenschaft angibt, dann entfällt nämlich auch das nachträgliche Anpassen der Berechtigungen des Verzeichnisses!
https://www.faqforge.com/windows-server-2012-r2/set-correct-permissions- ...
https://www.gruppenrichtlinien.de/artikel/ordnerumleitung-2-berechtigung ...
Also gleich richtig machen face-wink.

Noch zurück zur FOR-Schleife:
set "Users=C:\Temp\script\Users.txt"  
for /F "usebackq delims=" %%a in ("%Users%") do icacls "\\SERVERNAME.DOMAINE.DE\USERS$\%%a" /grant:r "DOMAIN.DE\%%a:(CI)(OI)F"  
Gruß l.
emeriks
emeriks 29.10.2018 um 18:17:04 Uhr
Goto Top
Hi,
\\SERVERNAME.DOMAINE.DE\USERS$\%%b
suggeriert mir, TO meint Homedirectory.

Falls der Basispfad für alle Benutzer gleich ist, geht es für legasthenische Maustippser wie mir auch so:
  1. In der AD-MMC alle User einer OU auswählen
  2. Menü "Eigenschaften"
  3. bei Homedirectory den Haken setzen und eingeben: \\SERVERNAME.DOMAINE.DE\USERS$\%username%
  4. speichern
Jetzt erstellt die MMC für alle Benutzer, wo der Ordner noch nicht existiert, den Ordner und trägt auch die Berechtigungen ein.

E.
MCSEnewcomer
MCSEnewcomer 30.10.2018 um 12:31:51 Uhr
Goto Top
Danke für deinen Hinweis.
Soweit ich weiß, kann man bei dem Pfad aber keine DFS-Namespace angeben oder? Jedenfalls laufe ich hier in eine Fehlermeldung.

Nochmal zurück zur FOR-SCHleife face-smile
Bei deinem Lösungsvorschlag habe ich das gleiche Problem - es wird ausgeführt aber es passiert einfach nichts....

set "Users=C:\Temp\script\Users.txt"   
for /F "usebackq delims=" %%a in ("%Users%") do icacls "\\SERVERNAME.DOMAINE.DE\USERS$\%%a" /grant:r "DOMAIN.DE\%%b:(CI)(OI)F"  

Kann es sein das ich den Inhalt der "Users.txt" falsch angebe? Muss hier ggf. noch ein Header o.ä. gesetzt werden?

Zurzeit ist die TXT mit den Anmeldename für Prä-Windows 2000 gefüllt und schaut so aus:
Max.Meier
Miriam.Becker
Peter.Hofmann
emeriks
emeriks 30.10.2018 um 13:07:12 Uhr
Goto Top
Was ist %%b ? In der For-Anweisung benutzt Du doch %%a.
MCSEnewcomer
MCSEnewcomer 30.10.2018 um 13:44:01 Uhr
Goto Top
sorry hatte dort natürlich %%a stehen...
Irgendwie bekommt er die USER nicht aus der txt-Datei....
MCSEnewcomer
MCSEnewcomer 30.10.2018 um 13:57:53 Uhr
Goto Top
"Fehler" gefunden - sollte es überhaupt einer sein...

Habe bei meinem Ursprungsscript

set Users=C:\Temp\script\Users.txt 
FOR /F %%b in (%Users%) do (icacls \\SERVERNAME.DOMAINE.DE\USERS$\%%b /grant:r "DOMAIN.DE\%%b:(CI)(OI)(F)")   

Anstatt einer TXT einfach eine CSV genutzt.

set Users=C:\Temp\script\Users.csv
FOR /F %%b in (%Users%) do (icacls \\SERVER.DOMAIN.DE\USERS$\%%b /grant:r " DOMAIN\%%b:(CI)(OI)(F)")  
pause

Danke für eure Unterstützung.
137443
137443 30.10.2018 aktualisiert um 14:48:51 Uhr
Goto Top
Anstatt einer TXT einfach eine CSV genutzt.
Nö das macht keinen Unterschied, dann hatte deine Textdatei bestimmt das falsche Encoding.
MCSEnewcomer
MCSEnewcomer 30.10.2018 um 15:27:46 Uhr
Goto Top
Zitat von @137443:

falsche Encoding.

Muss ich beim Scripten generell darauf achten wie eine TXT codiert ist bzw. wie mache ich das?
Sorry beim Scripten bin ich Neuling...
137443
Lösung 137443 30.10.2018 aktualisiert um 15:32:03 Uhr
Goto Top
Zitat von @MCSEnewcomer:
Muss ich beim Scripten generell darauf achten wie eine TXT codiert ist bzw. wie mache ich das?
Sorry beim Scripten bin ich Neuling...
Jap. Bei Batchen besonders.
https://ss64.com/nt/chcp.html