PoshCode Archive  Artifact [0d53106ab7]

Artifact 0d53106ab76938facecd8a753ae3234658d8c2a2cad99363424182aef5997b09:

  • File get-windows-product-key.ps1 — part of check-in [9b32daf3ca] at 2018-06-10 13:55:49 on branch trunk — retrieve the windows product key of a specified machine using WMI (user: greg zakharov size: 1085)

# encoding: ascii
# api: powershell
# title: get windows product key
# description: retrieve the windows product key of a specified machine using WMI
# version: 0.1
# type: function
# author: greg zakharov
# license: CC0
# function: Get-ProductKey
# x-poshcode-id: 5479
# x-archived: 2014-10-08T03:38:39
# x-published: 2014-10-02T14:56:00
#
#
function Get-ProductKey([String]$Computer = '.') {
  <#
    .NOTES
        Author: greg zakharov
  #>
  begin {
    $val = [Byte[]]([wmiclass]('\\' + $Computer + '\root\default:StdRegProv')).GetBinaryValue(
      2147483650, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'DigitalProductId'
    ).uValue[52..66]
    $map = "BCDFGHJKMPQRTVWXY2346789"
    $key = ""
  }
  process {
    for ($i = 24; $i -ge 0; $i--) {
      $k = 0
      for ($j = 14; $j -ge 0; $j--) {
        $k = ($k * 256) -bxor $val[$j]
        $val[$j] = [Math]::Floor([Double]($k / 24))
        $k = $k % 24
      }
      $key = $map[$k] + $key
      if (($i % 5) -eq 0 -and $i -ne 0) {$key = "-" + $key}
    }
  }
  end {$key}
}