Datei-Besitz automatisiert übernehmen (VBS)

Ursprünglich wurde dieses Skript zu dem Zweck erstellt, die von „Zombie-Usern“ (gelöschten Benutzern) belegten Kontingente auf Fileservern, durch ändern des Besitzers, auf einen aktiven Benutzer zu übertragen (daher der Name…). Es sucht alle Dateien unterhalb des angegebenen Pfades – ggf. gefiltert nach aktuellem Besitzer/Dateityp – und ordnet diese auf Wunsch mit Hilfe von icacls.exe einem neuen Benutzer zu.

Ausführungsoptionen

Das Skript kann auf zwei Wegen mit Dateien „gefüttert“ werden:

Wird dem Skript nur ein Pfad mitgegeben, durchsucht es im Dateisystem alle Ordner und Dateien darunter:

QuotaZombieHunter.vbs -p <Path> [-u <Username>][-t <FileExtension>] [-n <NewOwner>] [-l <LogPath>] [-g]

 

Bei Nutzung der Option -i liest das Skript die zu bearbeitenden Dateien aus einer Textdatei (bspw. einem zuvor erstelltem Log) ein:

QuotaZombieHunter.vbs -i <InputFile> [-p <Path>] [-u <Username>] [-t <FileExtension>] [-n <NewOwner>] [-l <LogPath>] [-g]

In beiden Fällen werden die Dateien nach den Filterkriterien (Unterordner von <Path>, aktueller Besitzer <UserName> und Dateiendung <FileExtension>) geprüft und in die Log-Datei geschrieben. Bei Bedarf kann auch direkt der Besitz durch einen anderen User (<NewOwner>) übernommen werden.

Bei Suche nach einer SID kann zusätzlich mit der Option -g versucht werden anhand des Datei-Autors zu ermitteln, von welchem Benutzer die Dateien ursprünglich stammten.

Beim einlesen aus einer Datei (-i) verlangsamen die Optionen -u und -g den Vorgang i.d.R. spürbar!

ParameterBeschreibungDefault
-i <InputFile>Datei mit Liste von Dateien (bspw. zuvor erstelltes Log)
Bsp.: -i D:\Logs\LOG_bistron.d.bistron.txt
-p <Path>Filter – Pfad
Bsp.: -p D:\users
*
-u <Username>Filter – aktueller Besitzer (Domain\Username)
Bsp.: -u bistron\user1
*
-t <FileExtension>Filter – Dateiendung
Bsp.: -t .doc
*
-n <NewOwner>Besitz neu zuordnen (Domain\Username)
Bsp.: -n bistron\user2
-l <LogPath>Pfad der Logdatei LOG_domain.username.txt: Ordnerpfad
Bsp.: -l D:\Logs
<Pfad Skript>\LOG_domain.username.txt
-gListe mit Datei-Autoren erstellen (USERS_username.txt)
(ggf. nützlich falls nur noch die SID vorhanden ist)
Aus

Die von Skript erstellte Log-Datei enthält zu jedem gefundenen Element den Dateipfad, die Größe in Bytes und bei Nutzung der Option -n den ErrorLevel, den icacls.exe bei Änderung des Besitzers zurückgegeben hat:

ErrorLevelBeschreibungmögl. Ursache
0Erfolreich verarbeitet.
5Zugriff verweigert.Berechtigung des ausführenden Users ausreichend?
112Es steht nicht genug Speicherplatz auf dem Datenträger zu Verfügung.Kontingent <NewOwner> voll?
1332Zuordnung von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt.<NewOwner> falsch?

Anwendungsbeispiele

Besitzer übertragen

cscript.exe QuotaZombieHunter.vbs -p D:\users\ -u bistron\user1 -n bistron\user2 -t .xls

Der Besitz aller Excel-Dateien (.xls) des Users user1, die das Skript unterhalb von D:\users findet, wird an den User user2 übertragen.

Dateien von Benutzer suchen und Autoren auflisten

cscript.exe QuotaZombieHunter.vbs -p D:\users\ -u S-1-5-21-1234567890-123456789-12345678-1234 -l D:\ -g

Ergebnis ist ein Log unter D:\ mit allen Dateien, die dem gelöschten Benutzer S-1-5-21-12345…-1234 „gehören“; zusätzlich wird eine Liste mit möglichen Namen des Benutzers ausgegeben.

Dateien mit bestimmten Besitzer suchen anhand von Dateiliste

cscript.exe QuotaZombieHunter.vbs -i D:\LOG_bistron.user2.txt -p D:\users\ -n bistron\user1 -t .doc

Hier werden alle im Log gelisteten Word-Dateien, sofern sie unter D:\users liegen, dem neuen Besitzer user1 zugeordnet.

Da das Skript im Hintergrund mit dem Tool icacls.exe arbeitet kann es unter Windows Server 2003 dazu kommen, daß man trotz ausreichender Berechtigungen zur Änderung des Besitzers die Meldung „Zugriff verweigert“ erhält. Abhilfe schaffen sollte hier KB947870

Download

Links

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne
(1 Bewertungen, ⌀: 5,00 / 5)
Loading...

2 Kommentare

  1. wolpino

    Kleines nettes Tool, das genau das macht, was es verspricht und mir sehr viel Arbeit abgenommen hat.
    Ein winziger Bug: Dateien/Ordner, die Prozentzeichen im Namen enthalten, werden nicht korrekt verarbeitet. Grund: Im Script fehlt das notwendige Escaping der Shell-Metazeichen vor Aufruf von icacls.
    Das ist zum Glück kein Problem – die betreffenden Files lassen sich mit einem REGEX aus dem Logfile fischen (error code=2) und nachträglich mit icacls bearbeiten.

Kommentar verfassen

Neue Beiträge Oft gelesene BeiträgeNeueste KommentareBlog abonnieren

Gib Deine E-Mail-Adresse an, um diesen Blog zu abonnieren und Benachrichtigungen über neue Beiträge via E-Mail zu erhalten.