How to disable "Installer Detection" feature of UAC in Windows 7 Home Premium?
This is a follow-up to my earlier question: How to force any program to run with no admin privileges in Windows 7?
First, I have no idea why there isn't an option to at least try running any program with no privileges. If it crashes, throws errors, or exits, then I might give it admin privileges.
I'm looking for a UNIX-style solution: if I run it as "sudo", then give it admin privileges. If I didn't prefix it with "sudo", then run it with normal privileges and let it crash if it wants to.
I would prefer a solution that doesn't need third-party software. There is no good reason why this option shouldn't be included in the operating system except if whoever was in charge of designing UAC was deliberately working to make UAC as annoying and problematic as it could be, resulting in frustrated users disabling UAC or going around with admin privileges and rubber-stamping every request for privilege elevation.
I have yet to find a good answer on how to force any program to at least try to run in normal/non-elevated mode.
So I did some further research and found: http://technet.microsoft.com/en-us/library/cc709628%28v=ws.10%29.aspx
This article describes a monumentally stupid feature in UAC called "Installer Detection".
Here's a brief quote from the article:
Before a 32 bit process is created, the following attributes are checked to determine whether it is an installer:
- Filename includes keywords like "install," "setup," "update," etc.
- Keywords in the following Versioning Resource fields: Vendor, Company Name, Product Name, File Description, Original Filename, Internal Name, and Export Name.
- Keywords in the side-by-side manifest embedded in the executable.
- Keywords in specific StringTable entries linked in the executable.
- Key attributes in the RC data linked in the executable.
- Targeted sequences of bytes within the executable.
(end quote)
How stupid does this get? Because a program contains some keywords in its attributes, I'm not allowed to run it in normal mode?
So I looked for instructions on how to disable it and there are only instructions for the Professional and Ultimate versions. I have Home Premium.
What's the point of having UAC if almost everything requires admin privileges? Might as well have an operating system that only has admin and guest accounts with nothing in between.
The privilege elevation system in Windows XP was simpler and better in every way. Is there a way to make the privileges in Windows 7 work like Windows XP?
Alternately, does anyone know how to disable Installer Detection? It's garbage that no advanced user needs to be burdened with.
FYI: I'm doing all my testing on a standard (non-admin) account on my Windows 7 installation.
Solution 1:
How to configure UAC
You need to look at Group Policy for this, you'll love it. You can enable/disable specific UAC functionality. You can disable Installer Detection. You can deny elevation requests for a standard user. It's all there:
http://technet.microsoft.com/en-us/library/dd835564%28v=ws.10%29.aspx
If you don't have Group Policy Editor
If you don't have Win7 Pro/Ultimate, you need to edit the Registry directly. All Group Policy settings map to Registry settings.
The Registry settings relevant to all UAC settings are listed on the same web-page referenced above (scroll right down). Also, MS provides Group Policy to Registry mapping info:
http://www.microsoft.com/en-us/download/details.aspx?id=25250
Grab the file named WindowsServer2008R2andWindows7GroupPolicySettings.xlsx
All UAC Registry settings are found here:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Here's a screenshot:
If you don't mind hacking
If you don't like editing the Registry, some folks have come up with alternatives. Google "windows 7 Home Premium group policy". Personally, I'd just edit the Registry directly.