Dokumentation / wintoolset

WinToolset – Benutzerhandbuch

WinToolset ist eine Sammlung kleiner Kommandozeilenprogramme für Windows. Die Programme helfen bei häufigen Aufgaben rund um Dateien, Netzwerk, Prozesse, Windows-Dienste und Systemdiagnose. Nach der Installation können sie in PowerShell, der Eingabeaufforderung (cmd.exe) und in Skripten verwendet werden.

Installation

  1. WinToolsetSetup.exe starten.
  2. Die Abfrage der Windows-Benutzerkontensteuerung bestätigen.
  3. Die Installation abschließen.
  4. Ein bereits geöffnetes Terminal schließen und neu öffnen.

Die Programme werden standardmäßig in C:\bin installiert. Der Installer fügt diesen Ordner zum systemweiten PATH hinzu. Dadurch lassen sich die Befehle aus jedem Verzeichnis aufrufen.

Die Installation kann anschließend geprüft werden:

sysinfo
wcore --help

Falls Windows einen Befehl nicht findet, zuerst ein neues Terminal öffnen und anschließend prüfen:

$env:Path -split ";"
Get-Command sysinfo

Grundlegende Bedienung

Alle Befehle besitzen eine integrierte Hilfe:

wget --help
find --help
wcore grep --help

Pfade mit Leerzeichen müssen in Anführungszeichen stehen:

hash "C:\Meine Dateien\archiv.zip"

Zeitangaben verwenden Einheiten wie 500ms, 30s, 5m oder 24h. Größenfilter von find akzeptieren B, KB, MB und GB.

Einige Befehle können Daten über die Pipeline empfangen oder weitergeben:

"Hallo Welt" | hash -a sha256 -
Get-Content .\server.log | grep error

Übersicht

| Befehl | Aufgabe | | --- | --- | | sysinfo | System-, Speicher-, Netzwerk- und Laufwerksinformationen anzeigen | | hash | SHA-256-, SHA-1- und MD5-Prüfsummen berechnen | | backup | Einen Ordner als Sicherung mit Zeitstempel kopieren | | fcp / fmv | Dateien und Ordner parallel kopieren oder verschieben | | unpack | Archive entpacken | | wget | Dateien über HTTP oder HTTPS herunterladen | | http | HTTP-Endpunkte, Header, TLS und Antwortzeit prüfen | | dns | DNS-Einträge abfragen | | nc | Eine einfache TCP-Verbindung öffnen | | ping2 | Windows-Ping mit Zusammenfassung und CSV-Ausgabe ausführen | | netscan | TCP-Ports eines Hosts prüfen | | portkill | Den Prozess zu einem lokalen TCP-Port finden oder beenden | | find | Dateien und Ordner rekursiv suchen | | service | Windows-Dienste anzeigen und verwalten | | eventlog | Einträge aus Windows-Ereignisprotokollen lesen | | wcore | Zusätzliche Unix-ähnliche Basisbefehle bereitstellen |

Systeminformationen und Prüfsummen

sysinfo

Zeigt unter anderem Hostname, Benutzer, Windows-Version, CPU, RAM, Laufzeit, IP-Adressen und lokale Laufwerke an.

sysinfo
sysinfo -json

Mit -json entsteht eine maschinenlesbare Ausgabe für Skripte.

hash

Ohne Option wird SHA-256 verwendet. Es können mehrere Dateien angegeben werden; - steht für die Standardeingabe.

hash .\download.zip
hash -a md5 .\download.zip
hash -a all .\datei1.bin .\datei2.bin
"abc" | hash -

-a, -alg und -algorithm sind gleichbedeutend. Erlaubte Werte sind sha256, sha1, md5 und all.

Dateien, Backups und Archive

backup

Kopiert einen vollständigen Ordner in einen neuen Ordner mit Zeitstempel, zum Beispiel projekt_20260705_143000. Ohne -dest liegt die Sicherung neben dem Quellordner.

backup C:\Daten\projekt
backup -dest D:\Backups C:\Daten\projekt
backup -dry-run C:\Daten\projekt

Mit -dry-run werden Quelle und Ziel nur angezeigt; es werden keine Dateien kopiert.

fcp und fmv

fcp kopiert Dateien oder komplette Verzeichnisbäume. fmv verschiebt sie und verwendet beim Verschieben zwischen Laufwerken automatisch Kopieren und Löschen.

fcp C:\Daten D:\Kopie\Daten
fcp -j 8 -f C:\Daten D:\Kopie\Daten
fmv .\alt.txt .\Archiv\alt.txt

