Dieser Artikel beschreibt das Scripting von Dateifreigaben. Mit Hilfe eines Scripts können Sie diese Aufgabe automatisieren und dokumentieren.
Vorteile
Das Skripten von Dateifreigaben hat mehrere Vorteile:
- 1Dokumentation
- 2Automatisation
1. Dokumentation
Ein Netzwerk sollte und muss sorgfältig dokumentiert werden. Durch die Dokumentation sind Sie in der Lage, auch noch 3 Monate nachdem Sie eine Konfiguration durchgeführt haben, zu verstehen, was Sie dort getan haben. Wenn Sie verschiedene Tasks gescriptet haben, dann kann dieses Skript für sich schon als Dokumentation dienen und mehr Aufschluss geben als so manche nachher erstellten Dokumente.
Dokumentationspflicht
Es gibt auch gesetzliche Vorschriften, nach denen eine Dokumentation anzufertigen ist. Auf https://www.unternehmer.de sind einige davon aufgeführt.
2. Automatisation
Eine Netzwerkfreigabe anzulegen und deren Berechtigungen auf Netzwerk- und auf Dateiebene einzustellen, ist kein Problem. Doch was ist, wenn Sie 10, 20, 50 oder 100 Netzwerkfreigaben anlegen sollen? Und was ist, wenn Sie diese nach ca. 1 Monat oder 1 Jahr wieder ändern müssen? Z.B. von einem Laufwerk auf ein anderes, oder von einem Server auf den anderen? Dann stößt die GUI sehr schnell an die Grenzen der Praktikabilität und ein Skript können Sie schnell anpassen, um den Änderungsaufwand dadurch drastisch reduzieren.
Die Befehle
Für das Scripting von Dateifreigaben brauchen Sie eigentlich nur 2 Befehle:
net share
cacls (für Windows XP/Server 2003)
icacls (für Windows Server 2003 SP2/Vista/Server 2008)
Die Netzwerkfreigabe erstellen
Zunächst müssen Sie die möglicherweise bestehenden Netzwerkfreigaben (Shares oder Shared Folders) löschen:
net share freigabename /delete
Danach legen Sie die Freigaben inkl. der Berechtigungen auf Netzwerkebene neu an:
net share freigabename=Laufwerk:Pfad /grant:"benutzername",accesslevel /unlimited
Definition
Parameter
Ersetzen Sie die kursiv-gedruckten Wörter durch Ihre Werte.
net share
accesslevel
kann eine der folgenden Werte haben:
Sollten mehrere Berechtigungen gesetzt werden, wiederholen Sie den /grant Parameter einfach so oft, wie Sie Berechtigungen vergeben wollen:
net share freigabename=Laufwerk:Pfad /grant:"benutzername",accesslevel /grant:"gruppenname",accesslevel /grant:"benutzername2",accesslevel /unlimited
Sie können die Berechtigungen nachträglich nicht mehr verändern, sondern müssen die Freigabe löschen und wieder neu erstellen.
Die Berechtigungen auf Datei-Ebene setzen
Der nächste Schritt besteht darin, die Berechtigungen auf Datei-Ebene zu setzen. Im Gegensatz zu net share mit dem /grant-Parameter, benötigen Sie für jeden Benutzer oder jede Gruppe jeweils einen cacls-Befehl.
cacls dateiname /t /e /g benutzer:berechtigung
icacls dateiname /grant benutzer:[(Vererbung1)][(Vererbung2)](Berechtigung1,Berechtigung2,…)
Definition
Parameter
Auch hier müssen Sie die kursiv-gedruckten Wörter durch Ihre Daten ersetzen.
cacls
berechtigung
kann die folgenden Werte haben:
icacls
berechtigung
kann die folgenden Werte haben:
Vererbung
kann die folgenden Werte haben:
Berechtigungen
Die Berechtigungen können noch feiner gesteuert werden, doch würde diese Betrachtung hier den Rahmen sprengen. Microsoft hat hier eine ausführlichere Betrachtung.
Schreiben Sie die Befehle der Reihenfolge nach in eine Batch-Datei und führen Sie sie die aus.
Anmerkung
Wenn Sie in den Werten, die in die Befehle eingearbeitet werden, Leerzeichen verwenden, müssen Sie den Wert in Anführungszeichen setzen. Ansonsten interpretiert die Konsole das nächste Wort nach dem Leerzeichen als neuen Parameter oder Befehl.
Anmerkung
Möchten Sie für das Scripting von Dateifreigaben deutsche Umlaute oder Sonderzeichen verwenden, müssen Sie das Skript mit chcp 1252 > NUL beginnen und mit chcp 850 > NUL beenden. Dadurch ändern Sie die zu benutzende Codepage für die Ausführung des Skriptes.