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
- :
- Conditioning install based on OS
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
Oct 09, 2013
01:12 PM
Conditioning install based on OS
We have an install that supports all OS's except for Win9x, WinNT and Windows 2000. We set this all up though Project Assistant - Installation Requirements and the condition looks like the following:
(Not Version9X) And (Not VersionNT=400) And (Not VersionNT=500)
Now we have decided that this app will NO longer support Vista and therefore in the Installation Requirements I unselected Windows Vista and the new condition looks like the following:
(Not Version9X) And (Not VersionNT=400) And (Not VersionNT=500) And (Not (VersionNT=600 And (MsiNTProductType=1)))
So the new entry: And (Not (VersionNT=600 And (MsiNTProductType=1))) basically states that to not install if VersionNT is 600 and it's MsiNTProductType is 1, which means it is Windows 2000 Professional and later.
The MsiNTProductType can be:
1 - Windows 2000 Professional and later
2 - Windows 2000 domain controller and later
3 - Windows 2000 Server and later
So it looks basically correct as Vista should be under (1) as a Windows professional version and not a domain controller or server. But the issue is if I then go back to Project Assistant - Installation Requirements I notice that Windows 2008 Server is no longer selected. This condition seems to have turned off Vista and Windows 2008 Server. So I just want to confirm that this condition will make it so that it does not install on Vista, but if ran on 2008 Server that it would still install. Not that any of our customers will, but I just want to verify.
So will this condition work as expected or do I have to manually change it to work as expected?
Thanks,
(Not Version9X) And (Not VersionNT=400) And (Not VersionNT=500)
Now we have decided that this app will NO longer support Vista and therefore in the Installation Requirements I unselected Windows Vista and the new condition looks like the following:
(Not Version9X) And (Not VersionNT=400) And (Not VersionNT=500) And (Not (VersionNT=600 And (MsiNTProductType=1)))
So the new entry: And (Not (VersionNT=600 And (MsiNTProductType=1))) basically states that to not install if VersionNT is 600 and it's MsiNTProductType is 1, which means it is Windows 2000 Professional and later.
The MsiNTProductType can be:
1 - Windows 2000 Professional and later
2 - Windows 2000 domain controller and later
3 - Windows 2000 Server and later
So it looks basically correct as Vista should be under (1) as a Windows professional version and not a domain controller or server. But the issue is if I then go back to Project Assistant - Installation Requirements I notice that Windows 2008 Server is no longer selected. This condition seems to have turned off Vista and Windows 2008 Server. So I just want to confirm that this condition will make it so that it does not install on Vista, but if ran on 2008 Server that it would still install. Not that any of our customers will, but I just want to verify.
So will this condition work as expected or do I have to manually change it to work as expected?
Thanks,
(1) Reply
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Oct 10, 2013
08:05 AM
Tim,
I think it's because Windows Vista and Windows Server 2008 use a similar codebase much like Windows 7 and Windows Server 2008 R2. This is kind of evident in InstallScript when looking at SYSINFO.WINNT variables. From the InstallShield help file:
SYSINFO.WINNT.bWinVista_Server2008 (SYSINFO.WINNT.bWinVista)
If either SYSINFO.WINNT.bWinVista_Server2008 or SYSINFO.WINNT.bWinVista is TRUE, the operating system is Windows Vista or Windows Server 2008.
To distinguish between Windows Server 2008 and Windows Vista, check whether SYSINFO.nOSProductType is equal to VER_NT_WORKSTATION; for Windows Vista, this is TRUE; for Windows Server 2008, it is FALSE.
SYSINFO.WINNT.bWin7_Server2008R2
If this member is TRUE, the operating system is Windows 7 or Windows Server 2008 R2.
HTH
I think it's because Windows Vista and Windows Server 2008 use a similar codebase much like Windows 7 and Windows Server 2008 R2. This is kind of evident in InstallScript when looking at SYSINFO.WINNT variables. From the InstallShield help file:
SYSINFO.WINNT.bWinVista_Server2008 (SYSINFO.WINNT.bWinVista)
If either SYSINFO.WINNT.bWinVista_Server2008 or SYSINFO.WINNT.bWinVista is TRUE, the operating system is Windows Vista or Windows Server 2008.
To distinguish between Windows Server 2008 and Windows Vista, check whether SYSINFO.nOSProductType is equal to VER_NT_WORKSTATION; for Windows Vista, this is TRUE; for Windows Server 2008, it is FALSE.
SYSINFO.WINNT.bWin7_Server2008R2
If this member is TRUE, the operating system is Windows 7 or Windows Server 2008 R2.
HTH