In Batch aktuellen Ordnernamen mit und ohne eventuelles .V2 oder .V6 als Parameter nutzen
Hallo in die Runde!
Ich habe eine Ergänzungsfrage zu diesem Thread.
Das Script
lässt sich wunderbar auf unsere Home-Ordner anwenden, um z.B. dem Benutzer ken.scott Vollzugriff auf den Ordner d:\homes\ken.scott zu geben.
Aber was muss ich tun, um dieses Script in dem Ordner mit den servergespeicherten Profilen anzuwenden und dort auch Ordner mit .V2 und .V6-Endung zu berücksichtigen? Wenn das Script alle Unterordner in D:\PROFILES durchläuft und einen Ordner ken.scott findet, soll es dem Benutzer ken.scott Zugriff geben, wenn es aber einen Ordner ken.scott.v2 findet, soll es nicht dem Benutzer ken.scott.v2 (den es nicht gibt) Zugriff geben, sondern auch ken.scott.
Danke für jede Hilfe & schöne Grüße von der Elbe!
Winfried
Ich habe eine Ergänzungsfrage zu diesem Thread.
Das Script
Chcp 1252
for /d %%a in ("D:\homes\*") do icacls "%%~a" /T /C /grant %%~nxa:(OI)(CI)F
Aber was muss ich tun, um dieses Script in dem Ordner mit den servergespeicherten Profilen anzuwenden und dort auch Ordner mit .V2 und .V6-Endung zu berücksichtigen? Wenn das Script alle Unterordner in D:\PROFILES durchläuft und einen Ordner ken.scott findet, soll es dem Benutzer ken.scott Zugriff geben, wenn es aber einen Ordner ken.scott.v2 findet, soll es nicht dem Benutzer ken.scott.v2 (den es nicht gibt) Zugriff geben, sondern auch ken.scott.
Danke für jede Hilfe & schöne Grüße von der Elbe!
Winfried
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 351126
Url: https://administrator.de/forum/in-batch-aktuellen-ordnernamen-mit-und-ohne-eventuelles-v2-oder-v6-als-parameter-nutzen-351126.html
Ausgedruckt am: 02.04.2025 um 07:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo,
Im Normalfall hat der Benutzer immer Vollzugriff auf sein(en) Profil(ordner). Warum das bei Dir nicht so ist und Du daran rumschrauben willst, ist mir ein Raetsel.
BFF
Aber was muss ich tun, um dieses Script in dem Ordner mit den servergespeicherten Profilen anzuwenden und dort auch Ordner mit .V2 und .V6-Endung zu berücksichtigen?
Im Normalfall hat der Benutzer immer Vollzugriff auf sein(en) Profil(ordner). Warum das bei Dir nicht so ist und Du daran rumschrauben willst, ist mir ein Raetsel.
BFF
Moin,
Windows ist sehr wählerrisch wenn es um den Zugriff auf den Profil-Ordner geht.
Meiner Erfahrung nach funktioniert es nur wenn dies zutrifft:
1. Der Benutzer muss Eigentümer sein
2. Der Benutzer muss Vollzugriff haben
3. Zwischenspeichern darf für die Freigabe nicht aktiviert sein
Dazu deaktiviere ich immer die Vererbung, füge den Benutzer hinzu und ändere den Besitzer.
Viele Grüße
Stefan
Windows ist sehr wählerrisch wenn es um den Zugriff auf den Profil-Ordner geht.
Meiner Erfahrung nach funktioniert es nur wenn dies zutrifft:
1. Der Benutzer muss Eigentümer sein
2. Der Benutzer muss Vollzugriff haben
3. Zwischenspeichern darf für die Freigabe nicht aktiviert sein
Dazu deaktiviere ich immer die Vererbung, füge den Benutzer hinzu und ändere den Besitzer.
Viele Grüße
Stefan
Moin,
das mit den komplexen Batch-Dateien habe ich irgendwann aufgegeben.
Ja, das geht, aber ich bin der Meinung zu aufwendig und zu anfällig.
Mein (low tech) Vorschlag.
1. Mach ein Listing in eine Datei (Dir /b > liste.txt)
2. Diese Liste in eine leere Excel-Datei reinkopieren als Spalte A
3. Mit normalen Excel-Funktionen (search, wenn, etc) einen fertigen Befehl für eine Batch erstellen in Spalte B
4. Spalte B in eine Batch-Datei kopieren und starten (Die Batch hat dann 500 Zeilen)
Tipp: zuerst mit einem echo ein paar Testen
Viele Grüße
Stefan
das mit den komplexen Batch-Dateien habe ich irgendwann aufgegeben.
Ja, das geht, aber ich bin der Meinung zu aufwendig und zu anfällig.
Mein (low tech) Vorschlag.
1. Mach ein Listing in eine Datei (Dir /b > liste.txt)
2. Diese Liste in eine leere Excel-Datei reinkopieren als Spalte A
3. Mit normalen Excel-Funktionen (search, wenn, etc) einen fertigen Befehl für eine Batch erstellen in Spalte B
4. Spalte B in eine Batch-Datei kopieren und starten (Die Batch hat dann 500 Zeilen)
Tipp: zuerst mit einem echo ein paar Testen
Viele Grüße
Stefan

@echo off & setlocal ENABLEDELAYEDEXPANSION
Chcp 1252
for /d %%a in ("D:\homes\*") do (
REM write folder name to variable
set "user=%%~nxa"
REM REPLACE .V2 with empty string in variable
set "user=!user:.V2=!"
REM REPLACE .V6 with empty string in variable
set "user=!user:.V6=!"
REM use variable in icacls
icacls "%%~a" /T /C /grant !user!:(OI)(CI)F
)