Windows 365 – Building an Automated Win32App Factory using Evergreen, PMPC and WinGet


In the first blog post of the Windows 365 blog post series I showed you how to build a Win32App for Intune automatically using a single XML file. In this post we’re going to step up the game and automatically download and build lots of applications on a schedule using Evergreen, PatchMyPC Home Updater and WinGet as reference.

When working with Application Automation, we need a highly reliable source containing basic information like URL and Version. That’s true Evergreen. Application version and download links are only pulled from official sources (vendor’s web site, vendor’s application update API, GitHub, SourceForge etc.) and never a third party. Evergreen does not scrape HTML – scraping web pages to parse text and determine version strings and download URLs can be problematic when text in the page changes or the page is out of date.

What I’m about to share with you is a Proof of Concept (PoC) I did after having another crazy idea, drinking way to many beers in my hammock. I decided not to follow that path, because the product already exists and it’s called PatchMyPC. It’s an amazing product and they now offer the option for a personal lab subscription for environments with less than 25 devices. In this PoC we’re also going to leverage the PatchMyPC Home Updater XML and WinGet to open your mind to the power of Automation.

In this example we’re going to leverage my simple Github XML file which contains all the required information. When you start building this out in your own environment, you simply upload it to your own Github account and change the $XMLURL in the PowerShell script. Please be aware that the XML file and the PowerShell script have not been updated with more complex detection methods covered in the first blog post. The intention of all my blog posts is to inspire and show you the Power of Automation, you can easily adapt to create more advanced stuff, like Mike Marable already did.

If you want to leverage WinGet as a source you’ll need to run the script from Windows 10/11 due to the fact that Server OS doesn’t have support, yet! To create the best possible User Experience, we need icons. You can grab my icon pack from Github here. The script will use the Windows Installer icon as a stock image if $Product.png is missing from the icons library as shown below.

You can download the PowerShell script from my GitHub repo.

I’ve also added some basic notification information using Teams Webhooks. The script should be straight forward, but please ping me on Twitter if you have any questions or suggestions.

I did an 1.5 hour interview with MVP Mattias Melkersen going over everything and even more in terms of SCCM and Intune Automation. Check it out below.


Automation Framework Community Edition

The fastest way to build your lab environment.

Virtual Expo

Friday 30th of September 2022

Leave a Comment