This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Installscript GETVERSIONEX returns incorrect Windows Operating System
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 03, 2014
07:44 AM
Installscript GETVERSIONEX returns incorrect Windows Operating System
Hi,
Have a Basic MSI Project - it was migrated from IS2008 to IS2014
A Custom Action invokes a piece of Installscript. This loads a DLL which in turn issues GETVERSIONEX (it is trying to validate a license key to a particular version of windows)
Running the installation on Windows 7 - but it returns info. for Windows Vista.
Have checked the manifest for the SETUP.EXE (picks up the SETUPEXE.INVOKER.MANIFEST). This contains the Compatibility codes for latest Windows Operating systems.
When I look @ Resource Monitor, I can see that the SETUP.EXE is running in the Windows Operating Context for Windows 7.
However, when the installscript is activated, an instance of ISBEW64.DLL is triggered. This is executing in Windows Vista Context.
Is this causing the problem for the DLL returning incorrect operating system?
Why did ISBEW64.DLL use the Windows Vista context when called from SETUP.EXE which is Windows 7 context?
There do not appear to be any registry entries for HKCU\Software\Microsoft\Windows NT\CurrentVersion\App[CompatFlags\Layers, etc.
Any ideas on how to get the installscript to execute in correct context?
TIA
BJ
Have a Basic MSI Project - it was migrated from IS2008 to IS2014
A Custom Action invokes a piece of Installscript. This loads a DLL which in turn issues GETVERSIONEX (it is trying to validate a license key to a particular version of windows)
Running the installation on Windows 7 - but it returns info. for Windows Vista.
Have checked the manifest for the SETUP.EXE (picks up the SETUPEXE.INVOKER.MANIFEST). This contains the Compatibility codes for latest Windows Operating systems.
When I look @ Resource Monitor, I can see that the SETUP.EXE is running in the Windows Operating Context for Windows 7.
However, when the installscript is activated, an instance of ISBEW64.DLL is triggered. This is executing in Windows Vista Context.
Is this causing the problem for the DLL returning incorrect operating system?
Why did ISBEW64.DLL use the Windows Vista context when called from SETUP.EXE which is Windows 7 context?
There do not appear to be any registry entries for HKCU\Software\Microsoft\Windows NT\CurrentVersion\App[CompatFlags\Layers, etc.
Any ideas on how to get the installscript to execute in correct context?
TIA
BJ
3 Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 03, 2014
10:14 AM
This sounds like the issue that is described in the following blog post:
Why Custom Actions get a Windows Vista Version Lie on Windows 7
Is there any way that you can try to use the Windows Installer function MsiGetProperty and retrieve the value of the VersionNT property?
Why Custom Actions get a Windows Vista Version Lie on Windows 7
Is there any way that you can try to use the Windows Installer function MsiGetProperty and retrieve the value of the VersionNT property?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 03, 2014
10:24 AM
Hi,
Yep - I saw this too.
The DLL that is called is from a third party - I use UseDLL to load it and then call it.
Interally it is issuing the GETVERSIONEX and checking a License file against the Windows Version.
Unfortunately, the ISBEW64.EXE (which I assume is executing the installscript) is executing in Windows Vista context under the Windows 7 target machine.
If this is the case, then why is it so - as the SETUP.EXE is running in Windows 7 context and initiated the ISBEW64.EXE - which should keep the same context properties?
TIA
BJ
Yep - I saw this too.
The DLL that is called is from a third party - I use UseDLL to load it and then call it.
Interally it is issuing the GETVERSIONEX and checking a License file against the Windows Version.
Unfortunately, the ISBEW64.EXE (which I assume is executing the installscript) is executing in Windows Vista context under the Windows 7 target machine.
If this is the case, then why is it so - as the SETUP.EXE is running in Windows 7 context and initiated the ISBEW64.EXE - which should keep the same context properties?
TIA
BJ
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 03, 2014
10:43 AM
It doesn't matter how Setup.exe and ISBEW64.EXE are launched. Windows Installer is what launches a custom action, and it gets the shim, so you see the version number that's described in the blog article.
