views:

45

answers:

1

If I create a .msi installer and install at the command line with:

msiexec /i foo.msi ALLUSERS=1

I've installed foo for all users. If I then create a new user on the system then I try to run foo from the start menu, Windows 7 will try to install the foo package for that user. If the .msi file isn't around. it fails. Is there a way to install this package for all present AND future users without forcing an install?

Note that I put an icon in the "User's Program Menus". Is there a special folder for a menu item all user's can see without a reinstall?

Please advise. Thanks.

+1  A: 

I think you've installed an advertised shortcut. You may want to reconsider how you've architected your features/components/key files, and where you've placed advertised shortcuts.

regarding:

Note that I put an icon in the "User's Program Menus". Is there a special folder for a menu item all user's can see without a reinstall?

Try: %ALLUSERSPROFILE%\Microsoft\Windows\Start Menu

William Leara
Won't this trigger a reinstall also? I guess the real question I'm asking is if .msi repair is actually the *intended* way new users are configured for already installed products. In other words, am I trying to defeat a feature because I perceive it as an error. Pl. advise. Thanks.
It sounds to me like you're seeing the attempt to reinstall because you're using an advertised shorcut. Can you make it non-advertised? I obviously don't know your application, but I don't see why there must be a relation between advertisement and user-specific settings. Have you considered using the HKEY_USERS\.DEFAULT Registry key? Those Registry settings are applied to any new user created post-install. Or the "C:\documents and settings\default user" directory? Items in there are copied to all users created post-install. It depends on what you're trying to do.
William Leara
According to Raymond Chen (http: //blogs.msdn.com/b/oldnewthing/archive/2007/03/02/1786493.aspx),HKEY_USERS\.Default is actually the registry settings forLocal System. My question stands. I would like to installa registry entry not using SysPrep for a template user that propagates values into HKCU\Software\Microsoft\Windows\CurrentVersion\Run when that newuser is created. Thanks.
If this is a must for every user, how about creating the entry in HKLM\Software\Microsoft...If this is a setting that can be customized by users, write your app so that it first checks HKCU. If the HKCU entry doesn't exist, it uses the one at HKLM.
William Leara
For many registry entries, that would be a viable tactic. For "Run" entries, I would end up with two auto run programs running at the same time. So there is no "default user" registry subkey that is read/write by any standard user? "No" is okay. I just don't know enough about the Windows registry subkeys to know that it's not there. Thanks.

related questions