Ich hab's einfach via GPO und .vbs script gelöst
Hier die Alpha der "read-key.vbs"
Code: Alles auswählen
On Error Resume Next
'Deklaration der Variablen
Dim objshell
Dim path
Dim DigitalID
'Dim Result
Dim FILE_LOG
Dim objSystemInfo
Dim strHostname
Dim ObjFso
Dim strUsername
' Create object WinNTSystemInfo
Set objSystemInfo = WScript.CreateObject("WinNTSystemInfo")
' Get local hostname
strHostname = objSystemInfo.ComputerName
strUsername = objSystemInfo.UserName
' Erzeuige Objekt für Logfile
Set ObjFso = CreateObject("Scripting.FileSystemObject")
Set objshell = CreateObject("WScript.Shell")
'Set registry key path
Path = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
'Registry key value
DigitalID = objshell.RegRead(Path & "DigitalProductId")
Dim ProductName,ProductID,ProductKey,ProductData
'Get ProductName, ProductID, ProductKey
ProductName = "Product Name: " & objshell.RegRead(Path & "ProductName")
ProductID = "Product ID: " & objshell.RegRead(Path & "ProductID")
ProductKey = "Installed Key: " & ConvertToKey(DigitalID)
ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey
' Lege Logfiledatei fest
FILE_LOG = "\\Netzwerk\Pfad\WindowsKeyInfo.txt"
' Schreibe Logfile
WriteLog Now & " " & strHostname & " " & ProductKey & " " & ProductName & " " & strUsername
'Convert binary to chars
Function ConvertToKey(Key)
Const KeyOffset = 52
Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert
'Check if OS is Windows 8
isWin8 = (Key(66) \ 6) And 1
Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
i = 24
Maps = "BCDFGHJKMPQRTVWXY2346789"
Do
Current= 0
j = 14
Do
Current = Current* 256
Current = Key(j + KeyOffset) + Current
Key(j + KeyOffset) = (Current \ 24)
Current=Current Mod 24
j = j -1
Loop While j >= 0
i = i -1
KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput
Last = Current
Loop While i >= 0
If (isWin8 = 1) Then
keypart1 = Mid(KeyOutput, 2, Last)
insert = "N"
KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
If Last = 0 Then KeyOutput = insert & KeyOutput
End If
ConvertToKey = Mid(KeyOutput, 1, 5) & "-" & Mid(KeyOutput, 6, 5) & "-" & Mid(KeyOutput, 11, 5) & "-" & Mid(KeyOutput, 16, 5) & "-" & Mid(KeyOutput, 21, 5)
End Function
' --Schreibe eine Log Datei--
Function WriteLog(Inhalt)
Dim FileOut
Set FileOut = ObjFso.OpenTextFile(FILE_LOG,8,true)
FileOut.WriteLine (Inhalt)
FileOut.Close
Set FileOut = Nothing
End Function