Windows 2000 introduces some changes in the operating system architecture and security schemes. This brings some improvements, but can cause serious problems for setups that are created with tools not specifically designed for the Windows Installer Service. This section is intended to list known problems and pitfalls, and provide workarounds where possible.
System file protection (SFP) is a feature of Windows 2000 which prevents the replacement of core operating system files, including most .sys, .dll, .exe and .ocx files that ship on the Windows 2000 CD, a basic set of fonts, MFC dlls and the like. SFP runs as a background process and monitors these files. When SFP detects that a protected files has been changed, it displays an error message and restores the original. The only way to update such files is via service packs and operating system updates. This means that your setup cannot replace core files, even if run from an Administrator account. Including and launching update packages from Microsoft has been recommended before, but now it's the only way.
Even testing whether a system file is in use (e.g. by calling InstallShield's Is(FILE_LOCKED) function) can trigger the SFP Warning dialog.
Advice: Call Microsoft's redistributable packages if you need to update system files.
By default, normal users have write access only under their own profile folders. Especially the Winnt, System32 and Program Files directories are read-only for them. Therefore only Power Users and Administrators will be able to install software, unless these policies have been changed on the target system. (This does not apply to setups using the Windows Installer Service, because they can run with elevated privileges).
Current setups often display very misleading error messages (e.g. "corrupted files") if a sub-directory cannot be created and therefore files can't be copied.
For your application this also means that it must not store application data in the Program Files directory. This is bad practice already today, but some programs still use to do so.
Advice: Avoid installing to directories that might be locked down. Carefully check for success or failure of directory creation and file copy functions, and display meaningful error messages about missing user rights.
Many setup programs (like the default script in InstallShield5) identify any NT version with a major version number of 4 or above as "NT4". This leads to major trouble if your setup checks for the installed NT4 serivce pack: For instance a setup that refuses to run if SP3 or above is not installed will fail on Windows 2000 without service packs.
Advice: Properly check version numbers (first major version, then minor version) and be aware of future operating system versions. Don't prohibit installation of your software on future Windows versions (you may want to display a warning that the program wasn't tested with the new Windows version). For InstallShield 5 you can use the code in knowledge base article Q101296 to detect Windows 2000.
Software installations often failed when run in user mode. Windows 2000 now takes care of this problem: If you launch a program called "setup.exe" or "install.exe" Windows pops up this warning message: "Some programs will not install correctly if you do not have administrative privileges on this computer" Then you have the option to enter an administrator password and execute the setup on the admin account, without the need to log off and on.
Advice: Make sure your installer is called setup.exe or install.exe to benefit from this feature. Explain this behaviour in your installation instructions or readme file.
News | Discussions | Windows Installer | Related Tools | More Help | InstallScript | About InstallSite | Shop | Site Search | |
Neuigkeiten | Diskussionsgruppen | Windows Installer | MSI FAQ | Artikel | Shop | Suche |
Copyright © by InstallSite Stefan
Krueger. All rights reserved. Legal
information.
Impressum/Imprint
Datenschutzerklärung/Privacy Policy
By using this site you agree to the license
agreement. Webmaster contact