Skip to content

Allow user-context installation on Windows (no admin rights required) #1042

Description

@SableRaf

Since Processing 4.4, the Windows release uses an .msi installer, which installs in the system context by default.

This means people without admin access on their machine cannot install Processing. As reported by this Reddit user

We should provide an option to install in user context, so that admin rights are not needed.

This would make installation easier for students, schools, and others using restricted machines.

Reference

https://stackoverflow.com/questions/14339372/wix-non-admin-installer-tutorial

Activity

  1. Stefterv commented on Apr 17, 2025

    @Stefterv
    Member

    Looks like installing to Program Files is what causes the escalation to Admin, maybe we can install Processing in a different location?

  2. SableRaf commented on Apr 17, 2025

    @SableRaf
    CollaboratorAuthor

    Oops, I shared the wrong reference link I meant to post this https://www.advancedinstaller.com/per-user-per-machine-msi-installation.html

    It says:

    Compared to per-machine installations, a per-user application gets installed in a user profile location, usually in AppData\Local or AppData\Roaming.

  3. Stefterv commented on Apr 17, 2025

    @Stefterv
    Member

    No, I edited it because we don't use advanced installer

  4. SableRaf commented on Apr 17, 2025

    @SableRaf
    CollaboratorAuthor

    I see! I read that page a little too quickly and missed that it wasn't about regular .msi installers.

    maybe we can install Processing in a different location?

    Is there a way we can leave it to the user to choose between a simple installation and an administrative installation? Is this page relevant?

    If technically possible, then maybe the options could be labeled like this to keep it clear:

    • Simple install (recommended for most users)

    • Admin install (for administrators and shared machines)

  5. added this to the 4.4.3 milestone on Apr 18, 2025
  6. modified the milestones: 4.4.3, 4.4.4 on Apr 25, 2025
  7. modified the milestones: 4.4.4, 4.4.5 on May 12, 2025
  8. jdebou commented on Jun 8, 2025

    @jdebou
    Contributor

    Hello, I have looked into this today. here are my findings.

    The first thing is that we can configure the Wix package to allow both per-user and per-machine installation with the Scope property.

    Then we can then set a ALLUSERS variable to conditionnaly choose between the different installation paths.

    I have built an installer that can do both installations, with the variable set from the command line when running msiexec.

    Adding the dialog to pick between the two options is a little trickier. We are using WixUI_Mondo for the ui sequence, which does not support picking between different scopes. From there, it appears we can either :

    • rewrite that sequence, adding a custom dialog into the sequence;
      or
    • swap WixUI_Mondo for WixUI_Advanced, which defines a built-in InstallScopeDlg.

    My feeling is that going for the advanced installer would be preferable, since it is the built-in solution offered by Wix, but I could be wrong since I don't know the reasons WixUI_Mondo was picked in the first place.

    I could start working on a PR, and would like some feedbacks on those solutions.

    Cheers

  9. SableRaf commented on Oct 29, 2025

    @SableRaf
    CollaboratorAuthor

    Hi @jdebou! Sorry for the very late reply. Are you still interested in working on improving the Windows installer? We could definitely use some help there 💙

  10. jdebou commented on Oct 29, 2025

    @jdebou
    Contributor

    Hi @SableRaf , I'm still open to working on improving the installer. I would like some direction or more information about the initial choices made in the installer before starting (see my previous message).

    Cheers

  11. Stefterv commented on Oct 29, 2025

    @Stefterv
    Member

    I would say start the PR with WixUI_Advanced and we'll have a look on how that influences the installation process, it looks to me like it is the correct one

  12. assigned and unassigned on Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions