SkillAgentSearch skills...

PSADT.ToastNotification

Extension for PowerShell App Deployment Toolkit that replace all the windows and dialogs with Toast Notifications with a lot of visual and functional improvements.

Install / Use

/learn @LFM8787/PSADT.ToastNotification
About this skill

Quality Score

0/100

Category

Operations

Supported Platforms

Universal

README

PSADT.ToastNotification

Extension for PowerShell App Deployment Toolkit that replaces all the windows and dialogs with Toast Notifications with a lot of visual and functional improvements.

Features

  • Administrator rights not needed.
  • Wraps the original functions, so no script modification needed.
  • SYSTEM raised Toast Notifications can interact with logged in no Administrator user.
  • Ability to interact with the notifications using events or protocols.
  • Can search for closing apps using wildcards.
  • Can search for closing apps based on windows title or process path using wildcards.
  • Added array of never kill applications (even if added for closing).
  • Added array of never block applications (they can be killed but not blocked).
  • Limit functions timeout to InstallationUITimeout.
  • Ability to use MUI cache applications name if exists.
  • Highly customizable Toast Notification visual schemes.
  • Dynamically update running applications with icons and extended applications information.
  • Fallback to original Windows Forms and dialogs if any error occurs.
  • New dedicated strings with multilanguage support.
  • Automatically translates compatible buttons in functions.

Disclaimer

- Test the functions before production.
- Make a backup before applying.
- Check the config file options description.
- Run AppDeployToolkitHelp.ps1 for more help and parameter descriptions.

Functions (wrappers) and improvements

Show-InstallationWelcome

  1. Now you can search for processes using like operator. If you include any wildcard character, the evaluating operator will be -like instead of -eq. The search object AcroRd*=Adobe Acrobat Reader matches 32/64 bits version of the application, only currently running processes will be added to the $ProcessObjects. See about Comparison Operators - PowerShell | Microsoft Learn.

  2. For windows title search use title:... as prefix, if any process window validates the filter it will be added to the $ProcessObjects. Wildcards supported, title:*Adobe* will add any process that is currently running and the title is like *Adobe*. No title:...=Application Name supported. See about Comparison Operators - PowerShell | Microsoft Learn.

  3. For process path search use path:... as prefix, all the currently running processes validating the filter will be added to the $ProcessObjects. Wildcards supported, path:$($env:ProgramFiles)\*Office*\* will add any process that is currently running and the path is like $($env:ProgramFiles)\*Office*\*. No path:...=Application Name supported. See about Comparison Operators - PowerShell | Microsoft Learn.

  4. The closing applications evaluation removes processes that are included in CriticalProcesses_NeverKill, they won`t be added and a warning appears in console/log:

  5. Internal function mechanism is kept for backward compatibility but, if the switch -PersistPrompt is not present, the user can dismiss or close the notification and a Timeout result is returned.

  6. If the -BlockExecution switch is used, any process included in CriticalProcesses_NeverBlock won`t be added for blocking and a warning appears in console/log:

<table> <tr> <td width="34%">

https://user-images.githubusercontent.com/13755139/218114492-0945ccb6-7de3-4f07-a6b0-2b37b311759a.mp4

</td> <td width="33%">

https://user-images.githubusercontent.com/13755139/218115748-3537e7db-c9d9-4138-813c-102d3c8ce890.mp4

</td> <td width="33%">

https://user-images.githubusercontent.com/13755139/218121541-5cbe46ca-c5eb-44bf-8095-9fdeb56d1f15.mp4

</td> </tr> </table>

Show-BalloonTip

  1. Shows a long duration Toast Notification if the $BalloonTipTime is greater than 10000 ms.

  2. No need to call any external script, the Toast Notification always shows itself like if $NoWait was $true.

  3. For more options see the Customizable visual style section.

<table style="width:100%"> <tr> <td rowspan="2" width="50%">

</td> <td>

</td> </tr> <tr> <td>

</td> </tr> </table>

