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
    5,799
    19,384
    180
    #1621 mxman2k, Nov 20, 2017
    Last edited: Nov 20, 2017
    (OP)
    The way the project is designed is that it will automatically delete the Scripts folder (and anything within) once you do a logout/reboot cycle after setup is complete.

    That is one of the reasons the UserTweaks.cmd was created to allow the end user to add any tweaks/driver installs etc before the desktop appears.

    You could use the Setupcomplete.cmd to do your software/driver installations as this will be run under SYSTEM user which is higher than standard Administrator.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  2. bios83

    bios83 MDL Novice

    Aug 23, 2016
    12
    0
    0
    Well, something like this
     
  3. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    5,799
    19,384
    180
    setupcomplete.cmd is ran between the branding script finishing and the addon manager starting give or take a few seconds.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  4. bios83

    bios83 MDL Novice

    Aug 23, 2016
    12
    0
    0
    When working on a project, my .ini
     
  5. bios83

    bios83 MDL Novice

    Aug 23, 2016
    12
    0
    0
    The project deletes my .ini
     
  6. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    5,799
    19,384
    180
    as mentioned the Scripts folder is ONLY autodeleted after a logout/reboot cycle.

    If you are using a autounattend.xml i am unsure when that stage is ran, i suspect it may be ran after MRP has completed, it should technically still work as the scripts folder is not deleted. However because the project uses ini files these are automatically deleted, so i guess your driver.ini etc is also wiped. :g:

    I will adjust MRP to only delete its own ini files on the next release, which may be quite soon due to a bug that was found in the MSDM parsing stage.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  7. Enthousiast

    Enthousiast MDL Tester

    Oct 30, 2009
    47,286
    94,786
    450
    Can't you pre-integrate the drivers by dism?
     
  8. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    5,799
    19,384
    180
    Have checked the code and there was a bit that would delete all ini files with a del *.ini command line, i have now changed it to only delete the ini files that mrp uses.

    This should no longer interfere with any ini files from users adding other scripts that uses .ini files.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  9. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    5,799
    19,384
    180
    #1629 mxman2k, Nov 20, 2017
    Last edited: Nov 20, 2017
    (OP)
    MRP v74.1 has been uploaded and password updated on the first post.

    Quick Summary

    + Fixed MSDM parsing glitch/bug that would give no error or message about a dummy or generated MSDM key. Now you will see an Error {xx} message if this happens.
    The xx can be EM, ND or UL 99.9% it will be UL (un-listed) in that it has no information in the database. EM = Empty/unlisted, ND = not defined.

    + Fixed blanket deletion of *.ini files and now ONLY deletes MRP's ini files that it uses. So this will prevent any user added scripts that uses ini files for installation of Drivers/Software from being deleted by mistake..

    Other than the above two changes it is the same as version 74.0 hence only a minor 74.1 number used.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  10. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    5,799
    19,384
    180
    Forgot to mention, a new brand added, Novatech. also Config Creator now at v1.7 which covers the new brand. Nothing else has been changed.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  11. bkul

    bkul MDL Member

    Apr 2, 2015
    163
    44
    10
    #1633 bkul, Nov 21, 2017
    Last edited: Nov 21, 2017
    Small, technical question concerning MRPQTv33.exe: all my attempts to search the description of the LicenseStatusReason values have failed. But your code outputs for my notebook correct interpretation: "License Status Reason - 4004F401: The activation server reported that the computer has a valid Digital License". So the question is WHERE You've found the description of the LicenseStatusReason values?
    P.S: MSDN in the description of this property says nothing more then
    Code:
    [B]LicenseStatusReason[/B]
    Data type: [B]uint32[/B]
    Access type: Read-only
    Specifies the license status. Provides additional information about why a computer is in a specific licensing state.
    
    
    P.S: Search through the ASCII and Unicode strings of MRPQTv33.exe with EXE.EXE also have failed to find even "4004" :)
     
  12. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    5,799
    19,384
    180
    #1634 mxman2k, Nov 21, 2017
    Last edited: Nov 21, 2017
    (OP)
    @bkul The LicenseStatusReason is found via a WMIC call:

    Code:
    wmic path SoftwareLicensingProduct where (Name LIKE '%%Windows%%' and PartialProductKey is not null) get LicenseStatusReason /format:list
    With a FOR /F loop you can obtain the code itself from the list. Then i have a database which took hours to create! - it not cover every code I have only picked the ones to do with activation which is about 90+ so far. The code returned is decimal so for a DL = 1074066433 or 0x4004F401 in hex.

    Using slui 0x02a and the hex code will obtain the OS text for that code, it is a long process to do if you are creating a database of them as you have to copy/paste the text - tip use a admin command window then you can copy the text returned easier.

    With the slui command the hex value must start with 0x ie 0x4004F401 it is best to use capital letters for the hex values A-F as sometimes if you use lower case letters it can glitch and give no return value.

    The codes covered deal with Digital License, Valid Key, Oobe Grace, KMS and a few others.

    There is not much on the net about this interesting subject as you may of found and what little there is i had to do a bit of experimentation to see if it was a viable method. The result is to me a useful tool to add to the project as it can give extra information for the end user too for why it not activate etc, such as:

    C004F00F=Hardware ID binding is beyond level of tolerance. M/Board or other hardware changes.

    Which means too many changes made and the DL is invalid for the device.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  13. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    5,799
    19,384
    180
    @bios83 Hopefully the latest MRP will no longer interfere with your Drivers and Software installations.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  14. bkul

    bkul MDL Member

    Apr 2, 2015
    163
    44
    10
    MANY THNX for detailed answer! You see, I'm used to get DETAILED description of all possible property values when I read MSDN wmi class description. But comparing hardware classes descriptions, SoftwareLicensingProduct class description contains all possible values for the LicenseStatus but NOTHNG for the LicenseStatusReason. Thus will follow your advice to create small DB of the LicenseStatusReason with wmic and slui.
     
  15. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    5,799
    19,384
    180
    LicenseStatus is i think 0 - 6 so that not many, the LicenseReasonCode is a VERY big list if you really wanted to go all the way!

    As mentioned there isn't that much info about this area, whether M$ wanted to keep it 'secret' or it was too vast to explain lol.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  16. bkul

    bkul MDL Member

    Apr 2, 2015
    163
    44
    10
    One remark concerning MRPQTv33.exe: at my Thinkpad P51 which has two PCI-Express NVMe drives, MRPQTv33. issues:
    "HDD Mode/Partition - [Undefined, possible customized chipset.]". That is contemporary NVMe-drives are not supported by the methods used in MRPQT. But all necessary data in my case can be taken from "HKLM\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0" , "HKLM\HARDWARE\DEVICEMAP\Scsi\Scsi Port 1\Scsi Bus 0\Target Id 0\Logical Unit Id 0". That is directly "From the horses mouse" instead of wmi :)
     
  17. mxman2k

    mxman2k MDL Developer

    Jun 20, 2007
    5,799
    19,384
    180
    I will add new methods later as at some point i will be shifting from script based versions to a more advanced programming language which will hopefully (once i mastered it), have better detection rates.

    The QT just does a simple check for IDE or AHCI in that area, i know it has little flaws but the main focus on the QT is to obtain the Summary section ie Brand and Activation method that can be used for the computer it is run on.

    I know it fails on those MMC type 32gb 'sort of' SSDs' in some low end laptops, so i just put that message about unable to define/custom chipset as a quick fix. :p
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  18. bkul

    bkul MDL Member

    Apr 2, 2015
    163
    44
    10
    slui 0x02a 0x4004F040, "The Software Licensing Service reported that the product was activated but the owner should verify the Product Use Rights"
    What means this message for GVLK channel?