Juni 28, 2009

Scripting Dateifreigaben

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:

  1. 1
    Dokumentation
  2. 2
    Automatisation

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:

  • FULL (Vollzugriff)
  • READ (Lesen)
  • CHANGE (Ändern)

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.

  • Werte in eckigen Klammern sind optional.
  • Bei icacls müssen Sie die Vererbungs- und Berechtigungswerte in Klammern schreiben.

cacls

berechtigung

kann die folgenden Werte haben:

  • n (keine)
  • r (lesen)
  • c (ändern)
  • f (Vollzugriff)

icacls

berechtigung

kann die folgenden Werte haben:

  • f (Vollzugriff)
  • m (Ändern)
  • rx (Lesen und Ausführen)
  • r (Lesen)
  • w (Schreiben)
Vererbung

kann die folgenden Werte haben:

  • oi (an Objekte/Dateien)
  • ci (an Container/Verzeichnisse)
  • io (nur vererben, nur auf das Verzeichnis selbst anwenden)
  • np (nicht vererben, nur auf das Verzeichnis selbst anwenden)

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.

Klicken Sie auf das Wort, um die Bedeutung zu sehen

Scritping

GUI



Über den Autor

Frank Piotrowsky ist IT-Consultant und beschäftigt sich mit der Automatisierung von Arbeitsprozessen, Netzwerkadministration und deren Automatisierung, sowie mit Software-Entwicklung, die ebenfalls in diese Richtung zielt. "Wenn der Computer die Arbeit für Sie erledigen kann, warum sollten Sie sie dann tun?" ist die Philosophie, die hinter dem Thema steckt.

Tags


Das könnte Sie auch interessieren:

Frank Piotrowsky

04/13/2020

Remotedesktopverbindung über Gateway


{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>