Wo läuft ein Script: lokal, in einer VM oder auf dem Terminal-Server?


Tags: ,
I like Google Plus

Wenn sich ein Script auf einer Workstation anders verhalten soll als auf einem Server, oder auf einer physikalischen Maschine anders als in einer VM, dann muss man zwangsläufig während der Laufzeit herausfinden, in welcher Umgebung es ausgeführt wird. Besonders Batch-Dateien bieten zu diesem Zweck keine geeignete Mittel an, am ehesten eignen sich eventuell vorhandene eindeutige Umgebungsvariablen. Einfacher und verlässlicher funktioniert es mit dem kostenlosen MachineTypeCheck von Gridmetric.

Wenn man das Kommandozeilen-Tool interaktiv nutzt, dann gibt es beim Aufruf die ermittelte Umgebung auf dem Bildschirm aus. Dabei unterscheidet es 5 Kontexte: physikalische oder virtuelle Workstation, physikalischer oder virtueller Server sowie RDS- bzw. Terminal-Server.

Verschiedene Rückgabewerte je nach Umgebung

Das Ergebnis in Form von Zeichenketten auf stdout ist innerhalb von Scripts kaum von Nutzen, weshalb sich die ermittelte Ablaufumgebung dort über den Rückgabewert in der Variablen %errorlevel% abfragen lässt. Das folgende Fragment einer Batch-Datei zeigt das Vorgehen und dokumentiert die Return-Codes für die jeweiligen Umgebungen:

@echo off
MachineTypeCheck.exe > nul
if %ERRORLEVEL% == 4 echo "Terminal-Server oder Remote Desktop Session Host"
if %ERRORLEVEL% == 3 echo "Virtueller Server"
if %ERRORLEVEL% == 2 echo "Physikalischer Server"
if %ERRORLEVEL% == 1 echo "Virtuelle Workstation oder VDI-Instanz"
if %ERRORLEVEL% == 0 echo "Physikalische Workstation"

Die Umleitung der Ausgabe von MachineTypeCheck.exe zum NUL-Device soll verhindern, dass die Software ihre Auskünfte auf den Bildschirm schreibt. In einer praktischen Anwendung würden anstelle der echo-Anweisungen typischerweise goto-Befehle stehen, mit denen man zu den umgebungsspezifischen Blöcken verzweigen kann.

Die Software kann kostenlos von der Website des Herstellers heruntergeladen werden. Sie muss nicht installiert werden, sondern lässt sich nach dem Auspacken aus dem ZIP-Archiv direkt ausführen. Sie setzt das .NET-Framework 2.0 voraus.

Keine Kommentare

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht angezeigt. Wenn mit Ihrer angegebenen Mail-Adresse ein Gravatar verknüpft ist, dann wird dieser neben Ihrem Kommentar eingeblendet.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • Mail-Adressen werden im Seitenquelltext unkenntlich gemacht, um sie vor dem automatischen Erfassen durch Spammer zu schützen.

Weitere Informationen über Formatierungsoptionen