KMS – Freund und Feind zugleich…


sehr verwirrender ArtikelNaja, ganz OKbrauchbar für Checker...guter Artikelsehr guter Artikel - Danke [5 Bewertung, Durchschnitt: 4,60]

Key Management Service (KMS) – eine Übersicht

Wer von Windows XP auf Windows 7 migriert (hat), wird schon bemerkt haben, dass die Art der Lizenzierung / Aktivierung (bei XP zu Erinnerung: Campuslizenz mit einem Key, der bereits im geklonten Image bereitgestellt werden kann) rapide geändert wurde.

Grundsätzlich gibt es 2 Möglichkeiten:
Die zentrale Aktivierung via KMS-Server (und daher bessere) und die dezentrale mit Eingabe der MAKs auf den einzelnen Clients inkl. manueller Aktivierung (und daher wesentlich arbeitsintensivere und schlechtere.)

Da mein Credo zu allen Tages- und Nachtzeiten (in Ahnlehnung an die schweizer Kollegen) lautet “Real Men don’t click [more than necessarily]” verzichte ich auf die Besprechung der MAK-Variante völlig und wende mich nun in weiterer Folge der Konfiguration eines KMS-Servers (inkl. aller dabei auftretenden Schwierigkeiten) zu!

Step by Step Anleitung: “Installation eines funktionierenden KMS-Servers”

1.) Windows Server 2008 R2 installieren und manuell mittes des über die MS-ACH erhaltenen MAKs für Windows Server 2008 aktivieren (Start >> Systemsteuerung >> System >> Windows Aktivierung)

2.) KMS aktivieren
eine Command-Shell [= Eingabeaufforderung] als Administrator starten (rechte Maustaste >> “als Administrator ausführen”), dann folgende Befehle in der angeführten Reihenfolge absetzen:

cscript C:\windows\system32\slmgr.vbs /ipk <KMS Key>
cscript C:\windows\system32\slmgr.vbs /ato

Hinweis: nach jedem Befehl öffnet sich eine Meldung, die den Erfolg der Aktion ausgibt

3.) Firewall kontrollieren, ob der KMS auch “einen Passierschein hat”
[Stichwort: eingehende Regeln >> Schlüsselverwaltungdienst (TCP eingehend) >> Zulassen ]

4.) Eintrag am DNS-Server kontrollieren
DNS-Management-Konsole >> Forward-Lookupzonen >> FQDN >> _TCP >> _VLMCS (Eintrag des Servers, der
den KMS-Host darstellt
(Falls dieser Eintrag fehlt:
>> Forward-Lookupzonen >> FQDN >> _TCP >> rechte Maustaste >> weitere neue Einträge >> Dienstidentifizierung (SRV) >>  Dienst: _VLMCS // Protokoll: _tcp // Priorität: 0 // Gewichtung: 0 // Portnummer: 1688 // Host, der diesen Dienst anbietet = FQDN des KMS-Servers // beide Kontrollkästchen bleiben leer // Gültigkeit 0:1:0:0)

5.) KMS kontrollieren
Start / Ausführen:  slmgr.vbs /dli
Es erscheint – nach kurzem Warten – ein Popup mit einigen Daten, unter anderem der Zeile
aktuelle Anzahl: 7 (wobei hier 7 nur ein Beispiel ist…)

Sollten die Clients nicht innerhalb kürzester Zeit die Aktivierung erhalten, dann lohnt sich die weitere Lektüre dieses Artikels garantiert!!!!

Problemfelder bei der Lizenzierung mittels KMS
(Arbeitstitel: der Dreck funktioniert bei mir nicht…):

1.) Der KMS arbeitet erst ab einer durch ihn verwalteten Anzahl von 25 Clients!!!!

PROBLEM:
selbst, wenn man > 200 (z. B. mit WDS) geklonte Clients in Betrieb hat, kann es dennoch sein, dass den Clients die Aktivierung mit folgender Fehlermeldung verwehrt wird:

0xC004F038
Vom Softwarelizenzierungsdienst wurde gemeldet, dass der Computer nicht aktiviert werden konnte. Die vom Schlüsselverwaltungsdienst (Key Management Service, KMS) gemeldete Anzahl reicht nicht aus. Wenden Sie sich an den Systemadministrator.

die Ursache hierfür könnte nun darin liegen, dass wir zwar mehr als 25 Clients verwalten möchten, der KMS-Server aber keinen Unterschied zwischen unseren Clients erkennt…
Mit anderen Worten: für ihn gleichen unsere Clients wie ein Ei dem anderen…
Dies führt uns zu folgendem:

2.) mindestens 25 Clients müssen eine unterschiedliche CMID haben!
damit einhergehend:
3.) What the hell is a CMID?

Jeder Client generiert überlicherweise eine einzigartige Client Machine ID (CMID). Um dies zu gewährleisten, sollten Clients vor deren Klonen auch mit
sysprep /generalize [/oobe /shutdown]

