Lokale Konsole auf Windows Nano Server

Der Nano Server von Microsoft ist eigentlich dafür gedacht, headless ausgeführt zu werden und aus der Ferne mit der PowerShell administriert zu werden. Aber was ist, wenn man lokal auf das System möchte, aus was für Gründen auch immer?
Benötigt wird: ein Windows-Rechner mit regedit (falls keine Remoteverbindung besteht) und eine Festplatte mit Nano Server (virtuell oder physisch), die von Windows gelesen und eingehängt werden kann. (Windows kann Hyper-V-Festplatten nativ einhängen.).

Die erforderlichen Schritte ohne Remoteverbindung:

  • Festplatte auf dem Windows-Rechner einhängen.
    Mit dem Explorer ins Verzeichnis \Windows\system32\config wechseln und die Aufforderung, Eigentümer zu werden um das Verzeichnis lesen zu können, bestätigen.
  • Regedit aufrufen. Regedit kann unter HKLM und HKCU beliebige Hives einhängen.
    Datei>Struktur laden auswählen und im eben geöffneten config-Verzeichnis die Datei SOFTWARE auswählen.
    Einen Namen für diese Hive wählen, z. B. NanoServer.
  • Innerhalb der eingehängten Hive zum Verzeichnis Microsoft\WindowsNT\CurrentVersion\Winlogon wechseln.
    Dort den Wert des Schlüssels Shell von emt.exe auf cmd.exe ändern.
  • Hive wieder aushängen (Datei>Struktur entfernen), Festplatte aushängen und/oder auswerfen.

(Wenn man bereits Remotezugriff auf den Server hat, kann man sich die ersten Schritte sparen und mit der PowerShell direkt HKLM:\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell bearbeiten – ja, die PowerShell kann auf die Registry zugreifen.)

Jetzt kann man den Server (neu) starten, und nach wenigen Sekunden sollte cmd.exe auftauchen.
Am Ende des Artikels seht ihr auch den Beweis, dass auf einem Nano-Server eine PowerShell innerhalb einer cmd läuft, und das auch noch als NT AUTHORITY\SYSTEM.
Über die Shell kann man auch, da sie als SYSTEM läuft, die Notfallkonsole (emt.exe) starten, mit STRG+C kann man auf die Shell zurückkehren.
Hinweis: Nano Server verwendet das US-amerikanische Tastaturlayout, die Sonderzeichen sind also anders verteilt.

Trick 17: so ändert man die PowerShell-Prompt (in anderen Konsolen auch als PS1 bekannt): einfach die Funktion prompt neu definieren (der Rückgabewert wird als String interpretiert und als Prompt verwendet).

Wie immer: alles auf eigene Gefahr.

Hier das ganze noch mal in Bildern:
Vorher: die Notfallkonsole, mit der man nicht so viel anfangen kann.
Die Notfallkonsole von Nano Server.

Über Regedit die Software-Hive laden und bearbeiten.
Der Config-Ordner mit allen Hives.
Der Menüpunkt zum Laden von Hives in Regedit.
Die unter HKLM eingehänge Hive.
Der zu bearbeitende Schlüssel.

Jetzt: Nano Server mit interaktiver Shell.
Lokale cmd.exe auf einem Nano Server.
Ein paar grundlegende Informationen.