HowTo: Windows-VM mit lokalem Administrator-Passwort erstellen
Windows-VM mit lokalem Administrator-Passwort via Cloud-Init/Cloudbase-Init setzen
Dieser Artikel zeigt, wie Sie beim Erstellen einer Windows‑VM in der TelemaxX OpenCloud ein lokales Administrator‑Konto samt Passwort automatisch per Cloud‑Init (Cloudbase‑Init) konfigurieren. Zusätzlich werden KMS‑Aktivierung, Zeitzone, RDP‑Freigabe und ein Neustart ausgeführt.
Voraussetzungen
- Zugriff auf das Horizon Dashboard der TelemaxX OpenCloud
- Projektberechtigung zum Erstellen von Instanzen
- Windows‑Image mit Cloudbase‑Init Unterstützung (gängige TelemaxX Windows‑Images bringen das in der Regel mit)
- Optional: Security‑Gruppe/Firewallregel für RDP (TCP 3389) geöffnet
Schritt für Schritt Anleitung
1) Einloggen & Instanzstart
Horizon → Ihr Projekt → Compute → Instances → Launch Instance.

2) Basis‑Details festlegen
- Instanzname, Flavor (CPU/RAM/Disk)
- Windows‑Image auswählen
- Netzwerk und (falls benötigt) Floating IP zuweisen
3) User Data (Cloud‑Init) einfügen
Im Tab Configuration / Customization Script das folgende Skript einfügen.
Es setzt die Zeitzone, aktiviert und konfiguriert KMS, legt den lokalen Admin localadmin
an, vergibt das im Script hinterlegte Passwort, erlaubt RDP und startet die VM neu.
- Geben sie in dem Script das
<PASSWORT>
an. - Geben Sie außerdem den
<KMS SCHLÜSSEL>
an. Hinweise hierzu finden sie auf https://learn.microsoft.com/de-de/windows-server/get-started/kms-client-activation-keys
#cloud-config
set_timezone: Europe/Berlin
runcmd:
- cscript //B %windir%\system32\slmgr.vbs /upk
- cscript //B %windir%\system32\slmgr.vbs /ipk <KMS SCHLÜSSEL>
- cscript //B %windir%\system32\slmgr.vbs /skms license.opencloud.telemaxx.de:1688
- cscript //B %windir%\system32\slmgr.vbs /ato
- timeout /t 15 /nobreak > NUL
- net user localadmin /add
- net localgroup Administrators localadmin /add
- net user localadmin /active:yes
- net user localadmin <PASSWORT>
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
- netsh advfirewall firewall set rule group="remote desktop" new enable=yes
- echo "cloud-init executed" > C:\cloud-init-done.txt
- shutdown /r /t 15 /f
Hinweise
- Das Beispiel legt einen lokalen Administrator
localadmin
an. Benutzername/Passwort können Sie im Skript anpassen.- Die Kommandos laufen beim ersten Boot über Cloudbase‑Init.
- Der Befehl
shutdown /r /t 15 /f
initiiert nach der Konfiguration einen Neustart (empfohlen).- Die KMS‑Befehle konfigurieren den Aktivierungsserver
license.opencloud.telemaxx.de:1688
und aktivieren Windows. Passen Sie die Edition/Key ggf. an Ihr Image an.![]()
4) Instanz starten
Einstellungen prüfen → Launch.
5) Verbindung testen (RDP)
Nach dem ersten Boot und automatischem Neustart:
- Öffnen Sie die Security‑Gruppe/Firewall (RDP TCP 3389).
- Verbinden Sie sich via RDP auf die Floating IP / externe IP.
- Login: Benutzername
localadmin
, Passwort<Ihr festgelegtes Passwort>
(aus dem angepassten Customization Script).
Sicherheitshinweise
- Passwort anpassen: Setzen Sie ein projektspezifisches, starkes Passwort.
- Rotation: Passwort nach Erstlogin ändern oder per Automatisierung rotieren.
- Least Privilege: Falls kein lokaler Admin nötig ist, entfernen oder deaktivieren.
- RDP absichern: Zugriff auf vertrauenswürdige Quellnetze beschränken und ggf. VPN verwenden.
Fehlerbehebung
Symptom | Mögliche Ursache | Maßnahme |
---|---|---|
Keine RDP‑Verbindung | Security‑Gruppe/Firewall blockiert, RDP nicht freigeschaltet | Regel für TCP 3389 prüfen, Skript‑Schritt zur RDP‑Freigabe kontrollieren |
Passwort funktioniert nicht | Befehl nicht ausgeführt, Sonderzeichen/Encoding‑Problem | Cloudbase‑Init Logs prüfen (C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\cloudbase-init-unattend.log und cloudbase-init.log ) |
KMS‑Aktivierung fehlgeschlagen | Falscher Key/Edition, kein Reachability zum KMS | Key/Edition abgleichen, Netzpfad zum KMS prüfen, erneut slmgr /ato ausführen |
Skript insgesamt nicht ausgeführt | User‑Data nicht als cloud-config übergeben, falscher Tab | Im richtigen Feld User Data einfügen, YAML‑Block unverändert übernehmen |
Updated 20 days ago