博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
win10下office2013命令激活参考
阅读量:2042 次
发布时间:2019-04-28

本文共 61470 字,大约阅读时间需要 204 分钟。

Windows PowerShell

版权所有 (C) Microsoft Corporation。保留所有权利。

尝试新的跨平台 PowerShell https://aka.ms/pscore6

PS C:\WINDOWS\system32> cd "C:\Program Files (x86)\Microsoft Office\Office15"

PS C:\Program Files (x86)\Microsoft Office\Office15> cscript ospp.vbs /inpkey:YC7DK-G2NP3-2QQC3-J6H88-GVGXT
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation。保留所有权利。

输入错误: 无法找到脚本文件“C:\Program Files (x86)\Microsoft Office\Office15\ospp.vbs”。

PS C:\Program Files (x86)\Microsoft Office\Office15> cscript ospp.vbs /inpkey:YC7DK-G2NP3-2QQC3-J6H88-GVGXT
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation。保留所有权利。

---Processing--------------------------

---------------------------------------
<Product key installation successful>
---------------------------------------
---Exiting-----------------------------
PS C:\Program Files (x86)\Microsoft Office\Office15> cscript ospp.vbs /sethst:kms.03k.org
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation。保留所有权利。

---Processing--------------------------

---------------------------------------
Successfully applied setting.
---------------------------------------
---Exiting-----------------------------
PS C:\Program Files (x86)\Microsoft Office\Office15> cscript ospp.vbs /act
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation。保留所有权利。

---Processing--------------------------

---------------------------------------
Installed product key detected - attempting to activate the following product:
SKU ID: 41499869-4103-4d3b-9da6-d07df41b6e39
LICENSE NAME: Office 15, OfficeProPlusMSDNR_Retail edition
LICENSE DESCRIPTION: Office 15, RETAIL channel
Last 5 characters of installed product key: 628P9
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
ERROR CODE: 0xC004C003
ERROR DESCRIPTION: Run the following: cscript ospp.vbs /ddescr:0xC004C003
---------------------------------------
Installed product key detected - attempting to activate the following product:
SKU ID: b322da9c-a2e2-4058-9e4e-f59a6970bd69
LICENSE NAME: Office 15, OfficeProPlusVL_KMS_Client edition
LICENSE DESCRIPTION: Office 15, VOLUME_KMSCLIENT channel
Last 5 characters of installed product key: GVGXT
<Product activation successful>
---------------------------------------
Installed product key detected - attempting to activate the following product:
SKU ID: e13ac10e-75d0-4aff-a0cd-764982cf541c
LICENSE NAME: Office 15, OfficeVisioProVL_KMS_Client edition
LICENSE DESCRIPTION: Office 15, VOLUME_KMSCLIENT channel
Last 5 characters of installed product key: RM3B3
<Product activation successful>
---------------------------------------
---------------------------------------
---Exiting-----------------------------

以下报错可忽略

PS C:\Program Files (x86)\Microsoft Office\Office15> cscript ospp.vbs /dstatus
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation。保留所有权利。

---Processing--------------------------

---------------------------------------
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
SKU ID: 41499869-4103-4d3b-9da6-d07df41b6e39
LICENSE NAME: Office 15, OfficeProPlusMSDNR_Retail edition
LICENSE DESCRIPTION: Office 15, RETAIL channel
BETA EXPIRATION: 1601/1/1
LICENSE STATUS:  ---NOTIFICATIONS---
ERROR CODE: 0xC004F009
ERROR DESCRIPTION: Run the following: cscript ospp.vbs /ddescr:0xC004F009
Last 5 characters of installed product key: 628P9
---------------------------------------
[File not found: C:\Program Files (x86)\Microsoft Office\Office15\slerror.xml  Unable to display error description.]
ERROR DESCRIPTION: An unknown error occurred.
---------------------------------------
---Exiting-----------------------------
PS C:\Program Files (x86)\Microsoft Office\Office15>

 

OSPP.VBS代码:

