Done a bit to mrp 160 today, added the new 'se_' (selenium) branch/build code name in. Plus added it in to the next gui qt beta's code too. Not uploaded those yet as they still in their respective editors.
MRP 159 mis-detects activation channel information? Windows 7 fresh install, with an OEM:SLP activation MRP has even done by itself: MRP log (wrong): Code: [CHKLS] ============================================= [CHKLS] ===[ Detecting License\Activation Status ]=== [CHKLS] ============================================= [CHKLS] License/Activation Status : Licensed [CHKLS] License Channel Status : KMS_2012-R2_WIN10 {CTT} [CHKLS] Internet Connection Status : Appears not connected online [CHKLS] License Status Reason Code : 0x00000000 [CHKLS] Valid key for product's licensing channel was used for activation. QueryTool run directly after installation finished (correct): Code: Windows Activation Status : Activated Windows Licence Reason : No critical issues found Windows Product Key Channel : OEM SLP {OEM_SLP} {R:INS} Device has KMS Enabled : No KMS Auto Renewal (hook) : No MRP said WMIC method was used.
Will look into that area of mrp. I got an idea why it messed up. Luckily I have a win 7 laptop to hand to test with. May be later this week as busy until Thursday.
Managed to have a look at the Channel data section in MRP , it appears the WMIC method isn't as reliable as i thought , so have adjusted the code to use the VBScript method when a older OS (pre win 10) is detected... Hopefully this will work better Spoiler: VBScript method Code: On Error Resume Next strComputer = "." strLicTypeChannel = "" Set objWMIService = GetObject("winmgmts:[locale=ms_409]!\\" & strComputer & "\root\cimv2") Set objSWbemDateTime = CreateObject("WbemScripting.SWbemDateTime") Set colItems = objWMIService.ExecQuery( "Select * from SoftwareLicensingProduct Where PartialProductKey IS NOT NULL AND ApplicationID = '55c92734-d682-4d71-983e-d6ec3f16059f'",,48) For Each objSLP in colItems strDesc = objSLP.Description strSLPLicenseStatus = objSLP.LicenseStatus LicenseStatusReason = objSLP.LicenseStatusReason IF strLicTypeChannel = "" and InStrB(strDesc,"VOLUME_KMSCLIENT") <> 0 then strLicTypeChannel = "Volume KMS Client {VOLUME_KMSCLIENT}" end if If strLicTypeChannel = "" and InStrB(strDesc,"OEM_SLP") <> 0 then strLicTypeChannel = "OEM SLP {OEM_SLP}" end if If strLicTypeChannel = "" and InStrB(strDesc,"OEM_COA_NSLP") <> 0 then strLicTypeChannel = "OEM Certificate Of Authentication [System Builder] {OEM_COA_NSLP}" end if If strLicTypeChannel = "" and InStrB(strDesc,"VOLUME_MAK") <> 0 then strLicTypeChannel = "Volume MAK {VOLUME_MAK}" end if If strLicTypeChannel = "" and InStrB(strDesc,"VOLUME_KMS") <> 0 then strLicTypeChannel = "Volume KMS Server {VOLUME_KMS}" end if If strLicTypeChannel = "" and InStrB(strDesc,"OEM_COA_SLP") <> 0 then strLicTypeChannel = "OEM Certificate Of Authentication SLP {OEM_COA_SLP}" end if If strLicTypeChannel = "" and InStrB(strDesc,"OEM_DM") <> 0 then strLicTypeChannel = "OEM Digital Marker {OEM_DM}" end if If strLicTypeChannel = "" and InStrB(strDesc,"VOLUME_KMS_W10") <> 0 then strLicTypeChannel = "Volume KMS Windows 10 {VOLUME_KMS_W10}" end if If strLicTypeChannel = "" and InStrB(strDesc,"VOLUME_KMS_2012-R2_WIN10") <> 0 then strLicTypeChannel = "Volume KMS 2012R2 to Win10 {VOLUME_KMS_2012-R2_WIN10}" end if If strLicTypeChannel = "" and InStrB(strDesc,"VOLUME_KMS_W7") <> 0 then strLicTypeChannel = "Volume KMS Win7 {VOLUME_KMS_W7}" end if If strLicTypeChannel = "" and InStrB(strDesc,"VOLUME_KMS_WS12_R2") <> 0 then strLicTypeChannel = "Volume KMS Server 2012R2 {VOLUME_KMS_WS12_R2}" end if If strLicTypeChannel = "" and InStrB(strDesc,"VOLUME_KMS_WS16") <> 0 then strLicTypeChannel = "Volume KMS Server 2016 {VOLUME_KMS_WS16}" end if If strLicTypeChannel = "" and InStrB(strDesc,"TIMEBASED_EVAL") <> 0 then strLicTypeChannel = "Timebased Evaluation {TIMEBASED_EVAL}" end if If strLicTypeChannel = "" and InStrB(strDesc,"TIMEBASED_SUB") <> 0 then strLicTypeChannel = "Timebased Subscription {TIMEBASED_SUB}" end if If strLicTypeChannel = "" and InStrB(strDesc,"RETAIL") <> 0 then strLicTypeChannel = "Retail {RETAIL}" IF LicenseStatusReason = 1074066433 then strLicTypeChannel = "Retail/HWID" end if if strLicTypeChannel = "" then strLicTypeChannel = "Unknown" 'End If objSWbemDateTime.Value = objSLP.EvaluationEndDate strSLPEvaluationEndDate = objSWbemDateTime.GetVarDate(True) Name = objSLP.Name Desc = objSLP.Description IF Name <> "" then Name = Replace(Name, "(", "{") Name = Replace(Name, ")", "}") end if IF Desc <> "" then Desc = Replace(Desc, "(", "{") Desc = Replace(Desc, ")", "}") end if LicenseStatus = strSLPLicenseStatus LicenseStatusReason = objSLP.LicenseStatusReason LicTypeChannel = strLicTypeChannel GracePeriodRemaining = objSLP.GracePeriodRemaining IsKM = objSLP.IsKeyManagementServiceMachine ExtendedGrace = objSLP.ExtendedGrace IF ExtendedGrace < 0 then ExtendedGrace = "N/A" Wscript.Echo LicenseStatus & "|" & LicenseStatusReason & "|" & Name & "|" & Desc & "|" & LicTypeChannel & "|" & GracePeriodRemaining & "|" & ExtendedGrace & "|" & IsKM Next WMIC is still used on win 10/11 (if present or the VBScript method if WMIC not present).
Funny thing is that the vbs routine is actually slightly quicker to get results than WMIC!! Powershell would take a lot longer - not use that method, just WMIC or vbscript.
Have uploaded MRP v160 BT3 for the beta testers if they wish to test, this is with the above vbscript update and changes to the windows license detection routine to use the vbscript method when a pre w10 OS is detected or if WMIC is missing on win10/11.