winfried-hh
Goto Top

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
Chcp 1252
for /d %%a in ("D:\homes\*") do icacls "%%~a" /T /C /grant %%~nxa:(OI)(CI)F  
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

Content-Key: 351126

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

Printed on: April 25, 2024 at 18:04 o'clock

Member: BassFishFox
BassFishFox Oct 09, 2017 at 00:01:47 (UTC)
Goto Top
Hallo,

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
Member: Winfried-HH
Winfried-HH Oct 09, 2017 updated at 03:40:29 (UTC)
Goto Top
Zitat von @BassFishFox:

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.

Weil die NTFS-Rechte beim Kopieren auf einen neuen Server verlorengegangen sind. Sicher hätte es Kopierverfahren gegeben, die die Rechte erhalten hätten, aber die wurden nun mal (auch aus für mich nachvollziehbaren Gründen) nicht genutzt. Nun gilt es also, die Rechte wieder zu setzen. Wir haben auf den gesamten Ordner Vollzugriff für Administratoren und Lehrer gegeben und den Besitz auf die Administratorengruppe geetzt. Jetzt müssen nun noch die jeweiligen User wieder Vollzugriff auf ihr Profil bekommen.
Member: StefanKittel
StefanKittel Oct 09, 2017 at 06:19:43 (UTC)
Goto Top
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
Member: Winfried-HH
Winfried-HH Oct 09, 2017 at 07:03:00 (UTC)
Goto Top
Zitat von @StefanKittel:

Windows ist sehr wählerrisch wenn es um den Zugriff auf den Profil-Ordner geht.

Ich weiß face-smile


Meiner Erfahrung nach funktioniert es nur wenn dies zutrifft:
1. Der Benutzer muss Eigentümer sein

Es geht auch, wenn die Administratorengruppe Eigentümer ist. Das ist so auch bei Microsoft dokumentiert und funktioniert nach meiner Erfahrung auch.


2. Der Benutzer muss Vollzugriff haben

Richtig!


3. Zwischenspeichern darf für die Freigabe nicht aktiviert sein

Meinst Du Offline-Dateien? Die sind sowieso domänenweit deaktiviert. Sie würden in unseres Konstellation (Wächterkarten bzw. -software) auch nichts bringen.


Dazu deaktiviere ich immer die Vererbung, füge den Benutzer hinzu und ändere den Besitzer.

Die Vererbung habe ich an, damit die Rechte für die Lehrer von oben durchgereicht werden. Zusätzlich möchte/muss ich aber dem jeweiligen Benutzer Vollzugriff geben. Bei 500 Schülern mache ich das aber nicht einzeln, darum fragte ich ja danach, wie man das per Script lösen kann.
Member: StefanKittel
Solution StefanKittel Oct 09, 2017 at 07:08:32 (UTC)
Goto Top
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
Member: Winfried-HH
Winfried-HH Oct 09, 2017 at 07:16:38 (UTC)
Goto Top
Zitat von @StefanKittel:

Mein (low tech) Vorschlag.

So einfach, dass ich auch selbst hätte drauf kommen können - zumal ich sowas in der Vergangenheit schon öfter gemacht habe ;)

Trotzdem Danke für den Tipp! Auch wenn es nicht genau das war, was ich erfragt habe, ist es trotzdem ein sachdienlicher Hinweis und nicht dieses generelle Infragestellen der Intention des Thread-Eröffners, dass es hier leider ganz oft gibt. Danke!
Mitglied: 134464
134464 Oct 09, 2017 updated at 11:28:22 (UTC)
Goto Top
@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  
)