Gelegentlich, z.B. für Audits oder ähnliches, müssen die verwendeten Lizenzschlüssel der einzelnen Microsoft Server, bestehend aus Betriebssystem und eventuell vorhandener Microsoft Applikation wie z.B. den SQL Server ausgelesen werden. Für beide Operationen gibt es unterschiedliche Scripte im Internet zu finden. Vorstellen werde ich eins für den SQL Server und eins für das Betriebssystem von Microsoft. Beide sollten ihren Nutzen in einer homogenen Microsoft Landschaft ausspielen. Sie können für kommerzielle als auch private Audits genutzt werden.
SQL Server Lizenz
Das Script habe ich gefunden bei:
https://gallery.technet.microsoft.com/scriptcenter/Get-SQL-Server-Product-4b5bf4f8
Voraussetzung ist die Verwendung von Powershell. Es lassen sich lokale Keys als auch remote Keys auslesen. Es stellt die SQL Instanz, die SQL Version und Edition, und natürlich den Lizenz Key bereit.
Beispiele:
Get-SqlServerKeys
Holt die SQL Server Version, Edition und Key der lokalen Maschine
Get-SqlServerKeys sqlservera, sqlserver2014a, sql01
Holt die SQL Version, Edition und Keys für alle Instanzen auf sqlservera, sqlserver2014a und sql01.
Get-SqlServerKeys -CentralMgmtServer sqlserver01
Holt die SQL Server version, Edition und Keys für alle SQL Server Datenbank Instanzen innerhalb des Central Management Server auf sqlserver01
Get-SqlServerKeys -ServersFromFile C:\Scripts\servers.txt -verbose
Holt die SQL Server Version, Edition und Keys für alle SQL Server die in C:\Scripts\servers.txt gelistet sind.
Windows Betriebssystem
Für die Betriebssystem Lizenz habe ich ein VBS Script in der Microsoft Community gefunden, welches ich euch nicht vorenthalten möchte. Gefunden habe ich es hier:
Kopiert dazu folgende Codezeilen in einem Editor wie z.B. Notepad und speichert es mit der Endung .vbs ab.
Set WshShell = CreateObject("WScript.Shell") MsgBox ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId")) Function ConvertToKey(Key) Const KeyOffset = 52 i = 28 Chars = "BCDFGHJKMPQRTVWXY2346789" Do Cur = 0 x = 14 Do Cur = Cur * 256 Cur = Key(x + KeyOffset) + Cur Key(x + KeyOffset) = (Cur \ 24) And 255 Cur = Cur Mod 24 x = x -1 Loop While x >= 0 i = i -1 KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput If (((29 - i) Mod 6) = 0) And (i <> -1) Then i = i -1 KeyOutput = "-" & KeyOutput End If Loop While i >= 0 ConvertToKey = KeyOutput End Function