Subst

Hallo zusammen,

aus aktuellem Anlass ein kleiner Überblick über den Befehl subst. Was ist subst, was macht subst, wofür wird subst gebraucht, und wo lasse ich es lieber sein?
Der Befehl subst wird in DOS- und Windows-Betriebssystemen genutzt, um Pfaden ein Laufwerks-Mapping zuzuweisen. Dies können bei substjedoch nur lokale Pfade sein, UNC-Pfade werden mit dem Befehl net use verbunden.

subst /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

Durch die Hilfeausgabe von subst wird schnell klar, wie das Kommando benutzt werden kann, um eben solche Laufwerks-Mappings zu erstellen. Zunächst wird es in dem Kommandozeileninterpreter (cmd.exe) als Befehl angegeben, daraufhin das neue Laufwerk, das erstellt werden soll – sprechen wir hier beispielsweise vom Laufwerk M:\ wie Mapping – gefolgt von dem Pfad, den unser neues Laufwerk repräsentieren soll. Ein Beispiel könnte also so aussehen:

subst M: C:\dieser\pfad\ist\mir\zu\lang\um\ihn\jedes\mal\auszuschrieben

Nach bestätigen des Befehls mittels Enter-Taste würde uns ein neues Laufwerk im Arbeitsplatz erwarten, das von seinen Eigenschaften prinzipiell mit denen von Laufwerk C: identisch ist, uns jedoch direkt in den oben angegeben Ordner verweist.

Linux-User werden etwas ähnliches bereits unter dem Stichwort „symbolischer Link“ kennen – seit Windows Vista gibt es auch in der Microsoft-Welt die Möglichkeit, symbolische Links zu erstellen, und das haben sich die Redmonder gleich stark zunutze gemacht, um die Ordnerstrukturen unter verschieden-sprachigen Windows-Versionen zu vereinheitlichen (siehe C:\Users, C:\Dokumente und Einstellungen, C:\Benutzer, C:\Documents and Settings usw. usf. – aber das ist ein anderes Thema).

Nun, da wir ein Laufwerk M: haben, müssen wir für Anwendungen und Dokumente, die in diesem Ordner liegen nicht mehr für jeden Aufruf die Litanei an Unterverzeichnissen aus dem Beispiel durchwühlen, sondern können den Ordner bequem aus dem Arbeitsplatz aufrufen.

Zu beachten ist aber trotzdem folgendes: subst-Mappings sind benutzerbezogen, ebenso wie Netzlaufwerke! Nur der aktuell angemeldete Benutzer kann auf dieses Laufwerk zugreifen. Auch einige Systemprogramme können oder sollten nicht auf gemappten Laufwerken ausgeführt werden, dazu zählen:
– chkdsk
– diskcomp
– diskcopy
– format
– label
– recover
… und ALLE anderen Programme, die nicht im Kontext des jeweiligen Benutzers ausgeführt werden! Alleine die Funktion „als Administrator ausführen“, die wir der Benutzerkontensteuerung (UAC) verdanken, zerstört diesen Benutzerkontext. Dem Benutzer wird „als Administrator“ ein neues Usertoken zugewiesen, womit das Laufwerksmapping nicht mehr gegeben ist.
Genauso verhält es sich in prä-Vista Systemen (sprich Windows XP…) mit der Option „Ausführen als…“, was aber noch etwas eindeutiger darauf hinweist, dass man seinen aktuellen Benutzerkontext an dieser Stelle verlässt. Ebenso werden alle Dienste, die nicht als der jeweilige Benutzer gestartet wurden ebenfalls in diese Liste gezählt – ich möchte da als Beispiel den Windows-Installer anführen, der üblicherweise als „Lokales Systemkonto“ angemeldet ist:

Weiterhin sei erwähnt, dass ge“subst„ete Laufwerke üblicherweise beim Reboot verloren gehen, ebenso wie Netzlaufwerke, die nicht mit der Optionpersistent erstellt wurden. Sollen Laufwerke nach dem Reboot verfügbar sein, lassen sich mit einigen Registry-Einstellungen die gemappten Laufwerke über Neustarts hinweg übernehmen:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices
 

Unser neuer Eintrag ist eine Zeichenfolge mit dem Namen des gewünschten Laufwerks (unser M: von vorhin) mit dem Wert des Ordners, auf den das Laufwerk zeigen soll, geführt von dem Schlagwort \DosDevices\.
Der Eintrag in der Registry unter HKLM hat übrigens auch den Vorteil, dass das Laufwerk auf diese Weise für alle Benutzer dieses Rechners gemappt wird – falls dies beabsichtigt werden sollte.

Die andere Möglichkeit, das gemappte Laufwerk über einen Neustart hinweg zu retten – naja, nicht wirklich – wäre es, im Autostart ein Batch-Skript abzulegen, das den subst-Befehl beim Einloggen des Windows-Users ausführt. Quick’n’Dirty 🙂

Diskussion über Pro und Contra eines solchen Mappings würde ich in der Kommentar-Sektion sehr begrüßen – dann wirkt das alles vielleicht weniger wie ein riesiger Monolog.

Bis dahin,
Danke für die Aufmerksamkeit,

Hannes

Dieser Eintrag wurde veröffentlicht in IT. Lesezeichen auf den Permanentlink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert