Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Setup] Support per-user installation #15516

Closed
yuyoyuppe opened this issue Jan 13, 2022 · 9 comments
Closed

[Setup] Support per-user installation #15516

yuyoyuppe opened this issue Jan 13, 2022 · 9 comments
Assignees
Labels
Area-Quality Stability, Performance, Etc. Area-Setup/Install Refers to installation mechanism Idea-Enhancement New feature or request on an existing product Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release.

Comments

@yuyoyuppe
Copy link
Contributor

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 to perUser, WiX start requiring using explicit registry keypaths as well as explicit RemoveFiles elements, and those do not properly support downgrading and upgrading to a different install directory. We might try removing explicit Id/Guid for Components, also that'll likely resolve infamous missing 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

@yuyoyuppe yuyoyuppe added Idea-Enhancement New feature or request on an existing product Area-Setup/Install Refers to installation mechanism Area-Quality Stability, Performance, Etc. labels Jan 13, 2022
@yuyoyuppe yuyoyuppe self-assigned this Jan 13, 2022
@plattenschieber
Copy link

Would love to see the per user installation of PT ❤

@alanlivio
Copy link

It will be a very interesting feature.

@TOKN2
Copy link

TOKN2 commented Sep 30, 2022

What is the main reason to migrate from per machine to per-user installation?

  1. 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?

  2. 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.

  3. 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!

@tfishr
Copy link

tfishr commented Jan 7, 2023

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.

@crutkas
Copy link
Member

crutkas commented Jan 11, 2023

@tfishr, that is accounted for, the big issue was runtimes needing UAC.

@Jay-o-Way Jay-o-Way moved this to In Progress ⚒️ in Test for PowerToys Jan 12, 2023
@Jay-o-Way Jay-o-Way added the Status-In progress This issue or work-item is under development label Jan 12, 2023
@ukdocCT
Copy link

ukdocCT commented Feb 3, 2023

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.

@stefansjfw
Copy link
Collaborator

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.

@stefansjfw stefansjfw changed the title [Setup] Migrate MSI installer from per machine to per user [Setup] Support per-user installation Feb 3, 2023
@stefansjfw stefansjfw added Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release. and removed Status-In progress This issue or work-item is under development labels Mar 31, 2023
@Jay-o-Way
Copy link
Collaborator

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?

@crutkas
Copy link
Member

crutkas commented May 8, 2023

Fixed in 0.69 which was released in the start of April 2023.

@crutkas crutkas closed this as completed May 8, 2023
@github-project-automation github-project-automation bot moved this from In Progress ⚒️ to Done ✔ in Test for PowerToys May 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Quality Stability, Performance, Etc. Area-Setup/Install Refers to installation mechanism Idea-Enhancement New feature or request on an existing product Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release.
Projects
Status: Done
Development

No branches or pull requests

10 participants