序列号就是软件开发商给软件的一个识别码,和人的身份z号码类似,其作用主要是为了防止自己的软件被用户盗用。用户要使用其软件就必须知道序列号。在用户注册的时候会根据用户软件所安装的计算机软硬件信息生成唯一的识别码,一般称作机器码,也叫序列号、认证码、注册申请码等。
一、序列号保存在哪
不要被ProductCode迷惑,就算只安装了SQL Server客户端,注册表里也会有这个键值,并不是序列号,DigitalProductID才是,但经过了Base24编码,需要解码才行。
可以看到,对于不同版本,注册表的路径不一样,但是键是一致的。
Express版是免费的,没有序列号,从而注册表也没DigitalProductID这个键。
二、如何解码序列号
利用Powershell 解码
以下powershell函数用于解码/找回SQL Server序列号,在SQL Server 2008, 2008 R2实例上测试通过:
SQL Server 2012序列号里字符的格式发生了变化, data.uValue)[0..16] 不同于SQL Server 2008的 data.uValue)[52..66],同时别忘了改下注册表路径$regPath = "SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup",修改后如下,在SQL Server 2012实例上测试通过:
调用powershell函数并输出序列号
打开powershell,把上面的函数贴进去,回车,输入Get-SQLServerKey 并回车;
或者把上面的函数存为.ps1文件直接引用:
输出结果如下:
根据powershell 脚本翻译成的Python base24 解码函数:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)