Yes, I remember this very well... But, you got it sorted, as usual / always... LOL OBTW, MRPQT 124.0 only reports 4 GB vs 6 GB NVIDIA GPU ram... Just say'n... ====[ Basic Graphics Information ]==== Adapter 1 Description : NVIDIA GeForce RTX 3060 Laptop GPU {RefS} Adapter 1 Video Memory : 4,095 MiB Adapter 1 Driver Date : 5/1/2022 8:00:00 PM {Localized} Adapter 1 Driver Version : 30.0.15.1272 Adapter 1 Video DAC Type : Integrated RAMDAC Adapter 1 Bits Per Pixel : N/A Adapter 1 Video Mode Desc : N/A Adapter 2 Description : Intel{R} UHD Graphics {RefS} Adapter 2 Video Memory : 1,024 MiB Adapter 2 Driver Date : 2/2/2022 7:00:00 PM {Localized} Adapter 2 Driver Version : 30.0.101.1340 Adapter 2 Video DAC Type : Internal Adapter 2 Bits Per Pixel : 32 Adapter 2 Video Mode Desc : 1920 x 1200 x 4294967296 colors
The old QT uses a now outdated routine - only the GUI one has the one that can get greater than 4GB for VRam (I hope!) I will adjust the old qt to use the same PS Routine but it will need a bit of a re-write as the results back from the PS way is in a different order of results so will confuse the old QT if i just use as-is.
I wanted to get the PS routine that would work on Vista to w11+ --- took a few attempts as usual as i am not as good with ps as i am with batch scripting, still not happy to have to resort to PS but it the only way for the time being some i can get away with WMI stuff in AutoIT but not always. They say its good to challenge yourself, but this sometimes feels like mountain climbing without ropes
Pshell seems to also add any system shared. My intel on my tosh laptop says 1gb in bios but in the intel properties info it over 2gb as it sneaked some system ram. The .31 gui qt is almost spot on the vram. Other tests on other laptops was ok.
The ps routine is still in development, have tried to work with a limited knowledge of Pshell, the amount of tries is well over 30 attempts as the if (condition) etc takes a bit of getting used to. There is the -eq -ne then you have the -like and the -notlike bits. No wonder ps is slow to process , all that checking etc before it starts to run your code, and then you get those head scratching cryptic error messages!! On top of that some ps bits are not backward or even forward compatible, not to forget some commands require a specific ps version. No wonder i detest ps
I think that ps based on .net managed language, layers over layers, in the end, it make it f* slow VB engine, wmic tool based on C/C+ I think, are much faster !!!
Considering that batch scripting has a fairly limited command set, it far faster, easier to write stuff and it can get quite powerful. Pshell has a lot more command set but gez nothing is easy, everything is such a chore. Writing a gui in pshell, sod that for a game of chess i tried, got as far as the main gui window but anything else i just gave up. Autoit isnt perfect but a gui is far easier to create and setup.
But everyone has there preferred way to code and i am not saying x is better than y as each method has pros and cons. My first programming was for the bbc micro computer, 6502, then z80, then progressed to arm coding or risc , never thought that little arm processor would end up in almost everything, phones, tvs, white goods and even space craft!!
Spoiler: Post-able Log Code: ------------------------------------------------------------------------------------------------------------------- Query Tool GUI v0.10.1.31 ------------------------------------------------------------------------------------------------------------------- Log Date {UTC}: 11/10/2022 -- 03:40 {24-hour} Some results may be shortened to fit the output stage, such as RAM information. This is the postable report that does not contain full serial or sensitive information. On Hypervisors some results may be missing due to unable to detect. GUI Font Used : Lucida Console Size: 11 =================================================================================================================== Operating System Information =================================================================================================================== Installation Type : Client Name : Microsoft Windows 7 Professional OS/CPU Architecture : CPU and OS is 64 bit Build : 6.1.7601 {UBR:26221} Language : English (United States) Native Language : English Installed/Available Languages : en-US Stock Keeping Unit {SKU} : 48 Experience Pack : N/A Installation Date : 9/13/2014 at 2:43 AM {UTC} Shipped with Reserved 7GB : N/A Dirty Shutdown Count : N/A Build Branch : N/A Product ID : N/A for Vista or 7 TimeZone {TZUtil} : W. Europe Standard Time Hours offset from GMT : 1 Daylight Saving In Effect : No Daylight Adjust Clock Mode : Disabled/Unchecked Hypervisor Present : Yes {VBox} 5.2.45.39677 Virtual Machine Data : This computer does not appear to be a virtual machine Windows Key 1 Installed : GPDD4 (Last 5 digits shown) Windows DpID4 Installed : GPDD4 (Last 5 digits shown) Windows Default Installed : PW487 (Last 5 digits shown) Windows Default4 Installed : PW487 (Last 5 digits shown) TPM Information : N/A =================================================================================================================== System Drive C: Partition Information =================================================================================================================== Drive Type : Non SSD BUS Type : Serial ATA (SATA) Total Space : 689.31 GB Free Space : 420.55 GB Partition Type : MBR Firmware Boot Type : Legacy/MBR Mode {R:1} Secure Boot Status : N/A File System : NTFS Model Name : WDC WD20 EZRZ-00Z5HB0 SATA Disk Device =================================================================================================================== Memory Information =================================================================================================================== Total Physical : 33445712 KB (31.9 GB) Available Physical : 26162428 KB (24.95 GB) Total Page Size : 100335240 KB (95.69 GB) Available Page Size : 91022184 KB (86.81 GB) Total Virtual Size : 4194176 KB (4 GB) Available Virtual : 4024492 KB (3.84 GB) Memory Type : N/A Memory Error Correction : Non-ECC Memory Slots Fitted : 4 DIMM Information {First Four} : DIMM0 8192MB @ 1600MHz DIMM1 8192MB @ 1600MHz DIMM2 8192MB @ 1600MHz DIMM3 8192MB @ 1600MHz =================================================================================================================== Graphics Information =================================================================================================================== Adaptor Name : NVIDIA GeForce GTX 980 Adaptor Physical Memory : 1024 MB (1 GB) {Routine:P1-7 v2} Adaptor DACType : Integrated RAMDAC {Addon} Adaptor Video Memory Type : GDDR (2) Adaptor Status : Active Adaptor Name : NVIDIA GeForce GTX 980 Adaptor Physical Memory : 4096 MB (4 GB) {Routine:P1-7 v2} Adaptor DACType : Integrated RAMDAC {Addon} Adaptor Video Memory Type : GDDR (2) Adaptor Status : Active Virtual Desktop Resolution : 3840 x 2160 Bits Per Pixel : 32 Video Mode Description : 3840 x 2160 x 4294967296 colors {Ref:1} Video Ram may include shared memory. Some values may not be accurate due to 32 bit API limitations. On Hypervisors some results may be missing due to unable to detect. =================================================================================================================== Network Adaptor Information =================================================================================================================== Adaptor 1 Name : VirtualBox Host-Only Ethernet Adapter Connection Status : Connected Adaptor 2 Name : Intel(R) Gigabit CT Desktop Adapter Connection Status : Connected =================================================================================================================== Processor 1 Information =================================================================================================================== Name : AMD FX-8370 Eight-Core Processor Architecture : 64 L2 Cache Size : 8192 L3 Cache Size : 8192 Current Clock Speed : 4000 Physical Cores : 4 Logical Cores : 8 Processor Id : 178BFBFF00600F20 Virtualization Mode : Query not present on this OS Manufacturer : AuthenticAMD Description : AMD64 Family 21 Model 2 Stepping 0 =================================================================================================================== DMI/BIOS Information =================================================================================================================== System Manufacturer : To be filled by O.E.M. System Product Name : To be filled by O.E.M. BaseBoard Manufacturer : ASUSTeK COMPUTER INC. BaseBoard Product : SABERTOOTH 990FX R2.0 BaseBoard Version : Rev 1.xx BIOS Vendor : American Megatrends Inc. BIOS Release Date : 05/04/2016 BIOS Version : 2901 Primary BIOS : True SMBIOS Present : True SMBIOS Version : 2.7 SLIC/BIOS Data : _ASUS_ - 1072009 Valid SLIC Name : Asus Possible Brand Theme : Asus {BaseBoard Manufacturer} SLIC Table Status : Unable to check on this OS MSDM Key Description : No MSDM key Description found MSDM Key Detected : Unable to decode the keys value on this OS =================================================================================================================== Miscellaneous Information =================================================================================================================== Which MRP Version Used : N/A Wallpaper Style : Fill image to display resolution Current Theme Used : !NT.theme Installed Dot Net Frameworks : 2.0 3.0 3.5 4.8 4.0 Installed Powershell Versions : 1.0, 2.0, 3.0, 4.0, 5.0, 5.1 Security Product Name{s} : COMODO Antivirus Defender Tamper Protection : Disabled Defender Service Status : Disabled Windows Firewall Service State : Disabled Windows Activation Status : VL activation expires 175 Days / 252000 minutes Windows Licence Reason : Valid key was used for the product's licensing channel Windows Product Key Channel : KMS Client {VOLUME_KMSCLIENT} Device has KMS Enabled : Yes KMS Auto Renewal (hook) : No MS Office {MSI/Traditional} : Not Detected C2R MS Office : Not Detected C2R Excluded Apps : N/A C2R Last Update Channel : N/A C2R Office Activation Status : N/A C2R Partial Product Key : N/A Office Reason Information : No reason information to show/No Issues Office MAK/KMS Information : No MAK or KMS activation detected ------------------------------------------------------------------------------------------------------------------- It unfortunately still gets the graphics adaptor wrong (two times, second has correct GRAM (4096M)). Also, Product ID on Win7 N/A, why? The following works fine for me, even on Win7: Code: wmic.exe PATH SoftwareLicensingProduct WHERE (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' AND PartialProductKey is not NULL) GET "ProductKeyID" /VALUE Also, I noticed it always says "Disabled/Unchecked" for DST setting. All my systems have DST setting "On".
The routine checks for 1 internal iGpu and 1 addon, i got the logic right for internsl ones but have to do similar for addon only systems that have 2 cards.
Dst , i not sure why it not picking that up, it a registry read same format as the old qt. Product id , will look into that too. Cant use wmic calls like batch in autoit as it a pain to capture the output to parse results so have to use wmi calls like vbscript which can be awkward at times. On w7 memory slots shows what happens when it goes wrong, noinstances etc! I am still learning the sometimes weird ways of Pshell etc , converting code from batch, Pshell etc to suitable autoit code takes a few goes.
That's the Extended PID of the installed key QT's Product ID is the registry value ProductId from [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion] which does exist on Win7
Code: $ProductID = RegRead($sHKLM & "\SOFTWARE\Microsoft\Windows NT\CurrentVersion", 'ProductID') IF @error Then $ProductID = "N/A for Vista or 7" For some reason it produces and error no idea why The $sHKLM is either HKLM or HKLM64 depending if 32/64 bit... But that not failed before on other registry reads... *edit* Fixed
The issue is the 'Internal DAC' which throws the routine out, i just cannot split the checks in PS as i not understand the logic to perform the actions Manged to do a check for the 'Integrated DAC' type but it not work for two internal cards Spoiler: PS code - outputs to screen for testing Code: # Get Grfx Adapter Information $g="z" (get-wmiobject Win32_videocontroller) | where-object -filterscript {$_.adapterDACType -like "Internal"} | foreach-object -process { write-output (@($_.DeviceID,$_.Caption,($_.AdapterRam/1MB),$_.CurrentBitsPerPixel, $_.VideoMemoryType,$_.VideoModeDescription,$_.adapterDACType) -join "|") $g="" } if ($g -ne "" ) { (get-wmiobject Win32_videocontroller) | where-object -filterscript {$_.adapterDACType -like "Internal*"} | foreach-object -process { write-output (@($_.DeviceID,$_.Caption,($_.AdapterRam/1MB),$_.CurrentBitsPerPixel, $_.VideoMemoryType,$_.VideoModeDescription,$_.adapterDACType) -join "|") } } # Dedicated graphics $g="z" if ((get-wmiobject Win32_videocontroller) | where-object -filterscript {$_.adapterDACType -like "Integrated*"}) { $qwMemorySize0 = (Get-ItemProperty -Path "HKLM:\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0*" -Name HardwareInformation.qwMemorySize -ErrorAction SilentlyContinue)."HardwareInformation.qwMemorySize" foreach ($VRAM in $qwMemorySize0) { (get-wmiobject Win32_videocontroller) | where-object -filterscript {$_.DeviceID -like "VideoController1"} | foreach-object -process { write-output (@($_.DeviceID,$_.Caption,($VRAM/1MB),$_.CurrentBitsPerPixel, $_.VideoMemoryType,$_.VideoModeDescription,$_.adapterDACType) -join '|') } } $qwMemorySize1 = (Get-ItemProperty -Path "HKLM:\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\1*" -Name HardwareInformation.qwMemorySize -ErrorAction SilentlyContinue)."HardwareInformation.qwMemorySize" foreach ($VRAM in $qwMemorySize1) { (get-wmiobject Win32_videocontroller) | where-object -filterscript {$_.DeviceID -like "VideoController2"} | foreach-object -process { write-output (@($_.DeviceID,$_.Caption,($VRAM/1MB),$_.CurrentBitsPerPixel, $_.VideoMemoryType,$_.VideoModeDescription,$_.adapterDACType) -join '|') } } } I parse the output to split the | into an array...