¿Qué experto puede ayudarme a escribir un modificador de número de serie del sistema VBS Windows?
En caso de error, reanudar siguiente
SN_XP_1 = "MRX3F-47B9T-2487J-KWKMF-RPWBY" 'bueno
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" 'bueno
SN_2003_2 = "DF74D-TWR86-D3F4V -M8D8J-WTT7M" 'bueno
SN_2003_2 = "KQF2H-284RW-GHXM6-Y3W2B-QWGBB"
Dim VOL_PROD_KEY
Si WScript.arguments.Count< 1 Luego
VOL_PROD_KEY = InputBox("El número de serie actual de su sistema Windows es:" & GetWindowsSN & String(5, vbCrLf) & "Ingrese un nuevo número de serie de Windows:", "Reemplazo del número de serie de Windows" , SN_2003_1)
Si VOL_PROD_KEY = "" O Len(VOL_PROD_KEY)<>29 Entonces
WScript.echo "Seleccionó Cancelar o el número de serie de Windows está vacío o el número de serie de Windows El número de dígitos es incorrecto: "Salir"
WScript.Quit
End If
Else
VOL_PROD_KEY = WScript.arguments. Item(0)
End If
VOL_PROD_KEY = Reemplazar(VOL_PROD_KEY, "-", "") 'eliminar guiones si los hay
Para cada objeto en GetObject ("winmgmts:{impersonationLevel=impersonate}").InstancesOf ("win32_WindowsProductActivation")
resultado = Obj.SetProductKey (VOL_PROD_KEY)
Si Err = 0 entonces
WScript.ech
o "Reemplazo exitoso del número de serie de Windows."
Else
WScript.echo "¡Falló el reemplazo del número de serie de Windows! El número de serie que ingresó es incorrecto". Err.Clear
End If
Siguiente
'Función Obtener el número de serie actual de Windows
Función GetWindowsSN()
Const HKEY_LOCAL_MACHINE = &H80000002
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
strValueName = "DigitalProductId"
strComputer = "."
Dim iValues()
Establecer oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
oReg.GetBinaryValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, iValues
Dim arrDPID
arrDPID = Array()
Para i = 52 a 66
ReDim Preservar arrDPID( UBound(arrDPID) + 1 )
arrDPID( UBound(arrDPID) ) = iValues(i)
Siguiente
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")
' <------------- ¡¡¡El bit inteligente!!! (Descifra los datos binarios codificados en base24)--- - ----------------------->
Para i = 24 A 0 Paso -1
k = 0
Para j = 14 A 0 Paso -1
k = k * 256 Xor arrDPID(j)
arrDPID(j) = Int(k / 24)
k = k Mod 24
Siguiente
strProductKey = arrChars(k) & strProductKey
Si i Mod 5 = 0 Y i <> 0 Entonces strProductKey = "-" & strProductKey
Siguiente
GetWindowsSN = strProductKey
Finalizar función