I'm trying to write a PowerShell script that reports when applications installed on my home Windows PC have updates available. I found the Evergreen project and thought I could enumerate installed programs from the uninstall registry keys, then pass each DisplayName to Find-EvergreenApp. My current approach reads from the 32-bit, 64-bit, and per-user uninstall locations, but names containing spaces do not seem to match as expected. For example, querying "Telegram" works and returns Telegram Desktop, while passing the full display name does not. Is there a proper way to handle application names with spaces, or should I use a different tool for checking installed software updates?
4 Answers
Evergreen appears to use JSON manifests containing its known application names and metadata. The function may be expecting the manifest's application identifier rather than an arbitrary uninstall-registry DisplayName. You could inspect those manifests and match the display name yourself, then pass the corresponding Evergreen name. Adding an application parameter or improving name matching would also be a reasonable feature request.
UniGetUI is another option if you prefer a graphical interface, but WinGet is generally easy to automate from PowerShell. Keep in mind that neither tool includes every application, especially software distributed outside their supported sources.
You can run `winget upgrade` to get a table showing the installed version and the available version for supported applications. It also gives you the package ID and source, which is more reliable than matching display names from the registry.
WinGet is probably the simplest option for this. It covers a large selection of commonly installed applications and can check for available updates with `winget upgrade`. It is not complete, but it may handle most of the software on a typical home PC without needing to query each application manually.

That was why I initially skipped WinGet—I remembered it missing applications such as 7-Zip. I’ll take another look to see how much broader its coverage is now.