chocolatey-community / chocolatey-packages

Chocolatey Community Maintainers Team Packages - packages that are managed and maintained by core community team for community package repository (https://community.chocolatey.org/packages)
https://community.chocolatey.org/profiles/chocolatey-community
Apache License 2.0
447 stars 382 forks source link

Brave browser, Signal (Desktop), VeraCrypt #1989

Closed ghost closed 2 years ago

ghost commented 2 years ago

Chocolatey Version

1.1.0

Chocolatey License

No response

Package Version

applicable to any version (but tried on latest)

Current Behaviour

I am deploying Brave browser, Signal (Desktop) and VeraCrypt to Windows domain joined computers using the domain admin account using Ansible w/ Chocolatey. This will only install the software for the domain admin on the computers. It should install the software for all users on the computer.

Other packages I install using the same method work as expected (installs for all computer users) such as VLC, LibreOffice, imageglass, etc.

Expected Behaviour

Deploy Brave browser, Signal (Desktop) and VeraCrypt via Ansible w/ Chocolatey and software is installed for ALL users on the windows domain joined computer. Other software I deploy using the same method works as expected such as LibreOffice, ImageGlass, VLC, etc.

Steps To Reproduce

  1. Deploy Brave browser, Signal (Desktop) or VeraCrypt to a Windows 10 domain joined computer using Ansible w/ Chocolatey (with domain admin account/credentials)

Environment

- Operating System: Windows 10 Enterprise

Chocolatey Log

Link: https://gist.github.com/Techy444/98886e93578a0dfffd5433ee611dc054

Anything else?

No response

pauby commented 2 years ago

Does this issue occur if you install those packages, running under the Domain Admins account, using Chocolatey CLI (ie. not using Ansible)?

I suspect this is a installer issue and not a package one.

ghost commented 2 years ago

Does this issue occur if you install those packages, running under the Domain Admins account, using Chocolatey CLI (ie. not using Ansible)?

I suspect this is a installer issue and not a package one.

Hi Pauby,

Thanks for responding. I logged into Windows using my domain admin account and ran, for example: choco install signal

The result: the same behavior. Only installs signal for the logged in domain admin user.

Thanks

ghost commented 2 years ago

Also another update if it's helpful:

1) I noticed if I download the installer for brave and veracrypt online and login as domain admin user and manually install, it will install Brave and VeraCrypt on all users for that PC. Signal will still not install on all users however.

2) When I login as domain admin and run choco commands manually to install, Brave and VeraCrypt, they will install on all users for that PC. Signal will still not install on all users however.

3) When I install via Ansible + chocolatey, Brave, VeraCrypt and Signal will only install on the domain admin account and not on any other users for that PC.

Happy to do any tests you want in the future

TheCakeIsNaOH commented 2 years ago

In general, there are a number of options for cases where the software installer is single user:

  1. Look for a commandline option in the installer that will allow switching the installer to system wide/all users. Sumatrapdf is a good example of this.
  2. Look for a separate system-wide/all users installer, sometimes termed an administrative installer. The zoom package uses such an installer.
  3. Look for a portable version of the software, which then could be packaged up into a package that will be available for all users.
  4. Contact the software vendor to see if they have a non-public and/or paid system-wide installer, or if there is an undocumented switch to make the single user installer install system-wide.
  5. Use a repackaging tool like Advanced Installer Architect to repackage the single user installer into a custom system-wide installer, then create a package with that installer.
  6. Manually reverse engineer the installer. Then from that information, create a custom package to move any files to a location accessible to all users (like Program Files), create system-wide shortcuts as needed, and edit any registry keys/environment variables/config files to point to the new install location. This may not work in all cases, say if the software vendor compiled hard-coded paths into binaries.
  7. For C4B customers, the above item is something that the packaging services may be able to do.

For Signal, it is a known issue that the installer always installs to the current user's appdata folder, so the installer is single user only. So options 4-7 are the ones still on the table for Signal. From what I understand, there have been people that have gone with option 6 and have successfully moved the single user installation to a system-wide installation, but I do not think the packages are publicly available (maybe something for https://github.com/chocolatey-community/chocolatey-package-recipes?)

When I login as domain admin and run choco commands manually to install, Brave and VeraCrypt, they will install on all users for that PC. Signal will still not install on all users however.

So for Brave and VeraCrypt, that seems to mean something in the Chocolatey + Ansible is kicking them into single user installation mode.

ghost commented 2 years ago

In general, there are a number of options for cases where the software installer is single user:

  1. Look for a commandline option in the installer that will allow switching the installer to system wide/all users. Sumatrapdf is a good example of this.
  2. Look for a separate system-wide/all users installer, sometimes termed an administrative installer. The zoom package uses such an installer.
  3. Look for a portable version of the software, which then could be packaged up into a package that will be available for all users.
  4. Contact the software vendor to see if they have a non-public and/or paid system-wide installer, or if there is an undocumented switch to make the single user installer install system-wide.
  5. Use a repackaging tool like Advanced Installer Architect to repackage the single user installer into a custom system-wide installer, then create a package with that installer.
  6. Manually reverse engineer the installer. Then from that information, create a custom package to move any files to a location accessible to all users (like Program Files), create system-wide shortcuts as needed, and edit any registry keys/environment variables/config files to point to the new install location. This may not work in all cases, say if the software vendor compiled hard-coded paths into binaries.
  7. For C4B customers, the above item is something that the packaging services may be able to do.

For Signal, it is a known issue that the installer always installs to the current user's appdata folder, so the installer is single user only. So options 4-7 are the ones still on the table for Signal. From what I understand, there have been people that have gone with option 6 and have successfully moved the single user installation to a system-wide installation, but I do not think the packages are publicly available (maybe something for https://github.com/chocolatey-community/chocolatey-package-recipes?)

When I login as domain admin and run choco commands manually to install, Brave and VeraCrypt, they will install on all users for that PC. Signal will still not install on all users however.

So for Brave and VeraCrypt, that seems to mean something in the Chocolatey + Ansible is kicking them into single user installation mode.

Thank you for all the information, Cake, I will continue to look for a solution that works for me.

fitandre commented 2 years ago

Dear Mantainer of Brave...

We need to use it for ALLUSERS and be able to add shortcut on the desktop and pin the shortcut on the taskbar like the firefox package (https://community.chocolatey.org/packages/Firefox), where we have this parameters:

Package Parameters /l:LOCALE - Install given Firefox locale. See the official page for a complete list of available locales. /UseMozillaFallback Makes a request to mozilla.org and reads the supported Language Culture code from the website. Command-line options for installer configuration. See the official page for details and defaults.

/InstallDir:PATH /NoTaskbarShortcut Do not create Taskbar Shortcut /NoDesktopShortcut Do not create Desktop Shortcut /NoStartMenuShortcut Do not create Start Menu Shortcut /NoMaintenanceService Do not install Maintenance Service /RemoveDistributionDir Remove Distribution directory on installation/update. (This is the default behavior of the Firefox Installer, but not for this Chocolatey Package) /NoAutoUpdate Sets a policies.json file to not update Firefox and does not install the Maintenance Service Examples choco install brave --params "/l:en-GB" choco install brave --params "/NoTaskbarShortcut /NoDesktopShortcut /NoAutoUpdate" choco install brave --params "/l:en-GB /RemoveDistributionDir"

pauby commented 2 years ago

@fitandre This isn't the right place to ask for that. Can you raise a discussion for this?

pauby commented 2 years ago

Thanks @Techy444 for following up on this. As it's been solved, I'll go ahead and close this.