82 lines
4.4 KiB
Markdown
82 lines
4.4 KiB
Markdown
|
|
# Winget-AutoUpdate (WAU)
|
|
This project uses the Winget tool to daily update apps (with system context) and notify users when updates are available and installed.
|
|
|
|
![image](https://user-images.githubusercontent.com/96626929/150645599-9460def4-0818-4fe9-819c-dd7081ff8447.png)
|
|
|
|
## Intallation
|
|
Just [download latest version](https://github.com/Romanitho/Winget-AutoUpdate/archive/refs/tags/v1.7.4.zip), unzip, run "install.bat" as admin to install by default.
|
|
|
|
## Configurations
|
|
### Keep some apps out of Winget-AutoUpdate
|
|
- #### Black List
|
|
You can exclude apps from update job (for instance, apps you want to keep at a specific version or apps with built-in auto-update):
|
|
Add (or remove) the apps' ID you want to disable autoupdate to 'excluded_apps.txt'. (File must be placed in scripts' installation folder, or re-run install.bat).
|
|
- #### Or White List
|
|
From 1.7.0 version, you can update only pre-selected apps. To do so, create an "included_apps.txt" with the apps' ID of the apps you want to auto-update and run the `Winget-AutoUpdate-Install.ps1` with `-UseWhiteList` parameter. Related post: https://github.com/Romanitho/Winget-AutoUpdate/issues/36
|
|
### Default install location
|
|
By default, scripts and components will be placed in ProgramData location (inside a Winget-AutoUpdate folder). You can change this with script argument.
|
|
### Notification language
|
|
You can easily translate toast notifications by creating your locale xml config file (and share it with us :) ).
|
|
### When does the script run?
|
|
Scheduled task is set to run:
|
|
- At user logon
|
|
- At 6AM Everyday (with the -StartWhenAvailable option to be sure it is run at least once a day)
|
|
This way, even without connected user, powered on computers get updated anyway.
|
|
### Log location
|
|
You can find logs in install location, in log folder.
|
|
### "Unknown" App version
|
|
As explained in this [post](https://github.com/microsoft/winget-cli/issues/1255), Winget cannot detect the current version of some installed apps. We decided to skip managing these apps with WAU to avoid retries each time WAU runs:
|
|
|
|
![image](https://user-images.githubusercontent.com/96626929/155092000-c774979d-2db7-4dc6-8b7c-bd11c7643950.png)
|
|
|
|
Eventually, try to reinstall or update app manually to see if new version is detected.
|
|
|
|
## Update WAU
|
|
### Manual Update
|
|
Same process as new installation : download, unzip and run "install.bat".
|
|
|
|
### Automatic Update
|
|
A new Auto-Update process has been released from version 1.5.0. By default, WAU AutoUpdate is enabled. It will not overwrite the configurations, icons (if personalised), excluded_apps list,...
|
|
To disable WAU AutoUpdate, run the "winget-install-and-update.ps1" with "-DisableWAUAutoUpdate" parameter
|
|
|
|
## Advanced installation
|
|
You can run the `winget-install-and-update.ps1` script with parameters :
|
|
|
|
**-Silent**
|
|
Install Winget-AutoUpdate and prerequisites silently
|
|
|
|
**-WingetUpdatePath**
|
|
Specify Winget-AutoUpdate installation location. Default: `C:\ProgramData\Winget-AutoUpdate\` (Recommended to leave default)
|
|
|
|
**-DoNotUpdate**
|
|
Do not run Winget-AutoUpdate after installation. By default, Winget-AutoUpdate is run just after installation.
|
|
|
|
**-DisableWAUAutoUpdate**
|
|
Disable Winget-AutoUpdate update checking. By default, WAU auto updates if new version is available on Github.
|
|
|
|
**-UseWhiteList**
|
|
Use White List instead of Black List. This setting will not create the "exclude_apps.txt" but "include_apps.txt"
|
|
|
|
**-Uninstall**
|
|
Remove scheduled tasks and scripts.
|
|
|
|
## Custom scripts (Mods feature)
|
|
|
|
The Mods feature allows you to run an additional script when installing or upgrading an app.
|
|
Just put the script with the App ID followed by the "-install" or "-upgrade" suffix to be considered.
|
|
`AppID-install.ps1` and/or `AppID-upgrade.ps1` (if it differs, otherwise the "-install" mod will be used for upgrade)
|
|
and put this in the Mods directory
|
|
> Example:
|
|
> If you want to run a script just after installing ".NET Desktop Runtime 6", call your script like this:
|
|
> `Microsoft.dotnetRuntime.6-x64-install.ps1`
|
|
|
|
In the case of ".NET Desktop Runtime 6" it spawns a new process and this we will have to wait for completion of before moving on to checking if the installation/upgrade suceeded or not. - (this seems to be handled in Winget Version: v1.3.0-preview)
|
|
|
|
|
|
## Help
|
|
In some cases, you need to "unblock" the "install.bat" file (Windows Defender SmartScreen). Right click, properties and unblock. Then, you'll be able to run it.
|
|
|
|
## Optimization
|
|
Feel free to give us any suggestions or optimizations in code.
|