Guten Tag OPSI community,
ich würde gerne die Windows 10 Keys vieler Rechner automatisch auslesen und irgendwo zentral zusammenfassen.
das Standard-Paket swaudit ist dazu leider nicht in der Lage und lässt alle Key-Felder leer.
Hat das von euch schon einer mal gemacht mit z.B. dem Magical Jelly Bean Keyfinder?
Ich denke darüber nach diesen per OPSI-Skript bei jedem zu starten und den PC Namen samt Windows Key in einer Logdatei auf einem Netzlaufwerk-Share zu speichern. Geht das mal so ganz theoretisch gefragt?
Bin für Rat, Vorschläge, Ideen oder Warnungen offen
Windows 10 Keys auslesen
-
- Beiträge: 49
- Registriert: 13 Mär 2018, 11:36
Re: Windows 10 Keys auslesen
Ich hab's einfach via GPO und .vbs script gelöst
Hier die Alpha der "read-key.vbs"
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
Re: Windows 10 Keys auslesen
Die Windows-Keys sind ja mittlerweile eh alle in den BIOSen drin und wenn eine Win10-Maschine online geht, dann wird daraus bei Microsoft eine digitale Lizenz, mit dem sich Windows bei einer Neuinstallation aktiviert. Wenn Du aber trotzdem die Keys haben willst, dann geht das z.B. über
Code: Alles auswählen
Set $oemkey$ = GetOutStreamFromSection ('DosInAnIcon_get_OEM_key winst /sysnative')
Set $LicenseKey$ = takeString(2,$oemkey$)
[DosInAnIcon_get_OEM_key]
wmic path softwarelicensingservice get OA3xOriginalProductkey | findstr \-