Ohne -f werden vorhandene Zieldateien geschützt. Bei fmv ist zu beachten, dass die Quelle nach erfolgreichem Verschieben entfernt wird.

find

Durchsucht einen Ordner rekursiv. Ohne Startordner wird das aktuelle Verzeichnis verwendet. Filter lassen sich kombinieren.

find -name bericht C:\Daten
find -regex "(?i).*\.log$" -since 24h C:\Logs
find -min-size 10MB -max-size 1GB -json D:\Daten
find -since 2026-07-01 C:\Daten

| Option | Bedeutung | | --- | --- | | -name <Text> | Teiltext im Datei- oder Ordnernamen | | -regex <Ausdruck> | Regulärer Ausdruck für den Namen | | -min-size <Größe> | Mindestgröße | | -max-size <Größe> | Höchstgröße | | -since <Wert> | Geändert innerhalb einer Dauer oder seit JJJJ-MM-TT | | -json | Ergebnisse als JSON ausgeben |

unpack

unpack .\archiv.zip
unpack -C D:\Entpackt .\archiv.tar.gz
unpack -dest .\ausgabe .\daten.bz2

Nativ unterstützt werden zip, cbr, tar, tar.gz, tgz sowie einzelne gz- und bz2-Dateien. Archivpfade werden beim Entpacken geprüft, damit Dateien nicht außerhalb des Zielordners abgelegt werden. rar, xz, txz und tar.xz benötigen derzeit einen externen Entpacker und werden abgelehnt.

Netzwerk

Netzwerkprüfungen sollten nur auf eigenen Systemen oder mit ausdrücklicher Erlaubnis durchgeführt werden.

wget

wget https://example.com/datei.zip
wget -O paket.zip https://example.com/download
wget -P D:\Downloads https://example.com/datei.zip
wget -c -tries 3 -timeout 2m https://example.com/gross.iso
wget -O - -H "Accept: application/json" https://example.com/status

Wichtige Optionen:

| Option | Bedeutung | | --- | --- | | -O <Datei> | Zielname; -O - schreibt nach stdout | | -P <Ordner> | Zielordner | | -c | Teilweise vorhandenen Download fortsetzen | | -tries <Anzahl> | Anzahl der Versuche | | -timeout <Dauer> | Zeitlimit pro Anfrage | | -H "Name: Wert" | Eigenen HTTP-Header hinzufügen; mehrfach möglich | | -user-agent <Text> | User-Agent setzen | | -q / -v | Weniger beziehungsweise mehr Statusausgabe | | -no-check-certificate | TLS-Zertifikatsprüfung abschalten |

-no-check-certificate sollte nur zur gezielten Diagnose verwendet werden, da es die Identitätsprüfung des Servers deaktiviert.

http

Sendet genau eine HTTP-Anfrage. Fehlt das Schema, wird https:// angenommen.

http example.com
http -X HEAD https://example.com
http -body https://example.com/status
http -json -timeout 5s https://example.com

Die Standardausgabe enthält Status, Antwortzeit, Header und bei HTTPS die TLS-Version. -body ergänzt den Antworttext, -json liefert JSON und -X ändert die HTTP-Methode.

dns

dns example.com
dns -type MX example.com
dns -type TXT -json example.com

Unterstützte Typen sind A, AAAA, MX, NS, TXT und CNAME.

ping2

ping2 example.com
ping2 -n 10 192.168.1.1
ping2 -csv .\ping.csv example.com
ping2 -t gateway.local

-n bestimmt die Anzahl der Anfragen, -t pingt bis zum Abbruch mit Strg+C. Die CSV-Datei enthält eine Zusammenfassung mit Zeitstempel, Paketverlust sowie minimaler, maximaler und mittlerer Laufzeit.

netscan

Führt parallele TCP-Verbindungsversuche aus und zeigt offene Ports an.

netscan example.com
netscan -p 22,80,443,8000-8010 192.168.1.10
netscan -json -timeout 500ms -j 256 server.local

Standardmäßig werden die Ports 80 und 443 geprüft. -p akzeptiert einzelne Ports und Bereiche, -j setzt die Parallelität und -timeout das Zeitlimit je Verbindungsversuch.

nc

Öffnet eine TCP-Verbindung, leitet stdin an den Server und dessen Antwort nach stdout weiter.

nc 127.0.0.1:6556
nc -w 5s example.com 80
"GET / HTTP/1.0`r`nHost: example.com`r`n`r`n" | nc example.com:80