darauf vorbereitet werden.

Sollte das Klonen per Windows Deployment Service (WDS) erfolgen, so ist zwecks Lite- bzw. Zerotouch-Deployment das Hinterlegen einer ImageUnattend.xml unumgänglich!

Sollte nun in dieser ImageUnattend.xml der Eintrag
<SkipRearm>1</SkipRearm>
vorhanden sein, dann werden – auch bei fehlerfrei ausgeführtem SYSPREP – keine neuen CMIDs generiert.

Daher zählt der KMS auch die Anzahl der Anfragen nicht hinauf, und dann wären wir wieder bei Problem Nummer 1: der KMS arbeitet erst aber einer Anzahl von 25 Clients!!!

4.) Zwischenfrage: Welche CMID hat der Client?

Grundsätzlich scheint die CMID auf, wenn man am Client slmgr.vbs /dli ausführt UND der Client bereits aktiviert ist!
Wenn der Client noch nicht aktiviert ist (was auch der Fall sein dürfte, sonst wäre uns die CMID nämlich ziemlich
všecko jedno) funktioniert dies aber nicht!

Um bei nicht aktivierten Clients die CMID zwecks Vergleichens zu ermitteln, ist ein Blick in die Ereignisanzeige anzuraten:

Protokollname: Application
Quelle:        Microsoft-Windows-Security-SPP
Datum:         20.02.2012 23:58:24
Ereignis-ID:   12288
Aufgabenkategorie:Keine
Ebene:         Informationen
Schlüsselwörter:Klassisch
Benutzer:      Nicht zutreffend
Computer:      DV101.hak-neusiedl.local
Beschreibung:
Vom Client wurde eine Aktivierungsanforderung an den Computer mit dem Schlüsselverwaltungsdienst gesendet.
Info:
0×00000000, 0×00000000, wicky.hak-neusiedl.local:1688, 586a12e2-5e2f-4c55-a6c0-0152af448ec4, 2012/02/20 22:58, 0, 3, 43200, ae2ee509-1b34-41c0-acb7-6d4650168915, 25

CMID in diesem Fall:586a12e2-5e2f-4c55-a6c0-0152af448ec4

Wenn nun alle geklonten Clients eine idente CMID haben, dann wäre es nun an der Zeit für folgendes:

4.) Holt mich hier raus, ich bin ein Star ;-)

3 Lösungsansätze stehen zur Verfügung (The Good, The Bad, The Ugly)

LÖSUNG – Variante 1
>> mindestens 25 Clients neu zu klonen:
(The UGLY!)

die richtige Vorgehensweise dabei:
Client vorbereiten mit
sysprep /generalize /oobe /shutdown
+
in der ImageUnattend.xml
<SkipRearm>0</SkipRearm>

Nachteil dieser Variante: Arbeitsintensiv, im laufenden Betrieb nicht machbar!

LÖSUNG – Variante 2
>> mindestens 25 Clients manuell mit neuen CMIDs versehen:
(The BAD)

Wenn slmgr.vbs /rearm am Client ausgeführt wird, so wird eine neue CMID generiert.
Btw: Dies kann auf jedem Client bis zu 3 mal wiederholt werden, die aktuell verbleibende Anzahl kann am Client mit slmgr.vbs /dlv abgelesen werden!

Da mindestens 25 Clients mit unterschiedlicher CMID zu einem funktionierenden KMS führen würde, könnten wir jetzt kurzerhand zu 25 Clients laufen, dort slmgr.vbs /rearm eingeben, jeden Client neu starten und der KMS läuft jetzt endlich!

Doch halte inne und bedenke:
Real Men don’t click (and – of course -  don’t run around)

LÖSUNG – Variante 3
>> mindestens 25 Clients per Startscript mit neuen CMIDs versehen:

(The GOOD!!!!)

Hier ein Script, das – per Gruppenrichtlinie als Starskript – für Dich die Arbeit erledigt:

'############## Edi Pfisterer -- 11/5/2012 -- REARM_IT ##############

on Error resume next
logdatei = "c:\rearm.txt"
Set fs = CreateObject("Scripting.FileSystemObject")
If NOT fs.FileExists (logdatei) then

'############################ just rearm it, baby ############################'

Set WshShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run("wscript ""c:\windows\system32\slmgr.vbs"" /rearm ")

'##########################   LOGDATEI schreiben, die anzeigt,
ob REARM schon einmal gelaufen ist ########################

    Set a = fs.CreateTextFile(logdatei, True)
    a.WriteLine("rearmed wurde am " & now())
    a.Close
END IF

Funktionsweise:
Es wird auf C:\ eine Datei namens rearm.txt angelegt, weiters wird slmgr.vbs /rearm aufgerufen.
Beim nächsten Aufruf des Startscripts wird geprüft, ob die rearm.txt vorhaden ist, und in diesem Fall auf slmgr.vbs /rearm verzichtet….

