查看或修改Windows系列系统的序列号的vbs

'/*=========================================================================
' * Intro       查看或修改Windows系列系统的序列号(包括:2000,xp,2003),支持命令行“GetChangeWindowsSN.vbs Windows系统序列号” 或 直接运行输入Windows系统序列号。
' * FileName    GetChangeWindowsSN.vbs
' * Author      yongfa365
' * Version     v1.0
' * Email       yongfa365[at]qq.com
' * MadeTime    2007-10-13 21:40:09
' * LastModify  2007-10-13 21:40:09
' *==========================================================================*/
On Error Resume Next
SN_XP_1 = "MRX3F-47B9T-2487J-KWKMF-RPWBY" 'good
SN_XP_2 = "QC986-27D34-6M3TY-JJXP9-TBGMD"
SN_XP_3 = "K2CXT-C6TPX-WCXDP-RMHWT-V4TDT"
SN_XP_4 = "22DVC-GWQW7-7G228-D72Y7-QK8Q3"
SN_XP_5 = "DG8FV-B9TKY-FRT9J-6CRCC-XPQ4G"
SN_XP_6 = "T44H2-BM3G7-J4CQR-MPDRM-BWFWM"
SN_XP_7 = "XW6Q2-MP4HK-GXFK3-KPGG4-GM36T"
SN_2000_1 = "PQHKR-G4JFW-VTY3P-G4WQ2-88CTW"
SN_2000_Server_1 = "H6TWQ-TQQM8-HXJYG-D69F7-R84VM"
SN_2000_Advanced_Server_1 = "H6TWQ-TQQM8-HXJYG-D69F7-R84VM"
SN_2003_1 = "JCGMJ-TC669-KCBG7-HB8X2-FXG7M" 'good
SN_2003_2 = "DF74D-TWR86-D3F4V-M8D8J-WTT7M" 'good
SN_2003_2 = "KQF2H-284RW-GHXM6-Y3W2B-QWGBB"

Dim VOL_PROD_KEY
If WScript.arguments.Count<1 Then
    VOL_PROD_KEY = InputBox("您当前的Windows系统序列号为:" & GetWindowsSN & String(5, vbCrLf) & "请输入新的Windows序列号:", "Windows序列号更换器", SN_2003_1)
    If VOL_PROD_KEY = "" Or Len(VOL_PROD_KEY)<>29 Then
        WScript.echo "您选择了取消 或 Windows序列号为空 或 Windows序列号位数有误  ——》退出"
        WScript.Quit
    End If
Else
    VOL_PROD_KEY = WScript.arguments.Item(0)
End If
VOL_PROD_KEY = Replace(VOL_PROD_KEY, "-", "") 'remove hyphens if any
For Each Obj in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf ("win32_WindowsProductActivation")
    result = Obj.SetProductKey (VOL_PROD_KEY)
    If Err = 0 Then
        WScript.echo "Windows序列号替换成功。"
    Else
        WScript.echo "Windows序列号替换失败!您输入的序列号有误。"
        Err.Clear
    End If
Next

'取得当前Windows序列号函数
Function GetWindowsSN()
    Const HKEY_LOCAL_MACHINE = &H80000002
    strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
    strValueName = "DigitalProductId"
    strComputer = "."
    Dim iValues()
    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
    oReg.GetBinaryValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, iValues
    Dim arrDPID
    arrDPID = Array()
    For i = 52 To 66
        ReDim Preserve arrDPID( UBound(arrDPID) + 1 )
        arrDPID( UBound(arrDPID) ) = iValues(i)
    Next
    ' <--------------- Create an array to hold the valid characters for a microsoft Product Key -------------------------->
    Dim arrChars
    arrChars = Array("B", "C", "D", "F", "G", "H", "J", "K", "M", "P", "Q", "R", "T", "V", "W", "X", "Y", "2", "3", "4", "6", "7", "8", "9")
    ' <--------------- The clever bit !!! (Decrypt the base24 encoded binary data)-------------------------->
    For i = 24 To 0 Step -1
        k = 0
        For j = 14 To 0 Step -1
            k = k * 256 Xor arrDPID(j)
            arrDPID(j) = Int(k / 24)
            k = k Mod 24
        Next
        strProductKey = arrChars(k) & strProductKey
        ' <------- add the "-" between the groups of 5 Char -------->
        If i Mod 5 = 0 And i <> 0 Then strProductKey = "-" & strProductKey
    Next
    GetWindowsSN = strProductKey
End Function

(0)

