从私有注册表中检索Visual Studio 2017(企业版)密钥

8
我买了一个新的SSD,想要重新安装Windows 10和Visual Studio Enterprise 2017。问题是,我以前是学生,在"On the Hub"账户上可以免费获得Microsoft产品,但似乎我的账户已经被删除了,因为我之前离开学校了,但我的密钥仍然有效(VS和Windows 10)。
我已经从注册表中检索到了我的Windows 10密钥,但由于VS 2017不将密钥存储在注册表中而是存储在privateregistry.bin文件中,我无法找到密钥本身。我最接近的方法是将hive文件添加到Regedit并查看其中的内容。 RegEdit showing privateregistry 但在注册信息和许可证文件夹中都没有真正的密钥保存。
是否有可能从hive中的某个地方检索它,或者我只需复制privateregistry.bin文件并在格式化后将其添加到Appdata文件夹中即可?我不想在确定之前进行格式化,以免失去我的许可证。

您仍然可以登录“On the Hub”并转到“订单”选项卡以查找CD密钥。 - Shlomi Bazel
我无法再登录“hub”了,我尝试找回我的密码,但它说我的电子邮件未在他们的网站上注册,然而订单明显在我的电子邮件存档中,不幸的是没有密钥列出。这就是为什么我认为我的账户被删除了。 - SergSam
我发现了一个包含密钥的旧文本文件,所以我尝试了它。我尝试复制私有注册表文件和完整的Visual Studio配置文件夹,但都不起作用。 - SergSam
1个回答

23

你应该能够在注册表路径 HKEY_CLASSES_ROOT\Licenses\5C505A59-E312-4B89-9508-E162F8150517\08860 下找到激活密钥。但是这个值是加密的,所以你需要使用 Win32 API 中的 CryptUnprotectData 方法进行解密。

我创建了一个简单的工具,可以提取 Visual Studio 2015、2017 和 2019 的产品密钥(目前只测试了 2019 Professional 版):

https://github.com/terjew/VSKeyExtractor


2
我在VS 2019中尝试了一下,它确实提取了密钥,谢谢! - SergSam
1
在VS2017上完美运行,谢谢。不得不将目标重新定位到.NET 4.8并摆脱“记录”语法才能构建它,但仅此而已。 - Boris Lipschitz
1
发现了一个我不知道自己拥有的VS2017密钥。谢谢! - Smitty-Werben-Jager-Manjenson
2
也适用于VS2022。谢谢。 :) - CaptnCodr
1
救命恩人 - 谢谢 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接