Ein Überblick der Freeware-Werkzeuge für die Windows-Konsole
Vier schmale Bereiche, ein Verzeichnis. Die hier dokumentierten Freeware-Werkzeuge für die Windows-Konsole stammen aus derselben Zeit und derselben Haltung: eine Aufgabe, aus der Konsole, mit eigenem Hilfetext und brauchbarem Rückgabewert, und jedes saß auf einer Lücke der Plattform, die inzwischen geschlossen ist. Diese Seite ist die Karte: was der Bereich ist, was die alte Notation bedeutete, und welcher Befehl ihn heute besitzt.
Die vier Bereiche im Überblick
Diese Gruppierung ist nicht beliebig. Jeder Bereich ist dadurch bestimmt, welcher Teil des Systems den Vorgang besitzt, und genau dieser Besitz entscheidet, ob der Vorgang aus der Ferne möglich ist, ob er ein Privileg braucht und ob er einen Neustart übersteht.
- Dienst- und Treiberzugriff
Ein Dienst ist ein sicherungsfähiges Objekt. Wer ihn starten, beenden, seine Konfiguration lesen oder seinen Binärpfad umschreiben darf, entscheidet eine Zugriffsliste und nicht die Gruppenmitgliedschaft. Vom Dienststeuerungs-Manager besessen, aus der Ferne bearbeitbar, übersteht Neustarts, und der Bereich, der sich am wenigsten verändert hat. Heute:
sc sdshowundsc sdset. - Energiezustände und Herunterfahren
Herunterfahren und Neustart haben eine Remote-Schnittstelle, Energiesparmodus und Ruhezustand nicht, weil sie der lokalen Energieverwaltung gehören. Diese Trennung erklärt, warum die Hälfte der Schalter eines alten Shutdown-Werkzeugs nur lokal wirkte, und warum die übrigen eine Binärdatei auf das Ziel kopierten. Heute:
shutdownundpowercfg. - Identität und sekundäre Anmeldung
Ein Programm oder einen ganzen Desktop als jemand anders betreiben. Die interessante Einschränkung ist nicht, an ein Token zu kommen, sondern an eines ohne ein Privileg, das den Zweck aufhebt. Heute:
runas, der Dienst für sekundäre Anmeldungen undwhoami /allzur Prüfung, was im Token wirklich steht. - Shell-Metadaten und Eigenschaftendialoge
Dateimetadaten über die Shell lesen und schreiben statt über eine Anwendung. Der Registrierungsmechanismus für eine zusätzliche Registerkarte ist unverändert; geändert hat sich, dass die Shell die verbreiteten Formate inzwischen selbst abdeckt. Heute: die eingebauten Handler, plus ein eigener Editor für alles in Menge.
- Die kleinen Dienstprogramme
Neun Konsolenprogramme für Hardlinks, Fehlercodes, Zwischenablage, Umgebungsvariablen, Akkuzustand und Kontoinformationen. Sieben haben eingebaute Nachfolger, eines löste ein Problem, das es nicht mehr gibt, und eines tat etwas, das heute bewusst nicht unterstützt wird.
Eine alte Schalternotation ohne Raten lesen
Die praktische Fähigkeit, die dieses Material vermittelt, ist Übersetzung. Dokumentation dieser Zeit benutzt Konventionen, die heutige Werkzeuge abgelegt haben, und einige davon ändern die Bedeutung und nicht bloß die Schreibweise.
Konventionen der Epoche
- Schrägstrich-Schalter
- Standard unter Windows. Ein führender Bindestrich deutet meist auf eine Portierung aus der Unix-Welt.
- Buchstaben in Klammern
- Eine Zugriffsmaske, kein Status.
[XR]ist eine Menge von Rechten. - Führendes Minus am Eintrag
- Ein verweigernder Eintrag, unabhängig von der Position vor allen erlaubenden geprüft.
- <code>\\MACHINE</code> als erstes Argument
- Remote-Ziel. Weggelassen heißt lokal.
- Ein Ändern-Schalter
- Bearbeiten statt ersetzen. Sein Fehlen bedeutet meist zerstörendes Ersetzen.
- Ein Nologo- oder Quiet-Schalter
- Unterdrückt den Versionsbanner, damit die Ausgabe auswertbar ist.
- <code>(null)\(null)</code>
- Eine Kennung, die auf diesem Rechner nicht auflösbar ist. Der Eintrag gilt trotzdem.
Wirklich Schaden anrichten kann der Ändern-Schalter. Ein Werkzeug, dessen Standardverhalten
das Ersetzen einer Zugriffsliste ist, schreibt bereitwillig genau die genannten Einträge und
verwirft alles andere, einschließlich Ihres eigenen Rechts, sie erneut zu bearbeiten. So
verhielten sich die Werkzeuge der Epoche, und so verhält sich sc sdset heute.
Deskriptor lesen, Zeichenfolge ändern, das Ganze zurückschreiben.
Was heute zu welcher Aufgabe gehört
Ein knapper Überblick der unterstützten Befehle, denn die halbe Motivation, alte Dokumentation zu lesen, ist die Frage, was man stattdessen tippt.
sc sdshow Spooler ← Zugriffsliste eines Dienstes lesen
sc sdset Spooler "D:(A;;…)" ← vollständig zurückschreiben
shutdown /r /m \\HOST /t 120 /d p:2:4 ← Neustart aus der Ferne, mit Grund
powercfg /devicequery wake_armed ← wer diesen Rechner wecken darf
runas /user:DOMÄNE\name "programm" ← unter zweiter Identität starten
whoami /all ← Identität, Gruppen, Privilegien DIESES Prozesses
mklink /H link ziel ← Hardlink auf NTFS
fsutil hardlink list datei ← wie viele Namen diese Datei schon hat
net helpmsg 5 ← dezimale Fehlernummer als Text
certutil -error 0x80070005 ← hexadezimal oder COM-Ergebnis als Text Warum eine Freeware-Sammlung einen Überblick verdient
Weil die vier Bereiche dieselben drei Fragen beantworten und die Antwort jedes Mal aus dem Besitz folgt. Der Dienststeuerungs-Manager besitzt den Dienstzugriff: eine Änderung ist deshalb über das Netz möglich, braucht ein Zugriffsrecht und keine Berechtigung, und sie übersteht einen Neustart, weil sie im Deskriptor steht. Der lokale Energie-Manager besitzt Energiesparmodus und Ruhezustand, weshalb es für diese beiden keine Remote-Form gibt, wohl aber für Herunterfahren und Neustart. Der Dienst für die sekundäre Anmeldung besitzt die Identität: ein zweites Konto braucht auf jedem betroffenen Rechner ein Anmelderecht, und das Ergebnis hält genau so lange wie der gestartete Prozess. Die Shell besitzt die Metadaten im Eigenschaftendialog, also ist der Handler eine Registrierung und kein laufendes Programm, und nichts ändert sich, bevor der Explorer ihn neu lädt.
So gelesen sind die Schaltertabellen keine Kuriosität mehr. Jeder Schalter ist eine Aussage darüber, welches Teilsystem angesprochen wird, und daraus folgt eine brauchbare Erwartung für die Bewertung heutiger Werkzeuge: eines, das nur eine bestehende Schnittstelle umhüllt, wird irgendwann davon ersetzt, dass diese Schnittstelle einen eigenen Befehl bekommt. Das Objektmodell hat die Software um Jahrzehnte überlebt, und die alten Schaltertabellen sind noch einer der schnelleren Wege hinein.
Fragen zu diesen Windows-Werkzeugen
Sind die Programme noch irgendwo erhältlich?
Nicht aus einer gepflegten Quelle. Die LS-Tools erschienen als Freeware für Windows NT und Windows 2000, die Shell-Erweiterung zusätzlich für Windows 9x, die Entwicklung endete, es gibt keine aktuelle Verteilung und keinen Sicherheitssupport. Diese Seiten dokumentieren, was sie taten und was die Aufgabe heute übernimmt. Der Teil, der weiter nützlich ist.
Sollte man eine zwanzig Jahre alte Konsolenbinärdatei ausführen?
Im Regelfall nein. Eine 32-Bit-Konsolenanwendung startet meist noch, aber mehrere dieser Programme riefen Schnittstellen auf, die sich geändert haben, eines installierte für seine Arbeit einen Dienst, und geprüft wurde seit damals keines. Jede beschriebene Fähigkeit hat eine unterstützte Entsprechung, und die ist die zu benutzende.
Warum Werkzeuge dokumentieren, die niemand installieren kann?
Weil die Dokumentation die Software überlebt hat. Handbücher, Forenantworten und interne Wikis aus den Jahren 1998 bis 2010 sind voll von diesen Schalternotationen, und wer sie nicht entschlüsseln kann, unterscheidet eine harmlose nicht von einer gefährlichen Anweisung. Die Zuordnung ist der Wert.
Was ist die nützlichste Einsicht aus dem Bestand?
Dass ein Dienst ein sicherungsfähiges Objekt mit eigener Zugriffsliste ist. Die meisten betrieblichen Probleme in diesem Umfeld sind eine Zugriffsmaske davon entfernt, richtig gelöst zu sein statt durch Vergabe von Administratorrechten.
Ist PowerShell immer der richtige Ersatz?
Nicht immer. Für alles, was in einer einfachen Eingabeaufforderung, einem Startskript oder einer eingeschränkten Umgebung laufen muss, sind die klassischen Konsolenbefehle kürzer und haben weniger Voraussetzungen. PowerShell gewinnt, wo Objekte und Pipelines helfen. Viele Rechner, strukturierte Ausgabe, Anmeldeinformationen.
Welcher Bereich hat sich am stärksten verändert?
Die Energieverwaltung. Die Schnittstelle, die diese Werkzeuge nutzten, ist älter als ACPI, und heutiges Verhalten hat im alten Modell keine Entsprechung: moderner Standbymodus, Weckrechte je Gerät, Ruhezustandsdateien, die es nicht geben muss. Die Dienstsicherheit hingegen ist praktisch unverändert.
Haben die grafischen Werkzeuge jener Zeit Nachfolger?
Sie wurden meist in die Shell aufgenommen statt ersetzt. Sitzungsumschaltung, Registerkarten mit Dateimetadaten und sitzungsbezogene Laufwerksbuchstaben waren alle Zusätze Dritter, die später zum Lieferumfang gehörten. Diese Aufnahme ist das wiederkehrende Muster der Epoche.
Gibt es einen unterstützten Weg, eine Dienst-Zugriffsliste nur zu lesen?
Ja, und es lohnt sich als Gewohnheit: sc sdshow <Dienst> gibt den Deskriptor aus und ändert nichts. Lesen vor dem Schreiben ist die eine Verfahrensregel, die den schlimmsten Ausgang verhindert: nämlich jedes Konto einschließlich des eigenen aus einem Dienst auszusperren.
Was ersetzte die mitgelieferten MFC-Laufzeitarchive?
Verteilbare Laufzeitpakete gibt es weiter, sie werden nur von der Anwendung installiert statt separat vom Benutzer geholt. Die konkreten Archive sind überholt; das Fehlerbild nicht: ein Programm startet nicht, weil eine gemeinsame Bibliothek fehlt.
Gilt das auch für Windows Server?
Alles davon, die Dienstrechte umso mehr. Auf einem Server ist das Argument am stärksten, eine genaue Zugriffsmaske statt Administratorrechte zu vergeben, und dort schlägt eine flottenweit angewandte Sicherheitsrichtlinie das Bearbeiten von Deskriptoren Rechner für Rechner.