PDA

View Full Version : Not getting %DIGITALPRODUCTID%



NewsArchive
09-20-2013, 09:39 AM
All the Win7/8 64 bit computers I tried with my SB7/8 script were able to read the registry data
from %DIGITALPRODUCTID%

Now 2 Dell Win7 64bit computers that a customer just installed my program on also will not let me
read the Registry data from %DIGITALPRODUCTID% that I have never had a problem with on many other
Win7 computers.

I did read certain computers today place this data into the bios on the mother board. Not sure if it
was laptops or computers like a Dell.

Anyone else aware of this.

JIm

NewsArchive
09-20-2013, 09:39 AM
Jimmy,

Do you read the value for %DIGITALPRODUCTID% from a specific Windows
registry key (32-bit or 64-bit registry branch)? Perhaps the registry
information does not exist on the two Dell machines (with OEM Windows) or
the value is empty.

Friedrich

NewsArchive
09-20-2013, 09:39 AM
By the way, on my Windows 7 Ultimate x64 (non-OEM), the "DigitalProductId"
value name does exist only in the 64-bit registry branch, not in the 32-bit
one. Are you reading the 64-bit registry key?

Friedrich

NewsArchive
09-20-2013, 09:40 AM
See attached screenshots. It's only in the 64-bit registry. IMO, you only
read from the 32-bit registry key.

Friedrich

NewsArchive
09-21-2013, 05:14 AM
Yes I am reading the 64 bit Win7/8 %DIGITALPRODUCTID% registry entry with the correct SB script. It
works on all my 64 bit Win7/8 computers and on other customers.. It was just this Dell that I got
all 0's. As I was learning how to do this I saw some comments about how brand name computers and
maybe OEM ones are gettings the registry placed into a motherboard bios instead. Not sure if you had
heard of this.

Jimmy Rogers

NewsArchive
09-21-2013, 05:14 AM
Jimmy,

> Yes I am reading the 64 bit Win7/8 %DIGITALPRODUCTID% registry
> entry with the correct SB script. It works on all my 64 bit
> Win7/8 computers and on other customers.. It was just this Dell
> that I got all 0's. As I was learning how to do this I saw some
> comments about how brand name computers and maybe OEM ones are
> gettings the registry placed into a motherboard bios instead.
> Not sure if you had heard of this.

Just to be on the safe side: so you switch into 64-bit mode when running on
Windows x64, read the 64-bit registry branch, then switch back to 32-bit
mode?

The "DigitalProductId" key could be all null or empty if

1.) A Volume License Key activated the Windows 7 operating system. The
Volume License Key key is deleted from the registry after activation.

--and/or--

2. "Something" deleted or manipulated the registry key value (e.g. using the
command slmgr -cpky).

Friedrich

NewsArchive
09-21-2013, 05:15 AM
>Jimmy,
>
>> Yes I am reading the 64 bit Win7/8 %DIGITALPRODUCTID% registry
>> entry with the correct SB script. It works on all my 64 bit
>> Win7/8 computers and on other customers.. It was just this Dell
>> that I got all 0's. As I was learning how to do this I saw some
>> comments about how brand name computers and maybe OEM ones are
>> gettings the registry placed into a motherboard bios instead.
>> Not sure if you had heard of this.
>
>Just to be on the safe side: so you switch into 64-bit mode when running on
>Windows x64, read the 64-bit registry branch, then switch back to 32-bit
>mode?

Yes to the above. I do it just as you have described it. Thats why it works on my Win7/8 64 bit
computers.


Set Variable %DIGITALPRODUCTID% to ""
Set Variable %WIN64BIT% to ""
Set Variable %DIGITALPRODUCTID2% to ""

[ Edit Registry ]
Set Variable %WIN64BIT% to FUNCTION:Get System Info(WOW64 Status)
If %WIN64BIT% Equals "1" Then
Enable x64 Support
Set Variable %DIGITALPRODUCTID% to FUNCTION:Get Registry Key Value("DigitalProductId") from
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
If %_SB_ERRORCODE% Does Not Equal "0" Then
Text File: Create File a file
Set Variable %DIGITALPRODUCTID2% to FUNCTION:Mid(%DIGITALPRODUCTID%, 45, 156)
Set Variable %DIGITALPRODUCTID3% to FUNCTION:Remove Blanks(%DIGITALPRODUCTID2%)
Text File: Insert Line "1" to file
/* Display Message Box "%DIGITALPRODUCTID%\n\n%DIGITALPRODUCTID2%\n\n%DIGI ..." -- "64 BIT
Product Id" */
Else
/* Display Message Box "ERROR\n\n%DIGITALPRODUCTID%" -- "64 BIT Product Id" */
End
Disable x64 Support
Else
Set Variable %DIGITALPRODUCTID% to FUNCTION:Get Registry Key Value("DigitalProductId") from
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
If %_SB_ERRORCODE% Does Not Equal "0" Then
Text File: Create File a file
Set Variable %DIGITALPRODUCTID2% to FUNCTION:Mid(%DIGITALPRODUCTID%, 45, 156)
Set Variable %DIGITALPRODUCTID3% to FUNCTION:Remove Blanks(%DIGITALPRODUCTID2%)
Text File: Insert Line "1" to file
/* Display Message Box "%DIGITALPRODUCTID%\n\n%DIGITALPRODUCTID2%\n\n%DIGI ..." -- "32 BIT
Product Id" */
Else
/* Display Message Box "%DIGITALPRODUCTID%" -- "32 BIT Product Id AND ERROR" */
End
End

Exit Installation(2009)

>
>The "DigitalProductId" key could be all null or empty if
>
>1.) A Volume License Key activated the Windows 7 operating system. The
>Volume License Key key is deleted from the registry after activation.

Knowing this customer No 1 sounds right. I do not think No 2 is it.

So the "comments about how brand name computers and maybe OEM ones are gettings the registry placed
into a motherboard bios instead." does not sound righ tto you?

Jimmy Rogers