https://www.imab.dk/windows-10-toast-notification-script/

The Windows 10 Toast Notification Script enables you to create nice and nifty toast notifications for the logged on user in Windows 10. This can be done with Configuration Manager or with Group Policy Preferences and Scheduled Tasks (and probably other means too).

The script comes with 4 main purposes/features:

UpgradeOS is meant to be used with Windows Servicing, notifying users about new available Windows versions. This is primarily intended to be used with ConfigMgr. The main idea here is to lure the end-user into a voluntary participation and make them initiate the in-place upgrade themselves.

The toast notification displayed for the end-user in such scenario, may look similar to below example, where the Install button will redirect the user into the Software Center:


PendingRebootCheck is the second purpose/feature and is displayed above to the right. The idea here is to increase compliance and overall stability of the running computers by reminding users of pending reboots. Pending reboot here is checked in the registry and WMI.

PendingRebootUptime is the third purpose/feature. In this scenario, the uptime of the computer is considered. When the uptime exceeds the value defined in the config.xml, the toast is displayed reminding users to restart more often.

ADPasswordExpiration is the fourth feature checking for local active directory password expiration. If the password is about to expire (days configured in config.xml), the toast notification will display reminding the users to change their password.

Configuration

The entire toast notification is configurable through the config-toast.xml. The idea here is, that the purpose of the toast notification can be modified without the need to push new files and/or update distribution points in ConfigMgr. There are bits and pieces which cannot be changed from the config-toast.xml and in that case you will have to modify the actual Powershell script.

I have included 3 configuration samples in the download; one for use with Windows Servicing, one for checking for pending reboot and another for AD password expiration.

Logging

ConfigMgr admins loves log files! The script logs all its actions to ProgramData\ToastNotificationScript\New-ToastNotification.log. This is useful when troubleshooting or if curious of what is done. Also, there are some combinations in the config-toast.xml which doesn't makes sense and thus these are prevented. The log will tell when that happens.

Images

The images are changeable. Just replace ToastHeroImage.jpg and ToastLogoImage.jpg with your own. Some of the images I'm using throughout my posts is paid pictures and protected by copyright.

Documentation

I have included a first draft of the documentation in the download.

Version history