mcsenewcomer
Goto Top

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

Content-Key: 391043

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

Printed on: May 4, 2024 at 12:05 o'clock

Mitglied: 137443
137443 Oct 29, 2018, updated at Oct 30, 2018 at 12:07:57 (UTC)
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.
Member: emeriks
emeriks Oct 29, 2018 at 17:17:04 (UTC)
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.
Member: MCSEnewcomer
MCSEnewcomer Oct 30, 2018 at 11:31:51 (UTC)
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
Member: emeriks
emeriks Oct 30, 2018 at 12:07:12 (UTC)
Goto Top
Was ist %%b ? In der For-Anweisung benutzt Du doch %%a.
Member: MCSEnewcomer
MCSEnewcomer Oct 30, 2018 at 12:44:01 (UTC)
Goto Top
sorry hatte dort natürlich %%a stehen...
Irgendwie bekommt er die USER nicht aus der txt-Datei....
Member: MCSEnewcomer
MCSEnewcomer Oct 30, 2018 at 12:57:53 (UTC)
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.
Mitglied: 137443
137443 Oct 30, 2018 updated at 13:48:51 (UTC)
Goto Top
Anstatt einer TXT einfach eine CSV genutzt.
Nö das macht keinen Unterschied, dann hatte deine Textdatei bestimmt das falsche Encoding.
Member: MCSEnewcomer
MCSEnewcomer Oct 30, 2018 at 14:27:46 (UTC)
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...
Mitglied: 137443
Solution 137443 Oct 30, 2018 updated at 14:32:03 (UTC)
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