kaspersky
Goto Top

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

Content-Key: 237412

Url: https://administrator.de/contentid/237412

Printed on: April 24, 2024 at 19:04 o'clock

Member: Rudbert
Rudbert May 07, 2014 at 13:08:18 (UTC)
Goto Top
Hallo,


ich habe dafür das VAMT (Volume Activation Management Tool) von MS genommen.


mfg
Member: Snowman25
Solution Snowman25 May 07, 2014, updated at May 08, 2014 at 06:30:12 (UTC)
Goto Top
Hallo @kaspersky,

ersetze Zeilen 2-5 durch
for /F "delims=" %%i in ('WMIC os get caption ^| FIND /i "Microsoft"') do SET kms=%%i  

Gruß,
@Snowman25
Member: colinardo
colinardo May 07, 2014 updated at 13:37:24 (UTC)
Goto Top
Moin,
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
so sollts dann aussehen:
IF "%kms%" == "Microsoft Windows 7 Professional" GOTO W7P  
IF "%kms%" == "Microsoft Windows 7 Enterprise" GOTO W7E  
Grüße Uwe

p.s. bitte nutze doch Tags für das posten von Quellcode-Beispielen. Merci.
Member: pieh-ejdsch
Solution pieh-ejdsch May 07, 2014, updated at May 08, 2014 at 06:29:25 (UTC)
Goto Top
Moin,

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
Member: kaspersky
kaspersky May 08, 2014 at 06:09:12 (UTC)
Goto Top
Ich weiss, dass da die Anführungszeichen fehlen. Habs mit allen Varianten probiert.
Member: kaspersky
kaspersky May 08, 2014 at 06:13:13 (UTC)
Goto Top
Das haben wir auch im Einsatz, da wir aber eine Universität sind und eine Novell / Unix / Linux Umgebung im Serverbereich haben und keine Windows Domäne im Einsatz haben funktioniert dies nicht. Damit im Vamt diese Einstellungen getätigt werden können, sind zwingend folgende Voraussetzungen zu erfüllen:
MS Domäne, Domänen Mitgliedschaft der ZielPC und Windows DNS, dieser befüllt das VAMT mit Infos. Da funktioniert das auch. Jedoch Bind unter Solaris liefert diese Infos nicht an die MS Umgebung.
Member: kaspersky
kaspersky May 08, 2014 at 06:32:56 (UTC)
Goto Top
Hi,
Vielen Dank für die schnelle Hilfe. Die Vorschläge von pieh-ejdsch und snowman führen beide zum Ziel.
Gruß Kaspersky