Post 28
Windows

Windows und Office KMS-Aktivierung per Batch-Script

Die manuelle Aktivierung von Windows und Microsoft Office über einen KMS-Server ist in größeren Umgebungen mühsam. Ein einfaches Batch-Script übernimmt die gesamte Aktivierung automatisch – inklusive UAC-Prüfung und Fehlerbehandlung.

Voraussetzungen

Bevor das Script eingesetzt wird, müssen folgende Voraussetzungen erfüllt sein: Ein funktionierender KMS-Server muss im Netzwerk erreichbar sein (Port 1688 TCP), die Maschine muss Netzwerkkontakt zum KMS-Server haben, und das Script muss mit Administratorrechten ausgeführt werden. Letzteres übernimmt das Script selbst per UAC-Elevation.

Das vollständige Aktivierungs-Script

@echo off
setlocal

:: ============================================================
:: KMS Activation Script - Windows + Office
:: Setzt KMS-Server und aktiviert Windows und Office
:: ============================================================

set KMS_SERVER=kmsserver.domain.de
set KMS_PORT=1688

:: --- UAC Check: Adminrechte prüfen ---
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Keine Adminrechte. Starte mit Elevation...
    powershell -Command "Start-Process '%~f0' -Verb RunAs"
    exit /b
)

echo ============================================================
echo  KMS Aktivierung wird gestartet...
echo  KMS-Server: %KMS_SERVER%:%KMS_PORT%
echo ============================================================
echo.

:: --- Windows aktivieren ---
echo [1/4] KMS-Server fuer Windows setzen...
cscript //nologo %windir%system32slmgr.vbs /skms %KMS_SERVER%:%KMS_PORT%

echo [2/4] Windows aktivieren...
cscript //nologo %windir%system32slmgr.vbs /ato

echo.
echo [3/4] Windows Aktivierungsstatus:
cscript //nologo %windir%system32slmgr.vbs /dli

echo.
:: --- Office aktivieren (Office 2016/2019/2021) ---
echo [4/4] Office aktivieren...

:: Pfad zu ospp.vbs ermitteln (unterschiedlich je nach Office-Version)
set OSPP=""

if exist "%ProgramFiles%Microsoft OfficeOffice16ospp.vbs" (
    set OSPP="%ProgramFiles%Microsoft OfficeOffice16ospp.vbs"
)
if exist "%ProgramFiles(x86)%Microsoft OfficeOffice16ospp.vbs" (
    set OSPP="%ProgramFiles(x86)%Microsoft OfficeOffice16ospp.vbs"
)
if exist "%ProgramFiles%Microsoft OfficeOffice15ospp.vbs" (
    set OSPP="%ProgramFiles%Microsoft OfficeOffice15ospp.vbs"
)

if %OSPP%=="" (
    echo Office nicht gefunden oder bereits aktiviert. Uebersprungen.
    goto :done
)

echo Office gefunden: %OSPP%
cscript //nologo %OSPP% /sethst:%KMS_SERVER%
cscript //nologo %OSPP% /setprt:%KMS_PORT%
cscript //nologo %OSPP% /act

:done
echo.
echo ============================================================
echo  Aktivierung abgeschlossen.
echo ============================================================
pause

Erklärung der einzelnen Schritte

UAC-Prüfung: Der Befehl net session schlägt fehl, wenn das Script ohne Adminrechte läuft. In diesem Fall startet PowerShell das Script erneut mit RunAs – der bekannte Windows-UAC-Dialog erscheint.

Windows-Aktivierung: slmgr /skms setzt den KMS-Server, slmgr /ato startet die Aktivierung. Das //nologo-Flag bei cscript unterdrückt den Windows Script Host Banner für sauberere Ausgabe.

Office-Aktivierung: ospp.vbs ist das Pendant zu slmgr für Office. /sethst setzt den KMS-Host, /setprt den Port, und /act startet die Aktivierung. Das Script erkennt automatisch, ob Office 2013 oder 2016+ installiert ist.

Deployment über Gruppenrichtlinien

Das Script lässt sich ideal über eine GPO als Startskript verteilen. Unter Computerkonfiguration → Windows-Einstellungen → Skripts → Start trägt man das Script ein. So wird bei jedem Systemstart geprüft und ggf. neu aktiviert – ohne manuelle Eingriffe.

Alternativ kann das Script als geplante Aufgabe konfiguriert werden, die alle 30 Tage läuft und sicherstellt, dass die KMS-Aktivierung nicht abläuft.

Fehlerdiagnose

Wenn die Aktivierung fehlschlägt, helfen folgende Befehle bei der Diagnose:

:: KMS-Server Verbindung testen
telnet kmsserver.domain.de 1688

:: Detaillierte Lizenzinformation
cscript //nologo %windir%system32slmgr.vbs /dlv

:: Alle installierten Lizenzen anzeigen
cscript //nologo %windir%system32slmgr.vbs /dli all

Fazit

Dieses Script spart in Unternehmensumgebungen erheblich Zeit. Statt jeden Rechner manuell zu aktivieren, genügt ein Doppelklick oder die Verteilung per GPO. Die automatische UAC-Elevation stellt sicher, dass auch technisch weniger versierte Anwender das Script problemlos ausführen können.