How can I determine in Windows whether a program is installed per-machine or per-user from the command line? I am mainly concerned about Windows 7.
1 Answer
There is no simple way to detect this. The only difference between "per-machine" and "per-user" is if the program saves its settings in a place that is unique per user (HKEY_LOCAL_USER
in the registry and the %APPDATA%
or %LOCALAPPDATA%
folder in the filesystem) or shared among all users (HKEY_LOCAL_MACHINE
in the registry and %PROGRAMDATA%
in the filesystem)
All that is internal and custom to every program ever written and there is no generic "flag" you could read somewhere that could tell you which method a program is using.
If you want to know if a specific program is installed as per-user or per-machine, open a new question and be sure to include the details of which program you want to know about.
-
1Also %LOCALAPPDATA% for user-specific non-roaming data (%APPDATA% is for roaming data).– KaranApr 26, 2013 at 15:32
-
I'm most interested in Python. This amount of pointer should be handy enough, thanks.– ctdApr 26, 2013 at 19:13
-
2If a program is installed in
Program Files
, most likely it was installed in per-machine mode. If it's installed in another directory, you can never be sure. However, if a program is installed into user's profile, most likely it was installed in per-user mode. Apr 27, 2013 at 12:50 -
@AlexeyIvanov Not necessarily. A program can be installed in Program files but a global setting can alternate if it stores its user settings in
%appdata%
or%programdata%
(Notepad++ does this) Apr 27, 2013 at 21:38 -
1@ScottChamberlain The question was about per-machine or per-user installation of a program. Notepad++ installs in per-machine mode. It perfectly matches the pattern I described. At the same time, almost all applications have per-user settings even if installed per-machine in
Program Files
but it's another question, isn't it? Apr 28, 2013 at 18:19