如何从引导 CD 获取许可证密钥?

dub*_*Run 5 windows-server-2003 licensing boot

我们最近购买了一台使用了一段时间的服务器,但没有关联的软件、登录名等。我们尝试清空管理员帐户密码,但没有奏效。我们还尝试对密码进行一些更深入的编辑,但也无济于事。

现在我要做的是使用服务器上现有的注册表项重新安装 Windows。我读到您可以访问注册表中的产品密钥,并且使用密码工具(Linux 引导光盘)我们可以查看注册表。当我尝试这个时,我得到了 ProductId(Windows 的哪个版本),而不是注册表项。

我试图在 Windows Server 2003 R2 中读取的操作系统。

dub*_*Run 6

好的,我能够使用以下方法检索它:

下载 AC2T KeyViewer ( http://www.ac2tech.com/tools/keyviewer/keyviewer.zip )

我使用了一个密码重置工具(不确定它是什么,它只是我多年来一直使用的那个),它在启动 CD 上有一个注册表查看器。我导航到

Microsoft->Windows NT->Current Version->DigitalProductId
Run Code Online (Sandbox Code Playgroud)

一旦我得到那个值(它真的很长,大约 12 行十六进制),将整个内容输入到 KeyViewer 应用程序的“原始密钥”选项卡中。它应该会吐出您的产品密钥。请注意,这在某些版本的 Windows Server 中不起作用。

我发现的另一个替代方案是以下 powershell 脚本:

# create table to convert in base 24
$map="BCDFGHJKMPQRTVWXY2346789"
# Read registry Key
$value = (get-itemproperty "HKLM:\\SOFTWARE\Microsoft\Windows NT\CurrentVersion").digitalproductid[0x34..0x42]
# Convert in Hexa to show you the Raw Key
$hexa = ""
$value | foreach {
  $hexa = $_.ToString("X2") + $hexa
}
"Raw Key Big Endian: $hexa"

# find the Product Key
$ProductKey = ""
for ($i = 24; $i -ge 0; $i--) {
  $r = 0
  for ($j = 14; $j -ge 0; $j--) {
    $r = ($r * 256) -bxor $value[$j]
    $value[$j] = [math]::Floor([double]($r/24))
    $r = $r % 24
  }
  $ProductKey = $map[$r] + $ProductKey 
  if (($i % 5) -eq 0 -and $i -ne 0) {
    $ProductKey = "-" + $ProductKey
  }
}
"Product Key: $ProductKey"
Run Code Online (Sandbox Code Playgroud)

在此脚本中,您可以将 $value 变量替换为以下内容:

  1. 从无法启动的机器上找到上面注册表值中的内存位置 34 到 42。
  2. 将每对数字转换为十进制(即 A1=161)
  3. 使用这些值构建一个数组,例如。$value = (161,...)

运行脚本然后返回您的产品密钥。