Batchdatei zur Umstellung von MAK auf KMS Aktivierung, Fehlermeldung: Windows kann syntaktisch an dieser Stelle nicht verarbeitet werden.
Hi,
Windows 7, 8, 8.1 Workstations sollen von MAK auf KMS Aktivierung umgestellt werden. Da diese Keys bei den einzelnen Versionen (Professional, bzw Enterprise) variieren, ist es erforderlich, für jede Variante den Produktkey einzupflegen. Dies funktioniert in der Kommandozeile ohne Probleme mit den Befehlen
slmgr.vbs /ipk "Produktkey"
slmgr.vbs /ato
Meine Batch funktioniert einwandfrei bis zur Erstellung der Variable KMS, danach keine Funktion. Sämtliche Sprungmarken werden ignoriert. GOTO hat keine Funktion. Kann mir jemand mit Tips weiterhelfen?
Hier die Batch:
@echo OFF
IF EXIST kms DEL kms
WMIC os get caption | FIND /i /v "caption" >> kms
SET kms=
SET /P kms=<kms >NUL
ECHO %kms%
REM Ausgaben der Abfrage bei den unterschiedlichen Betriebsystemen:
REM Microsoft Windows 7 Professional
REM Microsoft Windows 7 Enterprise
REM Microsoft® Windows Server® 2008 Standard
REM Microsoft Windows Server 2008 R2 Standard
REM Microsoft Windows Server 2008 R2 Enterprise
IF %kms% == "Microsoft Windows 7 Professional" GOTO W7P
IF %kms% == "Microsoft Windows 7 Enterprise" GOTO W7E
:W7P
ECHO richtig
GOTO END
:W7E
ECHO falsch
GOTO END
:W8P
:W8E
:W81P
:W81P
:W2K8P
:W2K8R2P
:W2K8R2E
:END
echo %kms%
REM Loeschen der gesetzten Variable
set kms=
REM Loeschen der temporaer angellegten Datei
DEL kms /F
PAUSE
Windows 7, 8, 8.1 Workstations sollen von MAK auf KMS Aktivierung umgestellt werden. Da diese Keys bei den einzelnen Versionen (Professional, bzw Enterprise) variieren, ist es erforderlich, für jede Variante den Produktkey einzupflegen. Dies funktioniert in der Kommandozeile ohne Probleme mit den Befehlen
slmgr.vbs /ipk "Produktkey"
slmgr.vbs /ato
Meine Batch funktioniert einwandfrei bis zur Erstellung der Variable KMS, danach keine Funktion. Sämtliche Sprungmarken werden ignoriert. GOTO hat keine Funktion. Kann mir jemand mit Tips weiterhelfen?
Hier die Batch:
@echo OFF
IF EXIST kms DEL kms
WMIC os get caption | FIND /i /v "caption" >> kms
SET kms=
SET /P kms=<kms >NUL
ECHO %kms%
REM Ausgaben der Abfrage bei den unterschiedlichen Betriebsystemen:
REM Microsoft Windows 7 Professional
REM Microsoft Windows 7 Enterprise
REM Microsoft® Windows Server® 2008 Standard
REM Microsoft Windows Server 2008 R2 Standard
REM Microsoft Windows Server 2008 R2 Enterprise
IF %kms% == "Microsoft Windows 7 Professional" GOTO W7P
IF %kms% == "Microsoft Windows 7 Enterprise" GOTO W7E
:W7P
ECHO richtig
GOTO END
:W7E
ECHO falsch
GOTO END
:W8P
:W8E
:W81P
:W81P
:W2K8P
:W2K8R2P
:W2K8R2E
:END
echo %kms%
REM Loeschen der gesetzten Variable
set kms=
REM Loeschen der temporaer angellegten Datei
DEL kms /F
PAUSE
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 237412
Url: https://administrator.de/contentid/237412
Ausgedruckt am: 24.11.2024 um 05:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo @kaspersky,
ersetze Zeilen 2-5 durch
Gruß,
@Snowman25
ersetze Zeilen 2-5 durch
for /F "delims=" %%i in ('WMIC os get caption ^| FIND /i "Microsoft"') do SET kms=%%i
Gruß,
@Snowman25
Moin,
und in diesen Zeilen wurden die "Anführungszeichen" um das %kms% vergessen:
so sollts dann aussehen:
Grüße Uwe
p.s. bitte nutze doch Tags für das posten von Quellcode-Beispielen. Merci.
und in diesen Zeilen wurden die "Anführungszeichen" um das %kms% vergessen:
IF %kms% == "Microsoft Windows 7 Professional" GOTO W7P
IF %kms% == "Microsoft Windows 7 Enterprise" GOTO W7E
IF "%kms%" == "Microsoft Windows 7 Professional" GOTO W7P
IF "%kms%" == "Microsoft Windows 7 Enterprise" GOTO W7E
p.s. bitte nutze doch Tags für das posten von Quellcode-Beispielen. Merci.
Moin,
Wenn Du alle Marken verkürzt kannst Du die For-Ausgabe auch verkürzen:
Gruß Phil
Wenn Du alle Marken verkürzt kannst Du die For-Ausgabe auch verkürzen:
@echo off
setlocal
for /f "tokens=2-6delims=cropfestivnawld®. " %%a in ('"WMIC os get caption | FIND /i /v "caption""') do call :%%a%%b%%c%%d%%e
goto :eof
:WRT81
echo %0
exit /b 0
:W7P
echo %0
exit /b 0
:W7E
echo %0
exit /b 0
:WS2008S
echo %0
exit /b 0
:WS2008R2S
echo %0
exit /b 0
:WS2008R2E
echo %0
exit /b 0
Gruß Phil