Multi-OEM/Retail Project {MRP} - Mk3

Discussion in 'MDL Projects and Applications' started by mxman2k, Oct 15, 2016.

  1. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    6,404
    21,432
    210
    #11901 mxman2k, Feb 15, 2025 at 18:39
    Last edited: Feb 15, 2025 at 21:43
    (OP)
    hmm tsforge must use MSDM type tokens :g: :D

    There again as long as it works :p
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  2. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    6,404
    21,432
    210
    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.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  3. Carlos Detweiller

    Carlos Detweiller Emperor of Ice-Cream

    Dec 21, 2012
    6,824
    7,840
    210
    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.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  4. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    6,404
    21,432
    210
    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.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  5. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    6,404
    21,432
    210
    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 :)

    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).
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  6. Carlos Detweiller

    Carlos Detweiller Emperor of Ice-Cream

    Dec 21, 2012
    6,824
    7,840
    210
    Yeah, I guess VBS is better...

    licchannel.png
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  7. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    6,404
    21,432
    210
    Funny thing is that the vbs routine is actually slightly quicker to get results than WMIC!!

    Powershell would take a lot longer :D - not use that method, just WMIC or vbscript.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  8. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    6,404
    21,432
    210
    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.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...