PowerToys
PowerToys copied to clipboard
[Setup] Support per-user installation
Description of the new feature / enhancement
Moving to a full per user proved to be not so simple. This issue tries to have a comprehensive list of issues with it:
- Cannot uninstall previous versions w/o elevation, since accessing locations like
Program Files
isn't possible with limited privileges. Looks like the least awkward solution is to employ elevated WiX bootstrapper for this somehow. - If
Product
is switched toperUser
, WiX start requiring using explicit registry keypaths as well as explicitRemoveFiles
elements, and those do not properly support downgrading and upgrading to a different install directory. We might try removing explicitId
/Guid
forComponent
s, also that'll likely resolve infamousmissing app.dark.png class of issues
.
Scenario when this would be used?
- some environments disallow elevation
- installation is more contained and cannot interfere with other users
Supporting information
No response
Would love to see the per user installation of PT ❤
It will be a very interesting feature.
What is the main reason to migrate from per machine to per-user installation?
-
From Description: "Cannot uninstall previous versions w/o elevation..." Why this is a problem, as you cannot install anything without elevation so you will not be able to uninstall as well without admin rights?
-
Which user groups need this "feature" - enterprise or home users? Enterprise users do not have admin rights and apps are installed using SCCM or Intune. For SCCM and Intune you need per machine installer. For more context here is complaints/feature request from enterprises for MS Teams per-user installer. https://feedbackportal.microsoft.com/feedback/idea/96fe0515-272e-ec11-b6e6-00224827bbc2 Home users usually have admin rights.
-
If you want to remove UAC for some functionality have you considered creating a driver to handle functions that needs admin rights? That is the safest way I personally know. Moving executables to a per-user location that can run in an admin context is a security risk.
Thanks!
I'm not sure which utilities require administrative privileges to run, but those utilities could simply be disabled or hidden in a per-user install. Then at least some of the utilities could be available to enterprise users that don't have access to administrative rights.
@tfishr, that is accounted for, the big issue was runtimes needing UAC.
Will there still be the option of a per machine install? As @TOKN2 mentioned, when doing controlled deployments especially in enterprises you want the software installed across the device and only the person who logs on to save their specific settings.
If there is the option of a perUser install, it would also be nice if there was a capability of blocking the ability to perform a perUser install - something that is becoming a great challenge in enterprises when people download software that runs in user or portable mode.
Will there still be the option of a per machine install? As @TOKN2 mentioned, when doing controlled deployments especially in enterprises you want the software installed across the device and only the person who logs on to save their specific settings.
There will still be per machine install. I'll reword the title to avoid the confusion.
If there is the option of a perUser install, it would also be nice if there was a capability of blocking the ability to perform a perUser install - something that is becoming a great challenge in enterprises when people download software that runs in user or portable mode.
This is a good point. We'll have this in mind.
Now tha tI see the separated installers: Every other app installer just asks the user what they want and deals with it. Why does PowerToys use different installers?
Fixed in 0.69 which was released in the start of April 2023.