相关推荐

  • 查看或修改Windows系列系统的序列号的vbs

    '/*========================================================================= ' * Intro       查看或修改Windows系列系统的序列号(包括:2000,xp,2003),支持命令行"GetChangeWindowsSN.vbs Windows系统序列号" 或 直接运行输入Windows系统序列号. ' * FileName    GetChangeWindowsSN.vbs ' * Author

  • Windows使用cmd命令行查看、修改、删除与添加环境变量

    您可以在cmd中使用SET,显示或设置环境变量. 一.查看环境变量 1.查看当前所有可用的环境变量 输入 set 即可查看. 2.查看某个环境变量 输入 “set 变量名”即可.比如想查看path变量的值,即输入 set path 二.修改环境变量 注意:所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用. 永久性修改环境变量的方法有两种:一种是直接修改注册表,另一种是通过我的电脑-〉属性-〉高级,来设置系统的环境变量(查看

  • Windows XP系统注册表六则设置技巧

    用XP已经好久了,本人试验和整理了许多很有意思的注册表修改技巧,这里写出来给大家参考.说到注册表修改,有一句话总是不得不提:小心谨慎.修改之前必须备份,一步失误可能让你的机器翻脸不认人.在下面的叙述中,如果指定位置没有这里所说的键/值,那么你得自己新建一个.除非特别说明,所有这里谈到的值都是REG_DWORD类型. 一.提高XP的响应速度 找到HKEY_CURRENT_USERControl PanelDesktop子键,修改HungAppTimeout值.HungAppTimeout值表示系统

  • Windows XP系统注册表十则设置技巧

    用XP已经好久了,本人试验和整理了许多很有意思的注册表修改技巧,这里写出来给大家参考.说到注册表修改,有一句话总是不得不提:小心谨慎.修改之前必须备份,一步失误可能让你的机器翻脸不认人.在下面的叙述中,如果指定位置没有这里所说的键/值,那么你得自己新建一个.除非特别说明,所有这里谈到的值都是REG_DWORD类型. 一.提高XP的响应速度 找到HKEY_CURRENT_USERControl PanelDesktop子键,修改HungAppTimeout值.HungAppTimeout值表示系统

  • MySQL查看和修改字符编码的实现方法

    MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8. 1.需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后两次输入root用户的密码),查看数据库的编码方式命令为: >show variables like 'character%'; +--------------------------+----------------------------+ | Variab

  • Windows XP系统安全技巧

    大家使用WindowsXP已经有很长一段时间了,对与WindowsXP操作系统已经是非常熟悉了吧!有没有总结出一些的经验来与大家共享呢?下面笔者就把在使用WindowsXP操作系统过程中积累的一些经验共享出来,也便能让你在使用WindowsXP操作系统的过程中能快速上手.熟练的掌握XP的使用技巧就能更好的享受XP系统带给你的强大功能. 1.恢复被破坏的Win XP系统文件 如果Windows XP的系统文件被病毒或其它原因破坏了,我们可以从Windows XP的安装盘中恢复那些被破坏的文件. 具

  • Windows+Linux系统下Go语言环境安装配置过程

    Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本.现在Go的开发已经是完全开放的,并且拥有一个活跃的社区. 1. Windows安装配置 1️⃣ 下载SDK SDK 的全称是Software Development Kit

  • Windows/Mac系统Docker方式安装Mysql(包含utf8)

    目录 一.Mac系统下Docker安装 二.Win 10系统下Docker安装 三.安装Mysql 一.Mac系统下Docker安装 访问docker官网:https://www.docker.com/get-started下载Mac版,下载时需要我们登陆Docker账号,因此我们需要先注册一个Docker账号,这个账号在后面启动应用的时候也可以用于登陆. 登陆Docker账号下载,下载后是一个Docker.dmg文件(523.1M),直接双击安装,安装完后,直接点击图标启动Docker,如下图

  • 使用批处理for命令清除事件查看器所有Windows EventLog日志

    以前装完系统后要做个Ghost,为了达到完美,每次做Ghost前都会手动清除 事件查看器所有Windows EventLog日志. 后来使用了Windows 2008 r2/Win7后,这事变的复杂多了,所以也就没管了. 再后来有同事问到如何把他们全部清除,因为一个一个清,在Microsoft一级有很多目录,要想完全清除得半小时,并且清除后又有了,不实用. 再到今天,我在玩Hyper-V时,总看到一堆Error,鉴于之前给公司做的持续交付里,批处理大显身手,所以想应该可以使用批处理来实现, Go

  • 使用批处理清除事件查看器所有Windows EventLog日志的代码

    以前装完系统后要做个Ghost,为了达到完美,每次做Ghost前都会手动清除 事件查看器所有Windows EventLog日志. 后来使用了Windows 2008 r2/Win7后,这事变的复杂多了,所以也就没管了. 再后来有同事问到如何把他们全部清除,因为一个一个清,在Microsoft一级有很多目录,要想完全清除得半小时,并且清除后又有了,不实用. 再到今天,我在玩Hyper-V时,总看到一堆Error,鉴于之前给公司做的持续交付里,批处理大显身手,所以想应该可以使用批处理来实现, Go

随机推荐