5. wie schauts mit einer GUI aus?

Kein Problem! Mit dem VAMT (Volume Activation Management Tool) 2.0 (ACHTUNG: ZWEI — PUNKT — NULL // Das 1.0 war zum Vergessen!!!) hat man ein feines Tool zur Hand, das einen klaren Überblick über die Lizenzierungssituation gibt!
Aber ACHTUNG: Wenn der KMS nicht richtig funktioniert, dann wir man mit dem VAMT auch keinen Spass haben!!! Das VAMT ersetzt den KMS NICHT!!!

Vorgangsweise Installation / Verwendung von Volume Activation Management Tool:

  • VAMT 2.0 bei Microsoft downloaden (googlen ist den Menschen zumutbar)
  • am KMS installieren und starten
  • im mittleren Fenster “Search for computers in the Active Directory” auswählen
  • alle im unteren, mittleren Fenster gefunden Clients mit STRG + A makieren
  • Rechte Maustaste >> Update Status / Current Credential (sofern man als Domainadmin angemeldet ist)
  • Nun erfolgt eine Einteilung in
    Licensed
    Out-of-Box
    Out of Tolerance Grace
    (Tipp: Falls dort alle Clients landen und keine bei Licensed, dann wurde das Problem der identen CMIDs – noch – nicht gelöst!)
  • Wenn sich noch nicht alle Clients unter “Licensed” einreihen, dann hilft
    recht Maustaste auf den/die Clients >> Activate >> KMS Activate >> …

Im Idealfall sieht das ganze dann so ähnlich aus (in dieser Umgebung sind > 160 Clients vorhanden, da wäre eine Aktivierung via MAKs kein Spass gewesen…):

Da fällt mir mein Schwager ein, der bei dieser Gelegenheit sagen würde
“Hätte es immer schon SO ausgesehen, hätte man nichts machen müssen… ;-)

FAZIT:

Der KMS ist – wenn man eine große Anzahl von Windows 7 Clients administrieren darf – eine feine Sache! Wenn er erst einmal funktioniert…


This entry was posted in Key Management Service (KMS), Scripts, VBScript, Windows Deployment Services. Bookmark the permalink.

6 Responses to KMS – Freund und Feind zugleich…

  1. iocus says:

    Es ist tröstlich zu lesen, dass sich auch andere Schulen mit dieser absurden Zählweise herumschlagen müssen. Nach einer längeren “Untätigkeit” der Client-PCs fällt ja der KMS unter die Grenze von 25 aktivierten Maschinen.

    Weil wir es für zu dämlich hielten, neben den geklonten Maschinen neue Maschinen von Hand aufzusetzen und zu aktivieren, nur um diese CMID zu generieren, haben wir den gesamten Vorgang automatisiert: Ein Script spielt ihn bei Bedarf jede Nacht so oft durch, bis der KMS mindestens 50 aktivierte Clients anzeigt. Stichwort: VIX API

  2. Ein sehr hilfreicher Artikel.
    Die /rearm – Option hat den Counter dann doch zum Hochzählen gebracht. Wenn einmal 25 erreicht sind, geht es ohne diesen Schalter.
    Das beschriebene gui ist hier schon eine Weile lang aktiv, jedoch kann es auch erst einwirken, wenn die CMID geändert ist. Das Problem bei der Angelegenheit ist, dass eine große Menge an Lösungen im Netz zu finden ist, jedoch selten so dargestellt, dass man sein Problem versteht. Erst wenn man die tatsächliche Ursache kennt, ist der Lösungsweg klar.

    Vielen Dank für die umfangreiche und nützliche Darstellung.

    H.Pechtold
    Staatl. BS Lichtenfels/Bayern

    • Edi Pfisterer says:

      Danke für die Blumen ;-)
      Albert Einstein sagte einst schon:
      “Das Problem zu erkennen ist wichtiger, als die Lösung zu erkennen, denn die genaue Darstellung des Problems führt zur Lösung.”

      Schönes Schuljahr,
      lg
      Edi

  3. Tumai says:

    Hallo,

    weiß zufällig jemand wie ich VERHINDERE dass Clients die in meinem Netzwerk sind einfach ihre Produkte mit dem KMS aktivieren? Ich will das nur durch Admins manuell autorisierte Clients das dürfen..

    Danke!

  4. harald says:

    Was ist hier falschgelaufen mein KMS setzt die Aktuelle ANzahl immer wieder zurück->dann hab ich das Problem mit unter 25…

    • Edi Pfisterer says:

      Lies Dir nochmal den Artikel durch!
      Die Anzahl wird dadurch zurückgesetzt, dass sich
      a) die Clients lange Zeit nicht am KMS gemeldet haben
      b) die Clients sich für den KMS nicht voneinander unterscheiden…

      Nach den Ferien (falls Du in einer Schule bist) ist es normal, dass die Anzahl sehr niedrig ist…

Hinterlasse eine Antwort