https://github.com/Romanitho/Winget-Install
Powershell scripts for Winget with SCCM/Intune
https://github.com/Romanitho/Winget-Install
winget
Last synced: 19 days ago
JSON representation
Powershell scripts for Winget with SCCM/Intune
- Host: GitHub
- URL: https://github.com/Romanitho/Winget-Install
- Owner: Romanitho
- License: mit
- Created: 2022-01-31T21:08:19.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-24T13:01:55.000Z (3 months ago)
- Last Synced: 2025-04-03T20:09:22.599Z (20 days ago)
- Topics: winget
- Language: PowerShell
- Homepage:
- Size: 124 KB
- Stars: 245
- Watchers: 12
- Forks: 43
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - Romanitho/Winget-Install - Powershell scripts for Winget with SCCM/Intune (PowerShell)
README
# Winget-Install (Will be part of WAU - Work in progress)
Powershell scripts to install Winget Packages with SCCM/Intune (or similar) or even as standalone in system context (Inspired by [o-l-a-v](https://github.com/o-l-a-v) work)## Install
### SCCM
- Create an application and put the "winget-install.ps1" script as sources
- For install command, put this command line:
`powershell.exe -ExecutionPolicy bypass -File winget-install.ps1 -AppIDs Notepad++.Notepad++`
### Intune
- Create Intunewin with the "winget-install.ps1" script
- Create a Win32 application in Intune
- Put this command line as Install Cmd (Must call 64 bits powershell in order to work):
`"%systemroot%\sysnative\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -File winget-install.ps1 -AppIDs Notepad++.Notepad++`> You can also use **WingetIntunePackager** tool to package apps from a GUI: https://github.com/Romanitho/WingetIntunePackager
### Use Winget native parameters
You can add custom parameter in your `AppIDs` argument. Don't forget to escape the quote:
`powershell.exe -Executionpolicy Bypass -File winget-install.ps1 -AppIDs "Citrix.Workspace --override \"/silent /noreboot /includeSSON /forceinstall\""`
Details: https://github.com/Romanitho/Winget-Install/discussions/20### Multiple apps at once
- Run this command
`powershell.exe -Executionpolicy Bypass -Command .\winget-install.ps1 -AppIDs "7zip.7zip, Notepad++.Notepad++"`## Detection method
- Use the "winget-detect.ps1" with SCCM or Intune as detection method.
- Replace "$AppToDetect" value by your App ID
`$AppToDetect = "Notepad++.Notepad++"`## Updates
https://github.com/Romanitho/Winget-autoupdate## Uninstall
- To uninstall an app, you can use:
`powershell.exe -ExecutionPolicy bypass -File winget-install.ps1 -AppIDs Notepad++.Notepad++ -Uninstall`but most of the time, winget does not manage silent uninstall correcty.
- I would suggest to use the original application uninstaller method, something like this:
`C:\Program Files\Notepad++\uninstall.exe /S`## Custom (Mods)
The **Mods feature** allows you to run additional scripts before/when/after installing or uninstalling an app.
Just put the script with the **AppID** followed by the suffix to be considered in the **Mods directory**:
**AppID**`-preinstall.ps1`, `-install.ps1`, `-installed-once.ps1`, `-installed.ps1`, `-preuninstall.ps1`, `-uninstall.ps1` or `-uninstalled.ps1`> Example:
> Runs before install: `AppID-preinstall.ps1`
> Runs during install (before install check): `AppID-install.ps1`
> Runs after install has been confirmed (one time): `AppID-installed-once.ps1`
> Runs after install has been confirmed: `AppID-installed.ps1`
> Runs before uninstall: `AppID-preuninstall.ps1`
> Runs during uninstall (before uninstall check): `AppID-uninstall.ps1`
> Runs after uninstall has been confirmed: `AppID-uninstalled.ps1`If you're using [**WAU** (Winget-AutoUpdate)](https://github.com/Romanitho/Winget-AutoUpdate) they get copied to the **WAU mods** directory (except `-installed-once.ps1/-preuninstall.ps1/-uninstall.ps1/-uninstalled.ps1`) and also runs when upgrading apps in **WAU**.
`AppID-installed-once.ps1` runs instead of `AppID-installed.ps1` from **Winget-Install**.
They are deleted from **WAU** on an uninstall (if deployed from **Winget-Install**)
## Other ideas and approaches
https://github.com/o-l-a-v/winget-intune-win32