【问题标题】:How to change Visual Studio 2012,2013 or 2015 License Key?如何更改 Visual Studio 2012、2013 或 2015 许可证密钥?
【发布时间】:2012-09-17 18:47:43
【问题描述】:

我的机器上有一个 Visual Studio 2012 Pro 的副本,它带有一个我不再想使用的序列号,因为我必须使用另一个。我的问题是我一直在卸载 Visual Studio,但重新安装后注册信息仍然存在,我无法弄清楚我必须删除哪个注册表路径(我删除了一些),但没有运气。

有没有一种简单的方法可以删除注册信息或交换我的密钥?

谢谢

【问题讨论】:

    标签: visual-studio-2012 visual-studio-2013 visual-studio-2015


    【解决方案1】:

    我遇到了同样的问题,想将产品密钥更改为另一个。不幸的是,它不像在 VS2010 上那么容易。

    以下步骤有效:

    • 删除包含许可证信息的注册表项: HKEY_CLASSES_ROOT\Licenses\77550D6B-6352-4E77-9DA3-537419DF564B

    • 如果找不到key,请使用sysinternalsProcessMonitor检查VS2012的注册表访问,找到始终在HKEY_CLASSES_ROOT\Licenses中的正确key

    • 你删除这个key后,VS2012会告诉你它的license信息不正确。转到“程序和功能”并修复VS2012。

    • 修复后,VS2012 恢复为 30 天试用,您可以输入新的产品密钥。这也可以用于保持在试用版循环中并且从不输入生产密钥。

    【讨论】:

    • VisualStudio 安装/修复需要很长时间 :D 我想知道系统一直在做什么。没有 CPU,没有磁盘,没有进度......
    • 准确地说,我需要删除以下子项(04938):HKEY_CLASSES_ROOT\Licenses\77550D6B-6352-4E77-9DA3-537419DF564B\04938
    • 工作正常。对于 VS15 "HKEY_CLASSES_ROOT\Licenses\4D8CFBCB-2F6A-4AD2-BABF-10E28F6F2C8F"
    【解决方案2】:

    对于需要从 Visual Studio 2015 中删除产品密钥的用户:

    1. 删除注册表项HKCR\Licenses\4D8CFBCB-2F6A-4AD2-BABF-10E28F6F2C8F
    2. 修复 Visual Studio 安装

    就是这样,现在您可以根据需要更改产品密钥。

    【讨论】:

    • 我已经为 VS2015 完成了这些步骤并且它们有效。完成整个修复和重新设置过程确实需要一段时间(约 1 小时)
    • @ParthAkbari:我的最佳猜测是是的,但我没有确认这一点
    • 对我来说很好
    • @ParthAkbari 这是给我的,我在 Server 2016 Essentials 上运行了最新的 VS 2015 社区。​​span>
    • 我不会使用这种方法,我今天早些时候使用它,从那时起我在 VS2015 中访问文件打开对话框的那一刻(并且只有 VS2015,SMSS 工作正常)我得到一个 BSOD
    【解决方案3】:

    对我来说,使用 Visual Studio 2013,删除许可证密钥并执行修复是不够的(修复恢复了许可证密钥而不是恢复到试用版,并且在没有修复的情况下运行它(删除密钥后)声称许可证已过期,但不允许我输入新密钥)。

    我不得不:

    • 使用 Process Monitor 发现 Visual Studio 在注册表中查找的许可证密钥(它是 HKCR\Licenses\E79B3F9C-6543-4897-BBA5-5BFB0A02BB5C
    • 完全卸载 Visual Studio 2013(先保存 CurrentSettings.vssettings)
    • 在 regedit 中手动从注册表中删除许可证密钥
    • 使用公开可用的 Web 安装程序安装 Visual Studio(它没有任何内置的许可证密钥,它会安装 30 天试用版)
    • 输入我的新许可证密钥
    • (重新)安装更新(此时更新 1)
    • 通过导入我对 CurrentSettings.vssettings 所做的备份来恢复设置

    【讨论】:

    • 谢谢。你应该用这个作为VS2013的答案提出另一个问题
    • 这正是 VS2012 专业版对我有用的。我使用可公开下载的 ISO 进行重新安装。谢谢
    【解决方案4】:

    对于那些使用 Visual Studio 2017 Professional 的用户,注册表项是:

    HKCR\许可证\5C505A59-E312-4B89-9508-E162F8150517

    我还建议您先导出注册表项,然后再将其删除,这样如果您不小心删除了错误的注册表项,您将有一个备份。

    【讨论】:

      【解决方案5】:

      要查看这些 HKCR\License 中的内容,请使用 API Monitor v2

      API-Filter find 
      
          RegQueryValueExW 
              ^-Enable all from Advapi32.dll
      
          CryptUnprotectData
              ^- Enable all from Crypt32.dll
               + Breakpoint / after Call
      

      来自CryptUnprotectData的样本数据:

      HKEY_CLASSES_ROOT\Licenses\4D8CFBCB-2F6A-4AD2-BABF-10E28F6F2C8F\07078  [length 0x1C6 (0454.) ]
          00322-20000-00000-AA450                 <- PID2
          7d3cbcbb-90b1-411f-9981-6e28039a9b82    <- Ver
          7C3WXN74-VRMXH-J8X3H-M8F7W-CPQB8        <- PID3
      
      HKEY_CLASSES_ROOT\Licenses\4D8CFBCB-2F6A-4AD2-BABF-10E28F6F2C8F\0bcad  [length 0xbcad (0534.) ]
      
          0000  00000025 ffffffff 7fffffff   07064. 00000007   07078. 00000007 ffffffff
          0020  7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff
          0040  7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff
          0060  7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff
          0080  7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff
          00a0  7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff
          00c0  7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff
          00e0  7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff
          0100  7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff
          0120  7fffffff ffffffff 7fffffff 10.2015. c2a6 11.
          0134                             ^installation date^
      

      这里有用的是安装时间戳(这里是 11.10.2015) 更改这将需要调用“CryptProtectData”。这样做需要一些努力,比如编写一个小程序或在这个地方停止 ollydebug 并手动“制作”一个 CryptProtectData 调用......

      注意:在此示例中,我使用的是 Microsoft® Visual Studio 2015

      -> 对于一个快速的'n'dirty 潜入过期 VS 我建议阅读this 帖子。但是,这只是偶尔使用,直到您再次正确完成所有注册和登录废话;)

      好吧,真正的肉在这里:
      %LOCALAPPDATA%\Microsoft\VisualStudio\14.0\Licenses\ ^- 此路径来自 HKCU\Software\Microsoft\VisualStudio\14.0\Licenses\715f10eb-9e99-11d2-bfc2-00c04f990235\1

      1_3jdh3uyw**.crtok**

      -经过一些Base64解码:

      <ClientRightsContainer 
          xmlns="http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.Licensing" 
          xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
          <CertificateBytes>
              00000000   30 82 06 41 30 82 04 29  A0 03 02 01 02 02 13 5A   0‚ A0‚ )       Z
              00000010   00 00 BC CB 23 AC 52 9C  E8 93 F9 0A 00 01 00 00     ¼Ë#¬Rœè“ù     
              00000020   BC CB 30 0D 06 09 2A 86  48 86 F7 0D 01 01 0B 05   ¼Ë0   *†H†÷     
              00000030   00 30 81 8B 31 0B 30 09  06 03 55 04 06 13 02 55    0 ‹1 0   U    U
              00000040   53 31 13 30 11 06 03 55  04 08 13 0A 57 61 73 68   S1 0   U    Wash
              00000050   69 6E 67 74 6F 6E 31 10  30 0E 06 03 55 04 07 13   ington1 0   U   
              00000060   07 52 65 64 6D 6F 6E 64  31 1E 30 1C 06 03 55 04    Redmond1 0   U 
              00000070   0A 13 15 4D 69 63 72 6F  73 6F 66 74 20 43 6F 72      Microsoft Cor
              00000080   70 6F 72 61 74 69 6F 6E  31 15 30 13 06 03 55 04   poration1 0   U 
              00000090   0B 13 0C 4D 69 63 72 6F  73 6F 66 74 20 49 54 31      Microsoft IT1
              000000A0   1E 30 1C 06 03 55 04 03  13 15 4D 69 63 72 6F 73    0   U    Micros
              000000B0   6F 66 74 20 49 54 20 53  53 4C 20 53 48 41 32 30   oft IT SSL SHA20
              000000C0   1E 17 0D 31 35 30 33 30  35 32 31 32 39 35 36 5A      150305212956Z
              000000D0   17 0D 31 37 30 33 30 34  32 31 32 39 35 36 5A 30     170304212956Z0
              000000E0   25 31 23 30 21 06 03 55  04 03 13 1A 61 70 70 2E   %1#0!  U    app.
              000000F0   76 73 73 70 73 2E 76 69  73 75 61 6C 73 74 75 64   vssps.visualstud
              00000100   69 6F 2E 63 6F 6D 30 82  01 22 30 0D 06 09 2A 86   io.com0‚ "0   *†
              ...
              000002B0   6E 86 36 68 74 74 70 3A  2F 2F 6D 73 63 72 6C 2E   n†6http://mscrl.
              000002C0   6D 69 63 72 6F 73 6F 66  74 2E 63 6F 6D 2F 70 6B   microsoft.com/pk
              000002D0   69 2F 6D 73 63 6F 72 70  2F 63 72 6C 2F 6D 73 69   i/mscorp/crl/msi
              000002E0   74 77 77 77 32 2E 63 72  6C 86 34 68 74 74 70 3A   twww2.crl†4http:
              000002F0   2F 2F 63 72 6C 2E 6D 69  63 72 6F 73 6F 66 74 2E   //crl.microsoft.
              00000300   63 6F 6D 2F 70 6B 69 2F  6D 73 63 6F 72 70 2F 63   com/pki/mscorp/c
              00000310   72 6C 2F 6D 73 69 74 77  77 77 32 2E 63 72 6C 30   rl/msitwww2.crl0
              00000320   70 06 08 2B 06 01 05 05  07 01 01 04 64 30 62 30   p  +        d0b0
              00000330   3C 06 08 2B 06 01 05 05  07 30 02 86 30 68 74 74   <  +     0 †0htt
              00000340   70 3A 2F 2F 77 77 77 2E  6D 69 63 72 6F 73 6F 66   p://www.microsof
              00000350   74 2E 63 6F 6D 2F 70 6B  69 2F 6D 73 63 6F 72 70   t.com/pki/mscorp
              00000360   2F 6D 73 69 74 77 77 77  32 2E 63 72 74 30 22 06   /msitwww2.crt0" 
              00000370   08 2B 06 01 05 05 07 30  01 86 16 68 74 74 70 3A    +     0 † http:
              00000380   2F 2F 6F 63 73 70 2E 6D  73 6F 63 73 70 2E 63 6F   //ocsp.msocsp.co
              00000390   6D 30 4E 06 03 55 1D 20  04 47 30 45 30 43 06 09   m0N  U   G0E0C  
              000003A0   2B 06 01 04 01 82 37 2A  01 30 36 30 34 06 08 2B   +    ‚7* 0604  +
              000003B0   06 01 05 05 07 02 01 16  28 68 74 74 70 3A 2F 2F           (http://
              000003C0   77 77 77 2E 6D 69 63 72  6F 73 6F 66 74 2E 63 6F   www.microsoft.co
              000003D0   6D 2F 70 6B 69 2F 6D 73  63 6F 72 70 2F 63 70 73   m/pki/mscorp/cps
              000003E0   00 30 27 06 09 2B 06 01  04 01 82 37 15 0A 04 1A    0'  +    ‚7    
              000003F0   30 18 30 0A 06 08 2B 06  01 05 05 07 03 01 30 0A   0 0   +       0 
              00000400   06 08 2B 06 01 05 05 07  03 02 30 25 06 03 55 1D     +       0%  U 
              00000410   11 04 1E 30 1C 82 1A 61  70 70 2E 76 73 73 70 73      0 ‚ app.vssps
              00000420   2E 76 69 73 75 61 6C 73  74 75 64 69 6F 2E 63 6F   .visualstudio.co
              00000430   6D 30 0D 06 09 2A 86 48  86 F7 0D 01 01 0B 05 00   m0   *†H†÷      
              ...                                                U
          </CertificateBytes>
          <Token>
          {
              "typ":"JWT",
              "alg":"RS256",
              "x5t":"i7qX-NUrehXBYdQC5PSH-TdvzXA"
          }
          </Token>
      </ClientRightsContainer>
      

      似乎 M$ ​​正在使用 JSON Web 令牌 (JWT) 来包装许可证数据。 我猜 CertificateBytes 内部会以某种方式成为有效负载 - 您是电子邮件和其他详细信息。

      到目前为止,大致了解一下里面的数据是什么。

      如需更多愿望,请获取ILSpy + Reflexil

      【讨论】:

      • 推荐一个 YouTube 视频。太棒了!
      【解决方案6】:

      在阅读以下答案之前,请在最后查看我的更新。

      我有 Windows 8 和另一台装有 Windows 8.1 的电脑

      我的许可证错误提示“预发布软件。许可证已过期”。

      我发现受上述解决方案启发的唯一解决方案(谢谢!)是运行进程监视器并查看启动 VS2013 时访问的确切注册表项:

      HKCR\Licenses\E79B3F9C-6543-4897-BBA5-5BFB0A02BB5C

      就像之前的帖子中提到的一样。但是进程监视器说这个注册表被拒绝访问。

      所以我打开 regedit 并找到该注册表项,但我无法打开它。它说我没有权限查看它。

      所以我不得不更改它的权限:

      1. 右键单击“HKCR\Licenses\E79B3F9C-6543-4897-BBA5-5BFB0A02BB5C”键
      2. 权限
      3. 添加
      4. 在“输入要选择的对象名称”中,我添加了我的 Windows 用户名。好的。
      5. 检查完全控制
      6. 高级
      7. 所有者点击“更改”
      8. 在“输入要选择的对象名称”中,我添加了我的 Windows 用户名。好的。
      9. 好的。行。好的。

      我发现这个注册表项有几个子项,但是您必须重新启动 regedit 才能看到它们。

      通过查看进程监视器中哪些其他注册表项被拒绝访问,我知道 VS2013 将专门处理这些也被拒绝访问的子项: 06181 0bcad

      并且这些子项应该像上面一样更改它们的权限。

      进行这些权限更改后,一切正常。

      对于 Microsoft Visual Studio 2010 也做了同样的事情,因为许可证中也存在错误,并且解决方案运行良好。

      更新: 事实证明,以管理员身份启动 Visual Studio 解决了这个问题,而没有这个注册表按摩。更改用户设置中删除的“登录所需密码”后,这似乎发生在我的电脑上。 (我想让电脑在从崩溃或其他任何情况下重新启动后无需任何密码即可开始运行)。这使得很多程序无法写入临时文件夹等文件夹,除非我以管理员身份启动应用程序。如果 excel 没有以管理员身份启动,即使从 excel 打印也不起作用。

      【讨论】:

        【解决方案7】:

        ISO 可能是预先确定的。您需要从设置文件中删除密钥。然后它应该会在安装过程中要求您提供密钥。

        【讨论】:

        • 该信息在哪里?我有 MSDN VLK 光盘,它在安装期间从未要求提供 CD 密钥,而且我的许可证管理器从未减少席位,而且对于我的一位工程师来说,似乎无法轻松查看实际使用的密钥。
        • 来自 MSDN 的 Visual Studio VLK ISO 过去是预先确定的。旧的 MSDN 界面用来说明您的哪些下载是预先确定的。 VS VLK 密钥根本没有许可证检查。 MSDN 光盘为所有人使用通用 VLK。密钥在光盘本身的文件中。
        • 我的光盘上没有任何 setup.sdb。它不是 ISO,它是黄色的 msdn 光盘。光盘#5093/2012 年 11 月。如果这是一种安全的方法,我会使用注册表,但我没有看到任何允许我更改密钥的修复选项,并且不太确定为什么预烘焙 VLK 但我的许可证经理网站没有减少,我担心可能的审计。
        • 如果原始磁盘不需要您输入密钥,那么您只需要关心这些。这是一个非激活 VLK 密钥。将其安装在新 PC 上,以确认您是否认为它使用的是注册表中的旧密钥。我所有的 MSDN Visual Studio 磁盘都不需要密钥(如果您浏览磁盘,密钥就在其中一个安装文件中)。如果没有来自某个地方的密钥,Visual Studio 将无法工作。 MSDN Visual Studio 嵌入式密钥对所有用户都是“全局”的。它不是特定于您的。许可证只是纸上的。您安装的副本数量不得超过允许的数量。
        • 好的,谢谢,我就是这么想的。我们购买了带有 2012 降级选项的 2013 席位,而程序员想要 2012 年。所以我的所有记录中都有它,我想上次我遇到问题是 2010 年的。但是感谢您的帮助(尤其是当我撞到某人的问题..
        【解决方案8】:

        从注册表中删除许可证信息的解决方案也适用于 Visual Studio 2013,但如上面的答案所述,在 Visual Studio 上执行“修复”很重要。

        【讨论】:

          【解决方案9】:

          对于使用 Visual Studio 2019 Professional 的用户,注册表项为:

          HKCR\Licenses\41717607-F34E-432C-A138-A3CFD7E25CDA
          

          之后在 Visual Studio 上执行“修复”。

          【讨论】:

            猜你喜欢
            • 2018-03-25
            • 2014-07-09
            • 2015-11-29
            • 2017-05-27
            • 1970-01-01
            • 2018-09-20
            • 2016-02-08
            • 1970-01-01
            • 2015-03-12
            相关资源
            最近更新 更多