-w und -timeout setzen das Zeitlimit für den Verbindungsaufbau. Das Programm unterstützt kein UDP, TLS und keinen Listen-Modus.

portkill

Ermittelt über netstat die PID zu einem lokalen TCP-Port. Ohne -force werden Treffer nur angezeigt.

portkill 3000
portkill -dry-run 8080
portkill -listen -force 3000

Das Beenden fremder oder geschützter Prozesse kann Administratorrechte erfordern. Vor -force sollte die angezeigte PID geprüft werden.

Windows-Verwaltung

service

service list
service search spool
service status Spooler
service start Spooler
service stop Spooler
service restart W32Time

Das Tool verwendet sc.exe. Für Start, Stop und Neustart ist häufig ein als Administrator geöffnetes Terminal nötig. Als Name wird der interne Dienstname, nicht zwingend der übersetzte Anzeigename, verwendet.

eventlog

Liest die neuesten Ereignisse zuerst über das Windows-Programm wevtutil.

eventlog
eventlog -log Application -n 50
eventlog -log System -level error -n 10
eventlog -level warning -json

| Option | Bedeutung | | --- | --- | | -log <Name> | Ereignisprotokoll, standardmäßig System | | -n <Anzahl> | Anzahl der Einträge, standardmäßig 20 | | -level <Wert> | error, warning, info oder numerischer Windows-Level | | -json | Gibt „RenderedXml“ von wevtutil aus |

Hinweis: Trotz des Optionsnamens -json ist die Ausgabe derzeit gerendertes XML und kein JSON-Dokument.

Unix-ähnliche Befehle mit wcore

wcore bündelt häufig verwendete Basiswerkzeuge in einer Datei. Ein Befehl kann auf zwei Arten aufgerufen werden:

wcore grep -i error .\server.log
grep -i error .\server.log

Der zweite Aufruf verwendet einen bei der Installation erzeugten Alias. Für find, nc und wget werden bewusst die umfangreicheren Einzelprogramme als direkte Aliase installiert; die kompakteren Varianten bleiben über wcore find, wcore nc und wcore wget erreichbar.

| Bereich | Befehle | | --- | --- | | Dateien und Pfade | basename, cat, cp, dirname, find, ls, mkdir, mv, pwd, rm, rmdir, touch | | Text und Streams | echo, grep, head, sort, strings, tail, tee, uniq, wc, yes | | Archive und Kodierung | base64, hexdump, md5sum, sha256sum, tar, unzip | | System und Prozesse | date, df, du, env, kill, ps, sleep, which, whoami | | Netzwerk | nc, wget | | Skripthilfen | false, seq, true |

Beispiele:

ls -l C:\Windows
grep -i -n "fehler" .\anwendung.log
head -n 20 .\anwendung.log
tail -n 50 .\anwendung.log
sha256sum .\download.zip
du -h C:\Daten
df -h
wcore tar -xf .\archiv.tar -C .\ausgabe

Da die Werkzeuge bewusst kompakt sind, unterstützen sie nicht jede Option der gleichnamigen Linux-Programme. Die verbindliche Optionsliste zeigt jeweils <Befehl> --help, zum Beispiel grep --help oder wcore tar --help.

Besondere Vorsicht gilt bei rm, rmdir, mv und kill: Änderungen werden direkt ausgeführt und landen nicht automatisch im Windows-Papierkorb.

Verwendung in Skripten

Für die Weiterverarbeitung sollten, wo vorhanden, die JSON-Optionen verwendet werden:

$info = sysinfo -json | ConvertFrom-Json
$info.host

$offenePorts = netscan -json -p 80,443 server.local | ConvertFrom-Json
$offenePorts | Where-Object open

Ein Rückgabecode von 0 bedeutet Erfolg. Bei ungültigen Argumenten oder einem fehlgeschlagenen Vorgang wird eine Meldung auf stderr geschrieben und ein Rückgabecode ungleich 0 gesetzt. In PowerShell enthält $LASTEXITCODE den Rückgabecode des zuletzt ausgeführten Programms.

Deinstallation

WinToolset kann über Einstellungen → Apps → Installierte Apps → WinToolset oder direkt über folgendes Programm entfernt werden:

C:\bin\UninstallWinToolset.exe

Der Deinstaller entfernt die Programme und Befehls-Aliase. Der Eintrag C:\bin bleibt derzeit im systemweiten PATH erhalten. Falls WinToolset nicht erneut installiert werden soll, kann dieser Eintrag anschließend über Systemeigenschaften → Erweitert → Umgebungsvariablen → Path entfernt werden.

Fehlerbehebung