'Copyright (c) Microsoft Corporation. All rights reserved.''CONST wshOK                             =0CONST VALUE_ICON_WARNING                =16CONST wshYesNoDialog                    =4CONST VALUE_ICON_QUESTIONMARK           =32CONST VALUE_ICON_INFORMATION            =64CONST HKEY_LOCAL_MACHINE                =&H80000002CONST KEY_SET_VALUE                     =&H0002CONST KEY_QUERY_VALUE                   =&H0001CONST REG_SZ                            =1CONST OfficeAppId                       = "0ff1ce15-a989-479d-af46-f275c6370663"CONST STR_SYS32PATH                     = ":\Windows\System32\"CONST STR_OSPPREARMPATH                 = "\Microsoft Office\Office15\OSPPREARM.EXE"CONST STR_OSPPREARMPATH_DEBUG           = "\Microsoft Office Debug\Office15\OSPPREARM.EXE"CONST REG_OSPP                          = "SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform"CONST REG_SPP                           = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"CONST VER_INFO                          = "Version Info: 2013 1.0 (RTM)"'CONST MSG_NOREGRIGHTS                   = "Insufficient rights to perform operation."CONST MSG_ISCMD_ELEVATED                = "Ensure cmd.exe is elevated (right click > run as administrator)."CONST MSG_CREDENTIALFAILURE             = "Connection failed with passed credentials."CONST MSG_FILENOTFOUND                  = "File not found: "CONST MSG_SEPERATE                      = "---------------------------------------"CONST MSG_PROCESSING                    = "---Processing--------------------------"CONST MSG_EXIT                          = "---Exiting-----------------------------"CONST MSG_UNSUPPORTED                   = "Unsupported command passed."CONST MSG_UNSUPPORTEDOPEROS7            = "The following command is supported on Windows 7 only: "CONST MSG_UNSUPPORTEDOPEROS8            = "The following command is supported on Windows 8 and above only: "CONST MSG_UNSUPPORTEDLOCAL              = "The following command is supported on local machine only: "CONST MSG_CREDENTIALERR                 = "Passing credentials is not supported for this command."CONST MSG_SUCCESS                       = "Successfully applied setting."CONST MSG_NOKMSLICS                     = "No Office KMS licenses were found on the system."CONST MSG_ACTATTEMPT                    = "Installed product key detected - attempting to activate the following product:"CONST MSG_TOKACTATTEMPT                 = "Installed product key detected - attempting to token activate the following product:"CONST MSG_NOKEYSINSTALLED               = "
"CONST MSG_UNINSTALLKEYSUCCESS = "
"CONST MSG_ACTSUCCESS = "
"CONST MSG_OFFLINEACTSUCCESS = "
"CONST MSG_KEYINSTALLSUCCESS = "
"CONST MSG_PARTIALKEY = "Last 5 characters of installed product key: "CONST MSG_UNINSTALLKEY = "Uninstalling product key for: "CONST MSG_UNRECOGFILE = "Unrecognized file. Office licenses have an .xrm-ms file extension."CONST MSG_INSTALLLICENSE = "Installing Office license: "CONST MSG_INSTALLLICSUCCESS = "Office license installed successfully."CONST MSG_SEARCHEVENTSKMS = "Searching for KMS activation events on machine: "CONST MSG_SEARCHEVENTSRET = "Searching for Internet activation failure events on machine: "CONST MSG_NOEVENTSSKMS = "No KMS activation events found on machine: "CONST MSG_NOEVENTSRET = "No failure events found on machine: "CONST MSG_OSPPSVC_NOINSTALL = "Error: The Software Protection Platform service is not installed."CONST MSG_OSPPSVC_NORUN = "Error: The Software Protection Platform service is not running."CONST MSG_ERRPARTIALKEY = "The last 5 characters of an installed product key are required to run this option. Run the /dstatus option to display the partial product key."CONST MSG_KEYNOTFOUND = "
"CONST MSG_CMID = "Client Machine ID (CMID): "CONST MSG_NOLICENSEFOUND = "
"CONST MSG_AUTHERR = "Authorization Error: 0x"CONST MSG_REMILID = "Removed Token-based Activation License with License ID (ILID): "CONST MSG_NOTFOUNDILID = "License not found with License ID (ILID): "CONST MSG_KMSLOOKUP = "KMS Lookup Domain: "CONST MSG_INFO_ONLY = " (for information purposes only as the status is licensed)"'CONST MSG_VLActivationType = "Activation Type Configuration: "'CONST MSG_Act_Recent = "Most recent successful activation client information: "CONST MSG_KMS_DNS = "KMS machine name from DNS: "CONST MSG_KMS_DNS_ERR = "DNS auto-discovery: KMS name not available"CONST MSG_ADInfoAOName = "Activation Object name: "CONST MSG_ADInfoAODN = "AO DN: "CONST MSG_ADInfoExtendedPid = "AO extended PID: "CONST MSG_ADInfoActID = "AO activation ID: "CONST MSG_ACTIVATION_INTERVAL = "Activation Interval: "CONST MSG_RENEWAL_INTERVAL = "Renewal Interval: "CONST MSG_HOST_CACHING = "KMS host caching: "CONST MSG_HOST_REG_OVERRIDE = "KMS machine registry override defined: "CONST MSG_DEFAULT_PORT = "1688"'CONST MSG_SKUID = "SKU ID: "CONST MSG_LICENSENAME = "LICENSE NAME: "CONST MSG_DESCRIPTION = "LICENSE DESCRIPTION: "CONST MSG_LICSTATUS = "LICENSE STATUS: "CONST MSG_LICENSED = " ---LICENSED--- "CONST MSG_UNLICENSED = " ---UNLICENSED--- "CONST MSG_OOBGRACE = " ---OOB_GRACE--- "CONST MSG_OOTGRACE = " ---OOT_GRACE--- "CONST MSG_NONGENGRACE = " ---NON_GENUINE_GRACE--- "CONST MSG_NOTIFICATION = " ---NOTIFICATIONS--- "CONST MSG_EXTENDEDGRACE = " ---EXTENDED GRACE--- "CONST MSG_LICUNKNOWN = " ---UNKNOWN--- "CONST MSG_REMAINGRACE = "REMAINING GRACE: "CONST MSG_LICEXPIRY = "BETA EXPIRATION: "CONST MSG_ERRCODE = "ERROR CODE: "CONST MSG_ERRDESC = "ERROR DESCRIPTION: "CONST MSG_ERRUNKNOWN = "An unknown error occurred."CONST MSG_ERRCODEVALUE = "An error code must start with '0x'. Example: 0xC004F009"''On Error Resume NextSet WshShell = WSCript.CreateObject("WSCript.Shell")Set objFSO = CreateObject("Scripting.FileSystemObject")Set objNetwork = WSCript.CreateObject("WSCript.Network")Dim globalResource, globalErr, foundSlUi, strSluiPath, strLocal, objWMI, objWMI1, wmiErr, productinstances, strValue, Win7, productClass, tokenClass, intIsKms, kmsCounter, isAdActivatedglobalResource = ""globalErr = ""foundSlUi = FalseWin7 = FalsekmsCounter = 0isAdActivated = FalsecurrentDir = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))Select Case WSCript.Arguments.Count Case 0 verifyFileExists currentDir & "ospp.htm" showIePopUp currentDir & "ospp.htm" WScript.Quit Case 1 var1 = WSCript.Arguments(0) Case 2 var1 = WSCript.Arguments(0) var2 = WSCript.Arguments(1) Case 3 var1 = WSCript.Arguments(0) var2 = WSCript.Arguments(1) var3 = WSCript.Arguments(2) Case 4 var1 = WSCript.Arguments(0) var2 = WSCript.Arguments(1) var3 = WSCript.Arguments(2) var4 = WSCript.Arguments(3) Case ElseEnd Select''Call Main(var1,var2,var3,var4)''Sub Main(strCommand,strMachine,strUser,strPassword)On Error Resume NextgetEngine()pProcessing()getSlui()strLocal = objNetwork.ComputerName strCommand = LCase(strCommand)Select Case strCommand Case "/act", "/dstatus", "/dstatusall", "/dinstid", "/dtokils", _ "/remhst", "/stokflag", "/ctokflag", "/dcmid", "/dtokcerts", "/ckms-domain" connectWMI strMachine,strUser,strPassword,"" performLicAction strCommand,"","" Case "/dhistoryacterr", "/dhistorykms" connectWMI strMachine,strUser,strPassword,"" performLicAction strCommand,"",strMachine Case "/puserops", "/duserops" connectWMI strMachine,strUser,strPassword,"reg" performRegAction strCommand Case "/osppsvcrestart", "/osppsvcauto" connectWMI strMachine,strUser,strPassword,"" performServiceAction strCommand Case "/help", "help", "?", "/?", "/?" verifyFileExists currentDir & "ospp.htm" showIePopUp currentDir & "ospp.htm" quitExit() Case "/regmof" registerMof "osppwmi.mof" Case "/rearm" If strMachine = "" Then reARM "" Else globalPopFailure MSG_UNSUPPORTEDLOCAL & vbCr & strCommand,True End If quitExit() Case "/version" globalPopSuccess VER_INFO,True Case Else pos = InStr(strCommand,":") Select Case pos Case 7 getCommand = Left(strCommand,6) Case 8 getCommand = Left(strCommand,7) Case 13 getCommand = Left(strCommand,12) Case Else globalPopFailure MSG_UNSUPPORTED,True End Select Select Case getCommand Case "/skms-domain", "/actype", "/inpkey", "/unpkey", "/inslic", "/actcid", "/sethst", "/setprt", "/ddescr", "/rtokil", "/tokact", "/cachst", "/rearm" strValue = Replace(strCommand,getCommand & ":","") If strValue = "" Then globalPopFailure MSG_UNSUPPORTED & " A value is required for: " & strCommand,True End If If getCommand = "/ddescr" Then If Left(strValue,2) = "0x" Then getDescription strValue,"" Else WScript.Echo MSG_ERRCODEVALUE quitExit() End If ElseIf getCommand = "/rearm" Then If strMachine = "" Then reARM strValue Else globalPopFailure MSG_UNSUPPORTEDLOCAL & vbCr & strCommand,True End If quitExit() Else connectWMI strMachine,strUser,strPassword,"" performLicAction getCommand,strValue,"" End If Case Else globalPopFailure MSG_UNSUPPORTED,True End SelectEnd SelectEnd Sub''Function showIePopUp(strPath)On Error Resume NextSet objExplorer = CreateObject("InternetExplorer.Application") With objExplorer .Navigate strPath .ToolBar = 0 .StatusBar = 0 .Width = 1000 .Height = 593 .Left = 1 .Top = 1 .Visible = 1 End With End Function''Function getEngine()strEngine = LCase(Right(WScript.FullName,12))If strEngine <> "\cscript.exe" Then WshShell.Popup "Unable to perform operation. " & WSCript.ScriptName & " requires the cscript engine." & _ vbCr & "Command line example: cscript ospp.vbs ?", _ ,WSCript.ScriptName, VALUE_ICON_WARNING WScript.QuitEnd IfEnd Function''Function WMIDateStringToDate(dtmEventDate)WMIDateStringToDate = CDate(Mid(dtmEventDate, 5, 2) & "/" & _Mid(dtmEventDate, 7, 2) & "/" & Left(dtmEventDate, 4) _& " " & Mid (dtmEventDate, 9, 2) & ":" & _Mid(dtmEventDate, 11, 2) & ":" & Mid(dtmEventDate, _13, 2))End Function''Function getDescription(strSearch,cType)If foundSlUi <> True Then If cType <> "wmi" Then globalPopFailure "slui.exe not found.",True quitExit() End IfElse Set objScriptExec = WshShell.Exec (strSluiPath & " 0x2a " & strSearch) readOut = objScriptExec.StdOut.ReadAll quitExit()End IfEnd Function''Function checkRegRights(wmiObject,strKeyPath)On Error Resume nextwmiObject.CheckAccess HKEY_LOCAL_MACHINE, strKeyPath, KEY_SET_VALUE, _ bHasAccessRightIf bHasAccessRight = True Then 'SuccessElse globalPopFailure MSG_NOREGRIGHTS & vbCr & MSG_ISCMD_ELEVATED,TrueEnd If End Function''Function quitExit()Set WshShell = NothingSet objFSO = NothingSet objNetwork = NothingSet objWMI = NothingWScript.Echo MSG_SEPERATEWScript.Echo MSG_EXITWSCript.QuitEnd Function''Function verifyFileExists(file)If Not objFSO.FileExists(file) Then If file = currentDir & "slerror.xml" Then WScript.Echo "[" & MSG_FILENOTFOUND & file & " Unable to display error description.]" ElseIf file = currentDir & "ospp.htm" Then globalPopFailure MSG_FILENOTFOUND & vbCr & file,False quitExit() Else globalPopFailure MSG_FILENOTFOUND & vbCr & file,True End IfEnd IfEnd Function''Function registerMof(strFile)For Each Drv In objFSO.Drives If Drv.DriveType=2 Then If objFSO.FileExists(Drv.DriveLetter & STR_SYS32PATH & "wbem\mofcomp.exe") Then foundComp = True strMofExePath = Drv.DriveLetter & STR_SYS32PATH & "wbem\mofcomp.exe" If objFSO.FileExists(Drv.DriveLetter & STR_SYS32PATH & "wbem\" & strFile) Then foundMof = True strOWmi = Drv.DriveLetter & STR_SYS32PATH & "wbem\" & strFile Set objScriptExec = WshShell.Exec (strMofExePath & " " & strOWmi) readOut = objScriptExec.StdOut.ReadAll WScript.Echo readOut quitExit() End If End If End IfNextIf foundComp <> True Then globalPopFailure MSG_FILENOTFOUND & Replace(STR_SYS32PATH,":","") & "wbem\mofcomp.exe",TrueElse If foundMof <> True Then globalPopFailure MSG_FILENOTFOUND & Replace(STR_SYS32PATH,":","") & "wbem\osppwmi.mof",True End IfEnd IfEnd Function''Function pProcessing()WScript.Echo MSG_PROCESSINGWScript.Echo MSG_SEPERATE End Function''Function getSlui()For Each Drv In objFSO.Drives If Drv.DriveType=2 Then If objFSO.FileExists(Drv.DriveLetter & STR_SYS32PATH & "slui.exe") Then strSluiPath = Drv.DriveLetter & STR_SYS32PATH & "slui.exe" foundSlUi = True Exit For End If End IfNextEnd Function''' Returns the encoding for a givven file.' Possible return values: ascii, unicode, unicodeFFFE (big-endian), utf-8Function GetFileEncoding(strFileName) Dim strData Dim strEncoding Set oStream = CreateObject("ADODB.Stream") oStream.Type = 1 'adTypeBinary oStream.Open oStream.LoadFromFile(strFileName) ' Default encoding is ascii strEncoding = "ascii" strData = BinaryToString(oStream.Read(2)) ' Check for little endian (x86) unicode preamble If (Len(strData) = 2) and strData = (Chr(255) + Chr(254)) Then strEncoding = "unicode" Else oStream.Position = 0 strData = BinaryToString(oStream.Read(3)) ' Check for utf-8 preamble If (Len(strData) >= 3) and strData = (Chr(239) + Chr(187) + Chr(191)) Then strEncoding = "utf-8" End If End If oStream.Close GetFileEncoding = strEncoding End Function''' Converts binary data (VT_UI1 | VT_ARRAY) to a string (BSTR)Function BinaryToString(dataBinary) Dim i Dim str For i = 1 To LenB(dataBinary) str = str & Chr(AscB(MidB(dataBinary, i, 1))) Next BinaryToString = str End Function''' Returns string containing the whole text file data. ' Supports ascii, unicode (little-endian) and utf-8 encoding.Function ReadAllTextFile(strFileName) Dim strData Set oStream = CreateObject("ADODB.Stream") oStream.Type = 2 'adTypeText oStream.Open oStream.Charset = GetFileEncoding(strFileName) oStream.LoadFromFile(strFileName) strData = oStream.ReadText(-1) 'adReadAll oStream.Close ReadAllTextFile = strData End Function''Function sppErrHandle(strCommand)globalErr = Hex(Err.Number)Select Case Err.Number Case 0 'Success Select Case strCommand Case "/act","/tokact" WScript.Echo MSG_ACTSUCCESS Case "/inpkey" WScript.Echo MSG_KEYINSTALLSUCCESS quitExit() Case "/inslic" WScript.Echo MSG_INSTALLLICSUCCESS quitExit() Case "/ckms-domain","/skms-domain","/actype","/sethst","/setprt","/remhst","/stokflag","/ctokflag","/cachst" WScript.Echo MSG_SUCCESS quitExit() Case "/rtokil" WScript.Echo MSG_REMILID & UCase(strValue) quitExit() Case "/unpkey" WScript.Echo MSG_UNINSTALLKEYSUCCESS quitExit() Case Else End Select Case Else verifyFileExists currentDir & "slerror.xml" getResource("err" & "0x" & globalErr) If globalResource = "" Then If Len(globalErr) <> "8" Then WScript.Echo MSG_ERRDESC & MSG_ERRUNKNOWN Else If foundSlUi = True Then WScript.Echo MSG_ERRCODE & "0x" & globalErr WScript.Echo MSG_ERRDESC & "Run the following: cscript ospp.vbs /ddescr:0x" & globalErr Else WScript.Echo MSG_ERRCODE & "0x" & globalErr End If End If If strCommand <> "/act" Then quitExit() End If Else WScript.Echo MSG_ERRCODE & "0x" & globalErr Wscript.Echo MSG_ERRDESC & globalResource End If If strCommand = "/dtokcerts" Or strCommand = "/ignore" Then quitExit() End IfEnd SelectIf globalErr = "C004F074" Then WScript.Echo "To view the activation event history run: cscript " & WScript.ScriptName & " /dhistorykms"End IfglobalResource = ""globalErr = ""Err.ClearEnd Function''Function wmiErrHandle()Select Case Err.Number Case 0 'Successs Case 424 globalPopFailure MSG_ERRCODE & Err.Number & vbCr & MSG_ERRDESC & MSG_CREDENTIALFAILURE,True Case Else If Err.Description <> "" Then globalPopFailure MSG_ERRCODE & Err.Number & vbCr & MSG_ERRDESC & Err.Description,True Else globalPopFailure "An error occurred while making the connection." & vbCr & MSG_ERRCODE & Err.Number,True End IfEnd SelectEnd Function''Function setRegValue(wmiObject,opsValue,strValueName)On Error Resume NextErr.Clear()If Win7 = True Then strKeyPath = REG_OSPPElse strKeyPath = REG_SPPEnd IfSelect Case strValueName Case "UserOperations" wmiObject.CreateKey HKEY_LOCAL_MACHINE,strKeyPath wmiObject.SetDWORDValue HKEY_LOCAL_MACHINE,_ strKeyPath,strValueName,opsValue Case ElseEnd SelectwmiErrHandle()WScript.Echo MSG_SUCCESSquitExit()End Function''Function getResource(resource)On Error Resume NextSet xmlDoc = CreateObject("Msxml2.DOMDocument.6.0") xmlDoc.load(currentDir & "slerror.xml") Set ElemList = xmlDoc.getElementsByTagName(resource) resValue = ElemList.item(0).textglobalResource = resValue End Function''Function globalPopSuccess(strSuccess,boolQuit)If boolQuit = True Then WshShell.Popup strSuccess,,WScript.ScriptName, wshOK + VALUE_ICON_INFORMATION quitExit()Else WshShell.Popup strSuccess,,WScript.ScriptName, wshOK + VALUE_ICON_INFORMATIONEnd IfEnd Function''Function globalPopFailure(strFailure,boolQuit)If boolQuit = True Then WshShell.Popup strFailure,,WScript.ScriptName, wshOK + VALUE_ICON_WARNING quitExit()Else WshShell.Popup strFailure,,WScript.ScriptName, wshOK + VALUE_ICON_WARNINGEnd IfEnd Function''Function connectWMI(strMachine,strUser,strPassword,ctype)On Error Resume NextIf ctype = "" Then If strMachine = "" Or LCase(strMachine) = LCase(strLocal) Then Set objWMI = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2") Else If strUser = "" And strPassword = "" Then Set objWMI = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strMachine & "\root\cimv2") Else Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objWMI = objSWbemLocator.ConnectServer _ (strMachine, "\root\cimv2", strUser, strPassword) wmiErr = CStr(Hex(Err.Number)) If Len(wmiErr) = "8" Then getDescription "0x" & wmiErr,"wmi" End If objWMI.Security_.ImpersonationLevel = 3 End If End IfElse If strUser <> "" Then globalPopFailure MSG_CREDENTIALERR,True End If If strMachine = "" Or LCase(strMachine) = LCase(strLocal) Then Set objWMI1 = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & "." & "\root\default:StdRegProv") Set objWMI = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2") Else Set objWMI1 = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strMachine & "\root\default:StdRegProv") Set objWMI = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strMachine & "\root\cimv2") End IfEnd IfwmiErrHandle()isWin7OS()End Function''Private Function TkaGetSigner()On Error Resume Next If Win7 = True Then Set TkaGetSigner = WScript.CreateObject("OSPPWMI.OSppWmiTokenActivationSigner") Else Set TkaGetSigner = WScript.CreateObject("SPPWMI.SppWmiTokenActivationSigner") End If If Hex(Err.Number) = "80020009" Then globalPopFailure MSG_ERRCODE & "0x" & Hex(Err.Number) & vbCr & MSG_ERRDESC & Err.Description,True End IfEnd Function''Function TkaPrintCertificate(strThumbprint) arrParams = Split(strThumbprint, "|") WScript.Echo "Thumbprint: " & arrParams(0) WScript.Echo "Subject: " & arrParams(1) WScript.Echo "Issuer: " & arrParams(2) vf = FormatDateTime(CDate(arrParams(3)), vbShortDate) WScript.Echo "Valid From: " & vf vt = FormatDateTime(CDate(arrParams(4)), vbShortDate) WScript.Echo "Valid To: " & vt WScript.Echo MSG_SEPERATE End Function''Function ExecuteQuery(strSelect,strWhere,strClass) Err.Clear If strWhere = "" Then Set productinstances = objWMI.ExecQuery("SELECT " & strSelect & " FROM " & strClass)Else Set productinstances = objWMI.ExecQuery("SELECT " & strSelect & " FROM " & strClass & " WHERE " & strWhere)End If sppErrHandle ""End Function''Function performLicAction(strCommand,strValue,strMachine)On Error Resume NextIf strCommand = "/dhistorykms" Or strCommand = "/dhistoryacterr" Then verifyFileExists currentDir & "slerror.xml" If strCommand = "/dhistorykms" Then '12288 = KMS Activation event id eventCode = "12288" strSrcEvents = MSG_SEARCHEVENTSKMS strNoEvents = MSG_NOEVENTSSKMS Else '8200 = Internet Activation event id eventCode = "8200" strSrcEvents = MSG_SEARCHEVENTSRET strNoEvents = MSG_NOEVENTSRET End If If strMachine <> "" Then WScript.Echo strSrcEvents & strMachine Else WScript.Echo strSrcEvents & strLocal End If WScript.Echo "Event ID: " & eventCode WScript.Echo vbCr Set objEvents = objWMI.ExecQuery _ ("Select * from Win32_NTLogEvent Where Logfile = 'Application' and " _ & "EventCode = '" & eventCode & "'") If objEvents.Count > 0 Then For each objEvent in objEvents If strCommand = "/dhistoryacterr" Then i = i + 1 dtmEventDate = objEvent.TimeWritten strTimeWritten = WMIDateStringToDate(dtmEventDate) WScript.Echo "Coordinated Universal Time Written: " & strTimeWritten strReplCrs = Replace(objEvent.Message,vbCrLf,"") WScript.Echo "MESSAGE: " & strReplCrs strhr10 = Right(strReplCrs,10) getResource("err" & strhr10) If globalResource = "" Then If foundSlUi = True Then WScript.Echo MSG_ERRDESC & "Run the following: cscript ospp.vbs /ddescr:" & strhr10 Else WScript.Echo MSG_ERRDESC & "Not available." End If Else Wscript.Echo MSG_ERRDESC & globalResource End If WScript.Echo MSG_SEPERATE Else strhr10 = Mid(objEvent.Message,90,10) strReplCrs = Replace(objEvent.Message,vbCrLf,"") If Right(strReplCrs,2) = " 5" Then strReplStrs = Replace(strReplCrs,"The client has sent an activation request to the key management service machine.Info:","") dtmEventDate = objEvent.TimeWritten strTimeWritten = WMIDateStringToDate(dtmEventDate) WScript.Echo "Coordinated Universal Time Written: " & strTimeWritten intColon = InStr(strReplStrs,":") strErrHost = Left(strReplStrs,intColon) strErrHost = Trim(strErrHost) strErrHost = Replace(strErrHost,":","") WScript.Echo "ERROR/HOST: " & strErrHost Select Case strhr10 Case "0x00000000" WScript.Echo MSG_ERRDESC & "N/A" Case Else getResource("err" & strhr10) If globalResource = "" Then If foundSlUi = True Then WScript.Echo MSG_ERRDESC & "Run the following: cscript ospp.vbs /ddescr:" & strhr10 Else WScript.Echo MSG_ERRDESC & "Not available." End If Else Wscript.Echo MSG_ERRDESC & globalResource End If End Select WScript.Echo MSG_SEPERATE End If End If Next Else WScript.Echo MSG_SEPERATE If strMachine <> "" Then WScript.Echo strNoEvents & strMachine Else WScript.Echo strNoEvents & strLocal End If WScript.Echo MSG_SEPERATE End If quitExit()End If'Verify osppsvc service is installed for win7 caseIf Win7 = True Then Set colListOfServices = objWMI.ExecQuery _ ("Select * from Win32_Service ") For Each objService in colListOfServices If objService.Name = "osppsvc" Then installed = True Exit For End If Next If installed <> True Then globalPopFailure MSG_OSPPSVC_NOINSTALL,True End IfEnd If Select Case strCommand 'The following operations are performed @ a service level Case "/inpkey", "/dcmid", "/inslic", "/cachst", "/stokflag", "/ctokflag", "/dstatus", "/dstatusall" If Win7 = True Then For Each objService in objWMI.InstancesOf("OfficeSoftwareProtectionService") Set objOspp = objService Exit For Next Else 'Win8 and beyond For Each objService in objWMI.InstancesOf("SoftwareLicensingService") Set objOspp = objService Exit For Next End If Case ElseEnd SelectsppErrHandle ""If strCommand = "/inpkey" Then i = i + 1 Err.Clear objOspp.InstallProductKey(strValue) sppErrHandle(strCommand)ElseIf strCommand = "/cachst" Then i = i + 1 If strValue = "true" Then objOspp.DisableKeyManagementServiceHostCaching(False) sppErrHandle(strCommand) ElseIf strValue = "false" Then objOspp.DisableKeyManagementServiceHostCaching(True) sppErrHandle(strCommand) Else globalPopFailure MSG_UNSUPPORTED & " A TRUE or FALSE value is required for: " & strCommand,True End IfElseIf strCommand = "/dcmid" Then If objOspp.ClientMachineID <> "" Or objOspp.ClientMachineID <> Null Then WScript.Echo MSG_CMID & objOspp.ClientMachineID Else WScript.Echo MSG_CMID & "Not found." End If quitExit()ElseIf strCommand = "/inslic" Then i = i + 1 If Right(strValue,7) = ".xrm-ms" Then verifyFileExists strValue WScript.Echo MSG_INSTALLLICENSE & strValue Else globalPopFailure MSG_UNRECOGFILE,True End If LicenseData = ReadAllTextFile(strValue) objOSpp.InstallLicense(LicenseData) SppErrHandle(strCommand)ElseIf strCommand = "/stokflag" Then i = i + 1 If Win7 = True Then objOspp.DisableKeyManagementServiceActivation(True) sppErrHandle(strCommand) Else 'Unsupported - osppsvc only supports this. globalPopFailure MSG_UNSUPPORTEDOPEROS7 & vbCr & strCommand,True End IfElseIf strCommand = "/ctokflag" Then i = i + 1 If Win7 = True Then objOspp.DisableKeyManagementServiceActivation(False) SppErrHandle(strCommand) Else 'Unsupported - osppsvc only supports this. globalPopFailure MSG_UNSUPPORTEDOPEROS7 & vbCr & strCommand,True End IfElseIf strCommand = "/dtokils" Then Err.Clear Set objWmiDate = CreateObject("WBemScripting.SWbemDateTime") ExecuteQuery "ILID, ILVID, AuthorizationStatus, ExpirationDate, Description, AdditionalInfo","",tokenClass For Each instance in productinstances sppErrHandle "" i = i + 1 WScript.Echo "License ID (ILID): " & instance.ILID WScript.Echo "Version ID (ILvID): " & instance.ILVID If Not IsNull(instance.ExpirationDate) Then objWmiDate.Value = instance.ExpirationDate If (objWmiDate.GetFileTime(false) <> 0) Then WScript.Echo "Expiry Date: " & objWmiDate.GetVarDate End If End If If Not IsNull(instance.AdditionalInfo) Then WScript.Echo "Additional Info: " & instance.AdditionalInfo End If If Not IsNull(instance.AuthorizationStatus) And instance.AuthorizationStatus <> 0 Then globalErr = CStr(Hex(instance.AuthorizationStatus)) WScript.Echo MSG_AUTHERR & globalErr quitExit() Else WScript.Echo "Description: " & instance.Description End If WScript.Echo MSG_SEPERATE Next If i = 0 Then WScript.Echo MSG_NOLICENSEFOUND End If quitExit()ElseIf strCommand = "/rtokil" Then Err.Clear ExecuteQuery "ILID, ID","",tokenClass For Each instance in productinstances sppErrHandle "" i = i + 1 If LCase(strValue) = LCase(instance.ILID) Then instance.Uninstall SppErrHandle(strCommand) Else WScript.Echo MSG_NOTFOUNDILID & strValue & " Run /dtokils to display the ILID for installed licenses." End If Next If i = 0 Then WScript.Echo MSG_NOLICENSEFOUND End If quitExit()ElseIf strCommand = "/dtokcerts" Then Err.Clear Set objSigner = TkaGetSigner() sppErrHandle(strCommand) ExecuteQuery "ID, Name, ApplicationId, PartialProductKey, Description, LicenseIsAddon ","ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL " & "AND LicenseIsAddon = FALSE",productClass For each instance in productinstances i = i + 1 sppErrHandle "" iRet = instance.GetTokenActivationGrants(arrGrants) If Err.Number = 0 Then arrThumbprints = objSigner.GetCertificateThumbprints(arrGrants) If Err.Number = 0 Then For Each strThumbprint in arrThumbprints TkaPrintCertificate strThumbprint Next Else sppErrHandle "" End If Else sppErrHandle "" End If WScript.Echo MSG_SEPERATE Err.Clear NextElseIf strCommand = "/tokact" Then Err.Clear Set objSigner = TkaGetSigner() sppErrHandle "/ignore" pos1 = InStr(strValue,":") If pos1 = 0 Then 'PIN not passed strThumbprint = strValue Else 'PIN passed strThumbprint = Left(strValue,pos1 - 1) strPin = Replace(strValue,strThumbprint & ":","") End If ExecuteQuery "ID, Name, ApplicationId, PartialProductKey, Description, LicenseIsAddon ","ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL " & "AND LicenseIsAddon = FALSE",productClass For each instance in productinstances i = i + 1 sppErrHandle "" WScript.Echo MSG_TOKACTATTEMPT WScript.Echo MSG_SKUID & instance.ID WScript.Echo MSG_LICENSENAME & instance.Name WScript.Echo MSG_DESCRIPTION & instance.Description WScript.Echo MSG_PARTIALKEY & instance.PartialProductKey iRet = instance.GenerateTokenActivationChallenge(strChallenge) If Err.Number = 0 Then strAuthInfo1 = objSigner.Sign(strChallenge, strThumbprint, strPin, strAuthInfo2) If Err.Number = 0 Then iRet = instance.DepositTokenActivationResponse(strChallenge, strAuthInfo1, strAuthInfo2) SppErrHandle(strCommand) Else sppErrHandle "" End If Else sppErrHandle "" End If WScript.Echo MSG_SEPERATE NextElse Err.Clear If strCommand = "/dstatus" Or strCommand = "/dstatusall" Then If Win7 = True Then ExecuteQuery "ID, ApplicationId, EvaluationEndDate, PartialProductKey, Description, Name, LicenseStatus, LicenseStatusReason, ProductKeyID, GracePeriodRemaining, DiscoveredKeyManagementServiceMachineName, DiscoveredKeyManagementServiceMachinePort, VLActivationInterval, VLRenewalInterval, KeyManagementServiceMachine, KeyManagementServicePort","ApplicationId = '" & OfficeAppId & "' ",productClass Else ExecuteQuery "ID, ApplicationId, EvaluationEndDate, PartialProductKey, Description, Name, LicenseStatus, LicenseStatusReason, ProductKeyID, GracePeriodRemaining, KeyManagementServiceLookupDomain, VLActivationType, ADActivationObjectName, ADActivationObjectDN, ADActivationCsvlkPid, ADActivationCsvlkSkuId, VLActivationTypeEnabled, DiscoveredKeyManagementServiceMachineName, DiscoveredKeyManagementServiceMachinePort, VLActivationInterval, VLRenewalInterval, KeyManagementServiceMachine, KeyManagementServicePort","ApplicationId = '" & OfficeAppId & "' ",productClass End If ElseIf strCommand = "/act" Then ExecuteQuery "ID, ApplicationId, PartialProductKey, Description, Name","ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL ",productClass ElseIf strCommand = "/unpkey" Then ExecuteQuery "ID, ApplicationId, Description, PartialProductKey, Name, ProductKeyID","ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL ",productClass ElseIf strCommand = "/dinstid" Or strCommand = "/actcid" Then ExecuteQuery "ID, ApplicationId, Description, PartialProductKey, Name, OfflineInstallationId","ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL ",productClass ElseIf strCommand = "/actype" Or strCommand = "/skms-domain" Or strCommand = "/ckms-domain" Then If Win7 = True Then 'Unsupported - sppsvc only supports this. globalPopFailure MSG_UNSUPPORTEDOPEROS8 & vbCr & strCommand,True Else ExecuteQuery "ID, Description, PartialProductKey, ApplicationId ","ApplicationId = '" & OfficeAppId & "' ",productClass End If ElseIf strCommand = "/sethst" Or strCommand = "/setprt" Or strCommand = "/remhst" Then ExecuteQuery "ID, Description, PartialProductKey, ApplicationId ","ApplicationId = '" & OfficeAppId & "' ",productClass End If For Each instance in productinstances sppErrHandle "" If (LCase(instance.ApplicationId) = OfficeAppId) Then If instance.PartialProductKey <> "" Then i = i + 1 End If intIsKms = InStr(UCase(instance.Description),"KMS") If intIsKms <> 0 Then kmsCounter = kmsCounter + 1 End If Select Case strCommand Case "/actype" Select Case strValue Case "0","1","2","3" Case Else globalPopFailure MSG_UNSUPPORTED & " A value of" & vbCr & _ "0 (for all)" & vbCr & "1 (for AD)" & vbCr & "2 (for KMS" & vbCr & _ "3 (for Token)" & vbCr & "Is required for: " & strCommand,True End Select If intIsKms <> 0 Then If strValue <> 0 Then instance.SetVLActivationTypeEnabled(strValue) Else instance.ClearVLActivationTypeEnabled() End If End If sppErrHandle "" Case "/skms-domain" If intIsKms <> 0 Then instance.SetKeyManagementServiceLookupDomain(strValue) End If sppErrHandle "" Case "/ckms-domain" If intIsKms <> 0 Then instance.ClearKeyManagementServiceLookupDomain() End If sppErrHandle "" Case "/sethst" If intIsKms <> 0 Then instance.SetKeyManagementServiceMachine(strValue) End If sppErrHandle "" Case "/setprt" If intIsKms <> 0 Then instance.SetKeyManagementServicePort(strValue) End If sppErrHandle "" Case "/remhst" If intIsKms <> 0 Then instance.ClearKeyManagementServiceMachine() sppErrHandle "" instance.ClearKeyManagementServicePort() sppErrHandle "" End If Case "/act" WScript.Echo MSG_ACTATTEMPT WScript.Echo MSG_SKUID & instance.ID WScript.Echo MSG_LICENSENAME & instance.Name WScript.Echo MSG_DESCRIPTION & instance.Description WScript.Echo MSG_PARTIALKEY & instance.PartialProductKey instance.Activate SppErrHandle(strCommand) WScript.Echo MSG_SEPERATE Case "/unpkey" If Len(strValue) <> "5" Then globalPopFailure MSG_ERRPARTIALKEY,True End If If UCase(strValue) = instance.PartialProductKey Then y = y + 1 WScript.Echo MSG_UNINSTALLKEY & instance.Name instance.UninstallProductKey(instance.ProductKeyID) SppErrHandle(strCommand) End If Case "/dinstid" WScript.Echo "Installation ID for: " & instance.Name & ": " & instance.OfflineInstallationId WScript.Echo MSG_SEPERATE Case "/actcid" instance.DepositOfflineConfirmationId instance.OfflineInstallationId, strValue If Err.Number = 0 Then If telsuccess <> True Then WScript.Echo MSG_LICENSENAME & instance.Name WScript.Echo MSG_OFFLINEACTSUCCESS telsuccess = True End If Else WScript.Echo MSG_LICENSENAME & instance.Name sppErrHandle "" End If WScript.Echo MSG_SEPERATE Case "/dstatus", "/dstatusall" getInstalled = False verifyFileExists currentDir & "slerror.xml" licSr = Hex(instance.LicenseStatusReason) If strCommand = "/dstatusall" Then getInstalled = True WScript.Echo MSG_SKUID & instance.ID WScript.Echo MSG_LICENSENAME & instance.Name WScript.Echo MSG_DESCRIPTION & instance.Description Else If instance.ProductKeyID <> "" Then getInstalled = True WScript.Echo MSG_SKUID & instance.ID WScript.Echo MSG_LICENSENAME & instance.Name WScript.Echo MSG_DESCRIPTION & instance.Description 'EvaluationEndDate always returns a value. When an expiry date is not defined "1/1/1601" is returned. 'So avoid displaying this against RTM licenses as that date = no expiry defined. If instance.EvaluationEndDate <> "" Then Set objDate = CreateObject("WBemScripting.SWbemDateTime") objDate.Value = instance.EvaluationEndDate If objDate.GetVarDate() <> "1/1/1601" Then WScript.Echo MSG_LICEXPIRY & objDate.GetVarDate() End If Set objDate = Nothing End If End If End If If getInstalled = True Then Select Case instance.LicenseStatus Case 0 WScript.Echo MSG_LICSTATUS & MSG_UNLICENSED Case 1 WScript.Echo MSG_LICSTATUS & MSG_LICENSED Case 2 WScript.Echo MSG_LICSTATUS & MSG_OOBGRACE Case 3 WScript.Echo MSG_LICSTATUS & MSG_OOTGRACE Case 4 WScript.Echo MSG_LICSTATUS & MSG_NONGENGRACE Case 5 WScript.Echo MSG_LICSTATUS & MSG_NOTIFICATION Case 6 WScript.Echo MSG_LICSTATUS & MSG_EXTENDEDGRACE Case Else WScript.Echo MSG_LICSTATUS & MSG_LICUNKNOWN End Select If licSr <> "0" Then If instance.LicenseStatus <> 1 Then WScript.Echo MSG_ERRCODE & "0x" & licSr Else WScript.Echo MSG_ERRCODE & "0x" & licSr & MSG_INFO_ONLY End If getResource("err" & "0x" & licSr) If globalResource = "" Then If foundSlUi <> True Then WScript.Echo MSG_ERRDESC & "Not available." Else WScript.Echo MSG_ERRDESC & "Run the following: cscript ospp.vbs /ddescr:0x" & licSr End if Else WScript.Echo MSG_ERRDESC & globalResource End If End If If instance.GracePeriodRemaining <> 0 Then dGrace = instance.GracePeriodRemaining / 60 / 24 rndDown = Int(dGrace) WScript.Echo MSG_REMAINGRACE & rndDown & " days " & " (" & instance.GracePeriodRemaining & " minute(s) before expiring" & ")" End If If instance.PartialProductKey <> "" Then WScript.Echo MSG_PARTIALKEY & instance.PartialProductKey 'Display additional volume info for KMS licenses If intIsKms <> 0 Then 'Display activation type set (Win8+). If Win7 <> True Then Select Case instance.VLActivationTypeEnabled Case 1 WScript.Echo MSG_VLActivationType & "AD" Case 2 WScript.Echo MSG_VLActivationType & "KMS" Case 3 WScript.Echo MSG_VLActivationType & "Token" Case Else WScript.Echo MSG_VLActivationType & "ALL" End Select 'Check to see if last activated via AD- display object info (Win8+). If instance.VLActivationType = 1 Then isAdActivated = True WScript.Echo MSG_Act_Recent + "AD" WScript.Echo vbTab & MSG_ADInfoAOName & instance.ADActivationObjectName WScript.Echo vbTab & MSG_ADInfoAODN & instance.ADActivationObjectDN WScript.Echo vbTab & MSG_ADInfoExtendedPid & instance.ADActivationCsvlkPid WScript.Echo vbTab & MSG_ADInfoActID & instance.ADActivationCsvlkSkuId End If End If If isAdActivated = False Then strKms = instance.DiscoveredKeyManagementServiceMachineName strPort = instance.DiscoveredKeyManagementServiceMachinePort If IsNull(strKms) Or (strKms = "") Or IsNull(strPort) Or (strPort = 0) Then WScript.Echo vbTab & MSG_KMS_DNS_ERR Else WScript.Echo vbTab & MSG_KMS_DNS & strKMS & ":" & strPort End If 'Check to see if registry override is defined strKms = instance.KeyManagementServiceMachine If strKms <> "" And Not IsNull(strKms) Then strPort = instance.KeyManagementServicePort If (strPort = 0) Then strPort = MSG_DEFAULT_PORT End If WScript.Echo vbTab & MSG_HOST_REG_OVERRIDE & strKms & ":" & strPort End If WScript.Echo vbTab & MSG_ACTIVATION_INTERVAL & instance.VLActivationInterval & " minutes" WScript.Echo vbTab & MSG_RENEWAL_INTERVAL & instance.VLRenewalInterval & " minutes" If (objOspp.KeyManagementServiceHostCaching = True) Then WScript.Echo vbTab & MSG_HOST_CACHING & "Enabled" Else WScript.Echo vbTab & MSG_HOST_CACHING & "Disabled" End If If Win7 <> True Then If instance.KeyManagementServiceLookupDomain <> "" Then WScript.Echo vbTab & MSG_KMSLOOKUP & instance.KeyManagementServiceLookupDomain End If End If End If End If End If WScript.Echo MSG_SEPERATE End If Case Else End Select End If NextEnd IfSelect Case strCommand Case "/unpkey" If y = 0 Then WScript.Echo MSG_KEYNOTFOUND quitExit() End If Case "/ckms-domain","/skms-domain","/actype","/sethst","/setprt","/remhst" If kmsCounter = 0 Then WScript.Echo MSG_NOKMSLICS quitExit() Else sppErrHandle(strCommand) End If Case ElseEnd SelectIf i = 0 Then WScript.Echo MSG_NOKEYSINSTALLED WScript.Echo MSG_SEPERATEEnd IfquitExit()End Function''Function performRegAction(strCommand)On Error Resume NextIf Win7 = True Then Set colListOfServices = objWMI.ExecQuery _ ("Select * from Win32_Service ") For Each objService in colListOfServices If objService.Name = "osppsvc" Then installed = True Exit For End If Next If installed <> True Then globalPopFailure MSG_OSPPSVC_NOINSTALL,True End If checkRegRights objWMI1,REG_OSPPElse checkRegRights objWMI1,REG_SPPEnd IfSelect Case strCommand Case "/puserops" setRegValue objWMI1,"1","UserOperations" Case "/duserops" setRegValue objWMI1,"0","UserOperations"End SelectEnd Function''Function performServiceAction(strCommand)On Error Resume NextSet colListOfServices = objWMI.ExecQuery _ ("Select * from Win32_Service ")For Each objService in colListOfServices If objService.Name = "osppsvc" Then installed = True Exit For End IfNext If installed <> True Then globalPopFailure MSG_OSPPSVC_NOINSTALL,TrueEnd IfSet objService = NothingSet colListOfServices = NothingIf strCommand = "/osppsvcauto" Then Set colListOfServices = objWMI.ExecQuery _ ("Select * from Win32_Service where StartMode = 'Manual' or StartMode = 'Disabled'") For Each objService in colListOfServices If LCase(objService.Name) = "osppsvc" Then foundOsppNonAuto = True objService.Change , , , , "Automatic" WScript.Sleep(15000) Exit For End If Next If foundOsppNonAuto <> True Then WScript.Echo "Service startup type already set to automatic: Office Software Protection Platform" quitExit() End If Set objService = Nothing Set colListOfServices = Nothing Set colListOfServices = objWMI.ExecQuery _ ("Select * from Win32_Service where StartMode = 'Auto'") For Each objService in colListOfServices If LCase(objService.Name) = "osppsvc" Then foundOsppAuto = True WScript.Echo "Successfully set service startup to automatic:" & objService.DisplayName quitExit() End If Next If foundOsppAuto <> True Then WScript.Echo "Unsuccessful setting service startup to automatic. " & MSG_ISCMD_ELEVATED quitExit() End IfElse Set colListOfServices = objWMI.ExecQuery _ ("Select * from Win32_Service ") For Each objService in colListOfServices If LCase(objService.Name) = "osppsvc" Then Select Case LCase(objService.State) Case "running" objService.StopService() WScript.Sleep(15000) objService.StartService() WScript.Sleep(15000) Case Else objService.StartService() WScript.Sleep(15000) End Select Exit For End If Next Set objService = Nothing Set colListOfServices = Nothing Set colListOfServices = objWMI.ExecQuery _ ("Select * from Win32_Service ") For Each objService in colListOfServices If LCase(objService.Name) = "osppsvc" Then If LCase(objService.State) = "running" Then WScript.Echo "Successfully restarted: " & objService.DisplayName quitExit() Else WScript.Echo "Unsuccessful restart: " & objService.DisplayName & ". Status: " _ & objService.State & ". " & MSG_ISCMD_ELEVATED quitExit() End If Exit For End If NextEnd IfEnd Function''Function reARM(skuid)progFiles = WshShell.ExpandEnvironmentStrings("%ProgramFiles%")If objFSO.FileExists(progFiles & STR_OSPPREARMPATH) Then rearmPath = progFiles & STR_OSPPREARMPATHElseIf objFSO.FileExists(progFiles & STR_OSPPREARMPATH_DEBUG) Then rearmPath = progFiles & STR_OSPPREARMPATH_DEBUGElse progFilesX86 = WshShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%") If objFSO.FileExists(progFilesX86 & STR_OSPPREARMPATH) Then rearmPath = progFilesX86 & STR_OSPPREARMPATH ElseIf objFSO.FileExists(progFilesX86 & STR_OSPPREARMPATH_DEBUG) Then rearmPath = progFilesX86 & STR_OSPPREARMPATH_DEBUG Else WScript.Echo MSG_FILENOTFOUND & "OSPPREARM.EXE" quitExit() End IfEnd IfIf skuid = "" Then Set objScriptExec = WshShell.Exec (rearmPath)Else Set objScriptExec = WshShell.Exec (rearmPath & " " & skuid)End IfreadOut = objScriptExec.StdOut.ReadAllWScript.Echo readOut End Function''Function isWin7OS()Set colOperatingSystems = objWMI.ExecQuery _ ("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystems Ver = Split(objOperatingSystem.Version, ".", -1, 1) 'Win7 If (Ver(0) = "6" And Ver(1) = "1" And objOperatingSystem.ProductType = 1) Then Win7 = True Exit For End If 'Server2008R2 If (Ver(0) = "6" And Ver(1) = "1" And (objOperatingSystem.ProductType = 2 Or objOperatingSystem.ProductType = 3)) Then Win7 = True Exit For End If NextsetWmiClasses()End Function''Function setWmiClasses()If Win7 = True Then productClass = "OfficeSoftwareProtectionProduct" tokenClass = "OfficeSoftwareProtectionTokenActivationLicense"Else productClass = "SoftwareLicensingProduct" tokenClass = "SoftwareLicensingTokenActivationLicense"End IfEnd Function'''' SIG '' Begin signature block'' SIG '' MIIhkgYJKoZIhvcNAQcCoIIhgzCCIX8CAQExDzANBglg'' SIG '' hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor'' SIG '' BgEEAYI3AgEeMCQCAQEEEE7wKRaZJ7VNj+Ws4Q8X66sC'' SIG '' AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg'' SIG '' zEwik1Z5edAj7+sqHGDiJNmSFwExtnAcWrZywByYrk+g'' SIG '' ggswMIIEuDCCA6CgAwIBAgITMwAAABYRBLSIOIy+wwAA'' SIG '' AAAAFjANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJV'' SIG '' UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH'' SIG '' UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv'' SIG '' cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT'' SIG '' aWduaW5nIFBDQSAyMDEwMB4XDTEyMDgzMDE3NDkwM1oX'' SIG '' DTEzMTEzMDE3NDkwM1owgYMxCzAJBgNVBAYTAlVTMRMw'' SIG '' EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt'' SIG '' b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp'' SIG '' b24xDTALBgNVBAsTBE1PUFIxHjAcBgNVBAMTFU1pY3Jv'' SIG '' c29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEB'' SIG '' BQADggEPADCCAQoCggEBAKBQnx1OlLoHCty+lknhPaAG'' SIG '' 75W++b1WKluc7x4RLsbW4S2yb8wzLZ4epLGCFspkMamK'' SIG '' JoH04y7yHg4cyOFZ4dQjPWV3/+rlt7ONCPYS129JV6SF'' SIG '' 4wQe0EKop7LbMAoV0ck1bX+8hl6lPraQZAUkHD6gcWgK'' SIG '' Mfd+1JXpLZvKZQV6FAIMCfaz3XFdJh9aCy8JumcybJwV'' SIG '' 2Jw8iehHOu+mFN9CPiEeuzHiLNFU9uqAkiuTNHdtkmcm'' SIG '' NsEqMdt4E0mrk5XcbKoMAHHAzc3dY+2RV5evjCqExd4N'' SIG '' dWWM4NEfQTu7tZLSaTl1mABMbEw9GEMDzmY7nF1OUXiR'' SIG '' Qjt+0FrgX0MCAwEAAaOCAScwggEjMB8GA1UdJQQYMBYG'' SIG '' CCsGAQUFBwMDBgorBgEEAYI3PQYBMB0GA1UdDgQWBBRr'' SIG '' 2fF2+KN4NKT3Rp4n8bC5bM82pjAfBgNVHSMEGDAWgBTm'' SIG '' /F97uyIAWORyTrX0IXQjMubvrDBWBgNVHR8ETzBNMEug'' SIG '' SaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp'' SIG '' L2NybC9wcm9kdWN0cy9NaWNDb2RTaWdQQ0FfMjAxMC0w'' SIG '' Ny0wNi5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF'' SIG '' BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtp'' SIG '' L2NlcnRzL01pY0NvZFNpZ1BDQV8yMDEwLTA3LTA2LmNy'' SIG '' dDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IB'' SIG '' AQBSQvO9uPl8uzKyi9ukLZAQqUK3SJ69+UtczCFgpL2A'' SIG '' l2MuKon2m9a8IpIBc56D+/KLa70wWuztMD7uyOF/qDcp'' SIG '' 90wfrd4j1yptJQrRMD5D8aq1RTirbkTj0KEDM9daNOUh'' SIG '' MSuOKC547WVyB4e1/rwWxKwvZMuizcnqB2p1YuvM5map'' SIG '' PMEyOcXRwGxr+gU8K22z+0f9urwcgF0ShtQr2tIsKDJ9'' SIG '' VwWEJ4Ef8EFlUgHwaq95DbjtwGOnRNb5ngJVRQ54Xlzb'' SIG '' AHrpZSRzEni2UPk2JkiUBO3YQNXhPUM3H5hFnSzjNtpz'' SIG '' MFSXah4gXBP5DtiMMLbrPnWEpetjkgotSUu2MIIGcDCC'' SIG '' BFigAwIBAgIKYQxSTAAAAAAAAzANBgkqhkiG9w0BAQsF'' SIG '' ADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp'' SIG '' bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT'' SIG '' FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp'' SIG '' TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y'' SIG '' aXR5IDIwMTAwHhcNMTAwNzA2MjA0MDE3WhcNMjUwNzA2'' SIG '' MjA1MDE3WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMK'' SIG '' V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG'' SIG '' A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD'' SIG '' VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAy'' SIG '' MDEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC'' SIG '' AQEA6Q5kUHlntcTj/QkATJ6UrPdWaOpE2M/FWE+ppXZ8'' SIG '' bUW60zmStKQe+fllguQX0o/9RJwI6GWTzixVhL99COMu'' SIG '' K6hBKxi3oktuSUxrFQfe0dLCiR5xlM21f0u0rwjYzIjW'' SIG '' axeUOpPOJj/s5v40mFfVHV1J9rIqLtWFu1k/+JC0K4N0'' SIG '' yiuzO0bj8EZJwRdmVMkcvR3EVWJXcvhnuSUgNN5dpqWV'' SIG '' XqsogM3Vsp7lA7Vj07IUyMHIiiYKWX8H7P8O7YASNUwS'' SIG '' pr5SW/Wm2uCLC0h31oVH1RC5xuiq7otqLQVcYMa0Kluc'' SIG '' IxxfReMaFB5vN8sZM4BqiU2jamZjeJPVMM+VHwIDAQAB'' SIG '' o4IB4zCCAd8wEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0O'' SIG '' BBYEFOb8X3u7IgBY5HJOtfQhdCMy5u+sMBkGCSsGAQQB'' SIG '' gjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAP'' SIG '' BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP'' SIG '' 6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeG'' SIG '' RWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3Js'' SIG '' L3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIz'' SIG '' LmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKG'' SIG '' Pmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2Vy'' SIG '' dHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MIGd'' SIG '' BgNVHSAEgZUwgZIwgY8GCSsGAQQBgjcuAzCBgTA9Bggr'' SIG '' BgEFBQcCARYxaHR0cDovL3d3dy5taWNyb3NvZnQuY29t'' SIG '' L1BLSS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggrBgEF'' SIG '' BQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBQAG8AbABpAGMA'' SIG '' eQBfAFMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkqhkiG'' SIG '' 9w0BAQsFAAOCAgEAGnTvV08pe8QWhXi4UNMi/AmdrIKX'' SIG '' +DT/KiyXlRLl5L/Pv5PI4zSp24G43B4AvtI1b6/lf3mV'' SIG '' d+UC1PHr2M1OHhthosJaIxrwjKhiUUVnCOM/PB6T+DCF'' SIG '' F8g5QKbXDrMhKeWloWmMIpPMdJjnoUdD8lOswA8waX/+'' SIG '' 0iUgbW9h098H1dlyACxphnY9UdumOUjJN2FtB91TGcun'' SIG '' 1mHCv+KDqw/ga5uV1n0oUbCJSlGkmmzItx9KGg5pqdfc'' SIG '' wX7RSXCqtq27ckdjF/qm1qKmhuyoEESbY7ayaYkGx0aG'' SIG '' ehg/6MUdIdV7+QIjLcVBy78dTMgW77Gcf/wiS0mKbhXj'' SIG '' pn92W9FTeZGFndXS2z1zNfM8rlSyUkdqwKoTldKOEdqZ'' SIG '' Z14yjPs3hdHcdYWch8ZaV4XCv90Nj4ybLeu07s8n07Ve'' SIG '' afqkFgQBpyRnc89NT7beBVaXevfpUk30dwVPhcbYC/GO'' SIG '' 7UIJ0Q124yNWeCImNr7KsYxuqh3khdpHM2KPpMmRM19x'' SIG '' HkCvmGXJIuhCISWKHC1g2TeJQYkqFg/XYTyUaGBS79ZH'' SIG '' maCAQO4VgXc+nOBTGBpQHTiVmx5mMxMnORd4hzbOTsNf'' SIG '' svU9R1O24OXbC2E9KteSLM43Wj5AQjGkHxAIwlacvyRd'' SIG '' UQKdannSF9PawZSOB3slcUSrBmrm1MbfI5qWdcUxghW6'' SIG '' MIIVtgIBATCBlTB+MQswCQYDVQQGEwJVUzETMBEGA1UE'' SIG '' CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe'' SIG '' MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgw'' SIG '' JgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD'' SIG '' QSAyMDEwAhMzAAAAFhEEtIg4jL7DAAAAAAAWMA0GCWCG'' SIG '' SAFlAwQCAQUAoIHAMBkGCSqGSIb3DQEJAzEMBgorBgEE'' SIG '' AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3'' SIG '' AgEVMC8GCSqGSIb3DQEJBDEiBCD1TJpTGWrIm4napIKJ'' SIG '' YhzLZWUWjiXYdz5av5AAR9fYhjBUBgorBgEEAYI3AgEM'' SIG '' MUYwRKAigCAATQBpAGMAcgBvAHMAbwBmAHQAIABPAGYA'' SIG '' ZgBpAGMAZaEegBxodHRwOi8vb2ZmaWNlLm1pY3Jvc29m'' SIG '' dC5jb20gMA0GCSqGSIb3DQEBAQUABIIBAGu21FD/HaKe'' SIG '' x/u2c2W5ahMQfqtl1D7pmywem006AtumQmviOOafquMZ'' SIG '' mT/jJf9FrrR6tVKN2v8UfTJwIQi1lWlQAyYTA/bOGiI2'' SIG '' Uepum9IQyFbbtbqu7RWwqeEGbpugGTHF1H/5nXWTwUfj'' SIG '' XGUcySYJhQI20/DcGw0G2TD2xPPT7JfbHviXvH0d2nRW'' SIG '' P/10Gi1AmAY7+Koe/jZ6Z7uhzw2TbL1oZpBrvlDzY/0t'' SIG '' PopVtLTWf8MMQLD81+oBkj9TcgG684Gu4oYWoXQ2VGxX'' SIG '' hxTwJJWmJ/Lk16pxtmfsTDKmbVZQKQq/Kfmot6mBhT+v'' SIG '' srzqUZmrI5fj8kmq27NRiYihghMyMIITLgYKKwYBBAGC'' SIG '' NwMDATGCEx4wghMaBgkqhkiG9w0BBwKgghMLMIITBwIB'' SIG '' AzEPMA0GCWCGSAFlAwQCAQUAMIIBPQYLKoZIhvcNAQkQ'' SIG '' AQSgggEsBIIBKDCCASQCAQEGCisGAQQBhFkKAwEwMTAN'' SIG '' BglghkgBZQMEAgEFAAQgaPCujLfd+uxBHGfJ4h+nFCAS'' SIG '' qeiGNAoy2HNoucsL2xUCBlBkYEUZ2hgTMjAxMjEwMDIw'' SIG '' MDA4NTEuMjQ3WjAHAgEBgAIB9KCBuaSBtjCBszELMAkG'' SIG '' A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO'' SIG '' BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m'' SIG '' dCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUG'' SIG '' A1UECxMebkNpcGhlciBEU0UgRVNOOkI4RUMtMzBBNC03'' SIG '' MTQ0MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt'' SIG '' cCBTZXJ2aWNloIIOxzCCBnEwggRZoAMCAQICCmEJgSoA'' SIG '' AAAAAAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYT'' SIG '' AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH'' SIG '' EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y'' SIG '' cG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290'' SIG '' IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTEw'' SIG '' MDcwMTIxMzY1NVoXDTI1MDcwMTIxNDY1NVowfDELMAkG'' SIG '' A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO'' SIG '' BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m'' SIG '' dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0'' SIG '' IFRpbWUtU3RhbXAgUENBIDIwMTAwggEiMA0GCSqGSIb3'' SIG '' DQEBAQUAA4IBDwAwggEKAoIBAQCpHQ28dxGKOiDs/BOX'' SIG '' 9fp/aZRrdFQQ1aUKAIKF++18aEssX8XD5WHCdrc+Zitb'' SIG '' 8BVTJwQxH0EbGpUdzgkTjnxhMFmxMEQP8WCIhFRDDNdN'' SIG '' uDgIs0Ldk6zWczBXJoKjRQ3Q6vVHgc2/JGAyWGBG8lhH'' SIG '' hjKEHnRhZ5FfgVSxz5NMksHEpl3RYRNuKMYa+YaAu99h'' SIG '' /EbBJx0kZxJyGiGKr0tkiVBisV39dx898Fd1rL2KQk1A'' SIG '' UdEPnAY+Z3/1ZsADlkR+79BL/W7lmsqxqPJ6Kgox8NpO'' SIG '' BpG2iAg16HgcsOmZzTznL0S6p/TcZL2kAcEgCZN4zfy8'' SIG '' wMlEXV4WnAEFTyJNAgMBAAGjggHmMIIB4jAQBgkrBgEE'' SIG '' AYI3FQEEAwIBADAdBgNVHQ4EFgQU1WM6XIoxkPNDe3xG'' SIG '' G8UzaFqFbVUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBD'' SIG '' AEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w'' SIG '' HwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQw'' SIG '' VgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNy'' SIG '' b3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9v'' SIG '' Q2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEB'' SIG '' BE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNy'' SIG '' b3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRf'' SIG '' MjAxMC0wNi0yMy5jcnQwgaAGA1UdIAEB/wSBlTCBkjCB'' SIG '' jwYJKwYBBAGCNy4DMIGBMD0GCCsGAQUFBwIBFjFodHRw'' SIG '' Oi8vd3d3Lm1pY3Jvc29mdC5jb20vUEtJL2RvY3MvQ1BT'' SIG '' L2RlZmF1bHQuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwA'' SIG '' ZQBnAGEAbABfAFAAbwBsAGkAYwB5AF8AUwB0AGEAdABl'' SIG '' AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQAH'' SIG '' 5ohRDeLG4Jg/gXEDPZ2joSFvs+umzPUxvs8F4qn++ldt'' SIG '' GTCzwsVmyWrf9efweL3HqJ4l4/m87WtUVwgrUYJEEvu5'' SIG '' U4zM9GASinbMQEBBm9xcF/9c+V4XNZgkVkt070IQyK+/'' SIG '' f8Z/8jd9Wj8c8pl5SpFSAK84Dxf1L3mBZdmptWvkx872'' SIG '' ynoAb0swRCQiPM/tA6WWj1kpvLb9BOFwnzJKJ/1Vry/+'' SIG '' tuWOM7tiX5rbV0Dp8c6ZZpCM/2pif93FSguRJuI57BlK'' SIG '' cWOdeyFtw5yjojz6f32WapB4pm3S4Zz5Hfw42JT0xqUK'' SIG '' loakvZ4argRCg7i1gJsiOCC1JeVk7Pf0v35jWSUPei45'' SIG '' V3aicaoGig+JFrphpxHLmtgOR5qAxdDNp9DvfYPw4Ttx'' SIG '' Cd9ddJgiCGHasFAeb73x4QDf5zEHpJM692VHeOj4qEir'' SIG '' 995yfmFrb3epgcunCaw5u+zGy9iCtHLNHfS4hQEegPsb'' SIG '' iSpUObJb2sgNVZl6h3M7COaYLeqN4DMuEin1wC9UJyH3'' SIG '' yKxO2ii4sanblrKnQqLJzxlBTeCG+SqaoxFmMNO7dDJL'' SIG '' 32N79ZmKLxvHIa9Zta7cRDyXUHHXodLFVeNp3lfB0d4w'' SIG '' wP3M5k37Db9dT+mdHhk4L7zPWAUu7w2gUDXa7wknHNWz'' SIG '' fjUeCLraNtvTX4/edIhJEjCCBNEwggO5oAMCAQICCmEH'' SIG '' 1FUAAAAAAA4wDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE'' SIG '' BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV'' SIG '' BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD'' SIG '' b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp'' SIG '' bWUtU3RhbXAgUENBIDIwMTAwHhcNMTIwMTA5MjEzNTMx'' SIG '' WhcNMTMwNDA5MjE0NTMxWjCBszELMAkGA1UEBhMCVVMx'' SIG '' EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl'' SIG '' ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh'' SIG '' dGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMebkNp'' SIG '' cGhlciBEU0UgRVNOOkI4RUMtMzBBNC03MTQ0MSUwIwYD'' SIG '' VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl'' SIG '' MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA'' SIG '' weiiiavCaSU5yAO7J7LMoFhyzUv4QGcC85Sl6EdWInsg'' SIG '' nJ4/uPz92BPkJqKQ7+S9iEplO1iwcoUEiARNaVXKHaxz'' SIG '' g/vjTPVeJrFRZwdt7mDhCISPS/Jmzo1gPxiQ89ySBo5u'' SIG '' 9eCyW35wKULrQhWmxVXzHr3ZvcsT2eqwdL97m4xWCbmI'' SIG '' ZSSUTMqApPPv8se3fU23u6A/U6J5jWzxubjJ5HXUXttd'' SIG '' reRWpTihDFQ7KcsEyB4MrRJP8qXec6sZ9HUC0HTUB+GR'' SIG '' WWqbJRiYCyjH13ViaapBfos7kYb/pPTqtveVi5nDphrs'' SIG '' i+jxsygf7gyFNBKBUwfIyW9vAqZ86Be0DwIDAQABo4IB'' SIG '' GzCCARcwHQYDVR0OBBYEFMbW5nU1U+/wnbjYtEvuXlMB'' SIG '' CGPZMB8GA1UdIwQYMBaAFNVjOlyKMZDzQ3t8RhvFM2ha'' SIG '' hW1VMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu'' SIG '' bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01p'' SIG '' Y1RpbVN0YVBDQV8yMDEwLTA3LTAxLmNybDBaBggrBgEF'' SIG '' BQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cu'' SIG '' bWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljVGltU3Rh'' SIG '' UENBXzIwMTAtMDctMDEuY3J0MAwGA1UdEwEB/wQCMAAw'' SIG '' EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEL'' SIG '' BQADggEBAI0KBSOJ6bP7QV7OBc3Qqr9NuRE/A3XEtCto'' SIG '' Oz7ZTYBcGswSypS0o+c2jD54GkUSz8eNIK/HNwpipKCv'' SIG '' Yqp9KTUgw66SS/r2uF5LX3RmrPKhLXA4cdGYNlu/BuX+'' SIG '' LeyJ2KXql1BCgrU1+xB4fxhe7baUWx9o5rN8N2/4P8L5'' SIG '' b4Wlw2clhOvZuKCjtO5YJqk6yH0ESwyoE0ZtnsZaYOcI'' SIG '' cZEblJidE2CtM702fe0IaCLIMOffLMQr9T+4gVlPq+1s'' SIG '' vCAGEQVMMDkoR1BU37nOc9+Q82n/qBMTgnvQG9ogqcFQ'' SIG '' 5skb/6SCon+aXmEWujxcUQfTqh0ixjkd346o0uBTH9yh'' SIG '' ggN5MIICYQIBATCB46GBuaSBtjCBszELMAkGA1UEBhMC'' SIG '' VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT'' SIG '' B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw'' SIG '' b3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMe'' SIG '' bkNpcGhlciBEU0UgRVNOOkI4RUMtMzBBNC03MTQ0MSUw'' SIG '' IwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2'' SIG '' aWNloiUKAQEwCQYFKw4DAhoFAAMVAIMU1+AB1G7ZyJUz'' SIG '' KxZvn3EmZVMnoIHCMIG/pIG8MIG5MQswCQYDVQQGEwJV'' SIG '' UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH'' SIG '' UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv'' SIG '' cmF0aW9uMQ0wCwYDVQQLEwRNT1BSMScwJQYDVQQLEx5u'' SIG '' Q2lwaGVyIE5UUyBFU046QjAyNy1DNkY4LTFEODgxKzAp'' SIG '' BgNVBAMTIk1pY3Jvc29mdCBUaW1lIFNvdXJjZSBNYXN0'' SIG '' ZXIgQ2xvY2swDQYJKoZIhvcNAQEFBQACBQDUFAnFMCIY'' SIG '' DzIwMTIxMDAxMTIyMzMzWhgPMjAxMjEwMDIxMjIzMzNa'' SIG '' MHcwPQYKKwYBBAGEWQoEATEvMC0wCgIFANQUCcUCAQAw'' SIG '' CgIBAAICCfICAf8wBwIBAAICF3EwCgIFANQVW0UCAQAw'' SIG '' NgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAaAK'' SIG '' MAgCAQACAxbjYKEKMAgCAQACAwehIDANBgkqhkiG9w0B'' SIG '' AQUFAAOCAQEAR/OueYR+g/HRIidEawooT2diG+SL852l'' SIG '' aPKtFYpQ2evbBhC6mrWYwfJJh7+so1dptvEQ5oCjx2Ko'' SIG '' /MSkTqsyLn2cfgT160PMyOeabh4/jMgUGU/C1YnkM4R2'' SIG '' K4ShNBu3H6cGxTJMFv3edD+5tEZjPFJvdfJkewL2u+4T'' SIG '' Jzbbo/SZ2Mp0mYYNnYlXBbwXy27ZtKeQqwdZO5oqyNlg'' SIG '' NwYktOW1REwe9+1YIHfw9IhLPmAjF+ag7+FmKZG1ou1J'' SIG '' R95O7apQeOrLONDdraALCmb4JgNntqwy+x+RgmXdnUgo'' SIG '' 7mZF2oiDM/NqIWB/mN1ILdPF/ckEXOtLutVGHcEKpdpb'' SIG '' EzGCAuMwggLfAgEBMIGKMHwxCzAJBgNVBAYTAlVTMRMw'' SIG '' EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt'' SIG '' b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp'' SIG '' b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w'' SIG '' IFBDQSAyMDEwAgphB9RVAAAAAAAOMA0GCWCGSAFlAwQC'' SIG '' AQUAoIIBKTAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQ'' SIG '' AQQwLwYJKoZIhvcNAQkEMSIEIMVDfBvNNWKr5LBboTVX'' SIG '' gRlLtx9uanEUsfPaJoM5/ZbLMIHZBgsqhkiG9w0BCRAC'' SIG '' DDGByTCBxjCBwzCBqAQUgxTX4AHUbtnIlTMrFm+fcSZl'' SIG '' UycwgY8wgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UE'' SIG '' CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe'' SIG '' MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYw'' SIG '' JAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg'' SIG '' MjAxMAIKYQfUVQAAAAAADjAWBBRjIEaoyFA06dGB75Ys'' SIG '' NATncLtMNDANBgkqhkiG9w0BAQsFAASCAQBvTI/fQJ7r'' SIG '' /bKY6hyQc46TuKX4MBG5kc4j3qwYY9hBWAfZtebgojiU'' SIG '' N4sDMmAQ9RJo6/tAXqtoc2hh/hn3nwJmXbpDzEj50wmB'' SIG '' zMnOyo+YNcTkGhV9z3DfdIzLJ6iglM6y3kyy8ySjdXw3'' SIG '' X9b4UlqeEetg6mb4S7FtLRnBGPNB9wXLt2Cw3tSSLWbt'' SIG '' hLeGi6Xh5AkWaNMz/2SZZIj7vVj/S01BZsGxGpV6BmXP'' SIG '' 0UW1gEJSNbqBKPuUsTD1I6aMH7hp57XL9q3np5DHU/Ae'' SIG '' q45jBLGD0mx3n73y//7FnQiFKpoRM8l33KGaUkkYHDIM'' SIG '' 5XalKnWa59yf/0L8Ls6Bzflz'' SIG '' End signature block

 

转载地址:http://rnsof.baihongyu.com/

你可能感兴趣的文章
Java多线程实现的四种方式
查看>>
Java多线程问题总结
查看>>
js 失去焦点自动计算BMI 保留一位小数
查看>>
js Math.round()
查看>>
java内存中的堆栈、堆、静态区、常量池
查看>>
对接输入输出流;封装拷贝; 封装释放资源
查看>>
装饰器设计模式 :实现放大器对声音的放大动能
查看>>
p15 装饰器设计模式:模拟咖啡
查看>>
sax的解析流程
查看>>
SAX解析xml2
查看>>
简易版server服务器搭建
查看>>
进程和线程的关系与区别
查看>>
C++ STL priority_queue
查看>>
浅谈C++多态性
查看>>
c++(重载、覆盖、隐藏)
查看>>
虚函数的工作原理
查看>>
01背包、完全背包、多重背包问题分析
查看>>
一道位运算的算法题
查看>>
创建型模式之原型模式
查看>>
结构型模式之适配器模式(Adapter)
查看>>