如何从启动 CD 获取许可证密钥?

如何从启动 CD 获取许可证密钥?

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

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

我尝试从 Windows Server 2003 R2 中读取的操作系统。

答案1

好的,我可以使用以下命令检索它:

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

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

Microsoft->Windows NT->Current Version->DigitalProductId

一旦我得到了该值(它很长,大约 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"

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

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

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

答案2

如果盒子上没有 OEM 许可证标签(肯定没有,否则你也不会在这里),那么产品密钥可以从微软的批量许可服务网站,甚至是您的经销商。

答案3

我不太清楚您是否成功清除了管理员密码。

http://www.petri.co.il/forgot_administrator_password.htm对于解决旧服务器和机器的密码丢失问题,这个网站 -> <- 一定是我发现的最有用的网站。

那里有一个出色的可启动 Linux 映像可供下载,它可让您轻松重置管理员密码。我用过很多次,每次都很管用。

完成后,您就可以登录 Windows,我们就可以解决您的 Windows 密钥问题。

您可以使用 BelArc 或 Magical Jellybean 密钥查找器等工具轻松获得它。

答案4

您应该能够从 winPE 磁盘运行类似 Magic Jellybean Keyfinder 的程序。

相关内容