Windows Installations-Keys sichern

1. August 2018

Falls bestimmte Windows-Clients und deren Produktschlüssel noch nicht sauber dokumentiert sind, sollten die Systembetreuer diese auslesen, und in die Dokumentationsunterlagen eintragen. Besonders „Dual-Use-Systeme“, sprich halb-private Systeme oder BYOD-Geräte (Bring Your Own Device) sollten dabei in den Fokus der Systembetreuer rücken. Mit den passenden Powershell-Cmdlets lassen sich die Keys schnell und effektiv auslesen, und beispielsweise in einer „TXT-Datei“ abspeichern. Hier hilft das passende Powershell-Skript vom „OneScript Team“ auf Technet weiter:

 #Convert binary to serial number 
Function ConvertToKey($Key)
{
    $Keyoffset = 52 
    $isWin8 = [int]($Key[66]/6) -band 1
    $HF7 = 0xF7
    $Key[66] = ($Key[66] -band $HF7) -bOr (($isWin8 -band 2) * 4)
    $i = 24
    [String]$Chars = "BCDFGHJKMPQRTVWXY2346789"    
    do
    {
        $Cur = 0 
        $X = 14
        Do
        {
            $Cur = $Cur * 256    
            $Cur = $Key[$X + $Keyoffset] + $Cur
            $Key[$X + $Keyoffset] = [math]::Floor([double]($Cur/24))
            $Cur = $Cur % 24
            $X = $X – 1 
        }while($X -ge 0)
        $i = $i- 1
        $KeyOutput = $Chars.SubString($Cur,1) + $KeyOutput
        $last = $Cur
    }while($i -ge 0)
    
    $Keypart1 = $KeyOutput.SubString(1,$last)
    $Keypart2 = $KeyOutput.Substring(1,$KeyOutput.length-1)
    if($last -eq 0 )
    {
        $KeyOutput = "N" + $Keypart2
    }
    else
    {
        $KeyOutput = $Keypart2.Insert($Keypart2.IndexOf($Keypart1)+$Keypart1.length,"N")
    }
    $a = $KeyOutput.Substring(0,5)
    $b = $KeyOutput.substring(5,5)
    $c = $KeyOutput.substring(10,5)
    $d = $KeyOutput.substring(15,5)
    $e = $KeyOutput.substring(20,5)
    $keyproduct = $a + "-" + $b + "-"+ $c + "-"+ $d + "-"+ $e
    $keyproduct 
}

Florian Huttenloher

Lesen Sie auch