Show-DialogBox

  1. The buttons get the translated string using the Data Extraction Extension to match the user language, the InstallationUI_LanguageOverride is omitted like original dialog box.

  2. If the $Timeout is bigger than $configInstalltionUITimeout you can use LimitTimeoutToInstallationUI config option to limit the timeout.

  3. You can use ShowAttributionText config option to show a subtle text indicating the auto-dismiss timeout.

  4. For more options see the Customizable visual style section.

<table> <tr> <td width="50%">

https://user-images.githubusercontent.com/13755139/218116614-dd4f3270-ae05-4b53-9722-4359cd265871.mp4

</td> <td width="50%">

</td> </tr> </table>

Show-InstallationRestartPrompt

  1. The shutdown command calls shutdown.exe /r /f /t $SilentCountdownSeconds instead of Restart-Computer since sometimes the cmdlet does not work.

  2. Ability to show a warning icon by using InstallationRestartPrompt_ShowIcon config option.

  3. You can use ShowAttributionText config option to show a subtle text indicating the auto-restart timeout.

  4. If the parameter $NoCountdown is $false the Toast Notification will show a progress bar with the timeout to auto-restart.

  5. Closing or dismissing the Toast Notification works like the Minimize button.

  6. For more options see the Customizable visual style section.

<table> <tr> <td width="50%">

https://user-images.githubusercontent.com/13755139/218117049-cf1282e1-883b-4276-a776-d3ebf6e7634b.mp4

</td> <td width="50%">

https://user-images.githubusercontent.com/13755139/218116985-35b297ae-59a4-4300-853a-5995a21b539e.mp4

</td> </tr> </table>

Show-InstallationPrompt

  1. If the $Timeout is bigger than $configInstalltionUITimeout you can use LimitTimeoutToInstallationUI config option to limit the timeout.

  2. Asynchronously behavior maintained like original function.

  3. You can use ShowAttributionText to show a subtle text indicating the auto-dismiss timeout.

  4. For more options see the Customizable visual style section.

<table> <tr> <td width="50%">

https://user-images.githubusercontent.com/13755139/218117363-970e5911-d05c-42a3-af80-2576c2e273cb.mp4

</td> <td width="50%">

https://user-images.githubusercontent.com/13755139/218117418-fca32b08-f578-422e-84e9-f1c56faeca38.mp4

</td> </tr> </table>

Show-InstallationProgress

  1. Defines the new variable InstallationProgressFunctionCalled that works like a switch indicating that Close-InstallationProgress should be called.

  2. You can use ShowAttributionText config option to show a subtle text indicating the deployment progress message.

  3. You can use InstallationProgress_ShowIndeterminateProgressBar config option to show an indeterminate progress bar.

  4. For more options see the Customizable visual style section.

<table style="width:100%"> <tr> <td rowspan="2" width="50%">

https://user-images.githubusercontent.com/13755139/218117746-49951415-f223-4f23-b874-99bcd6ea8b1a.mp4

</td> <td>

https://user-images.githubusercontent.com/13755139/218117926-47b6bd79-f69c-4b2e-a162-f3dd8b1f596e.mp4

</td> </tr> <tr> <td>

https://user-images.githubusercontent.com/13755139/218118541-446c5c0a-9de7-4d84-9137-e19a1dba1ae4.mp4

</td> </tr> </table>

Internal functions (wrappers) and improvements

Get-RunningProcesses

  1. The function has changed, now it receives a [PSCustomObject[]] as input, backward compatibility kept.

  2. If any CriticalProcesses_NeverKill matches any process name or filters, it won`t be added and a warning appears in console/log:

  3. The output object array contains the process name, description, path and company.

Show-WelcomePrompt

  1. If you do not like the Continue button string like me, you can use WelcomePrompt_ReplaceContinueButtonDeploymentType and now the text will show the translated strings of Install, Repair or Uninstall based on the deployment type of the script.

  2. ![](https://img.shields

Related Skills

View on GitHub
GitHub Stars12
CategoryOperations
Updated26d ago
Forks1

Languages

PowerShell

Security Score

75/100

Audited on Mar 3, 2026

No findings