Script to add notifications to the Action Center?

Mac has a way to post a notification from the command line .

Is there a Windows 10 equivalent for simple notification in the Action Center?

+4
windows-10
source share
2 answers

Can this be used? https://technet.microsoft.com/en-us/library/ff730952.aspx

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon $objNotifyIcon.Icon = "C:\Scripts\Forms\Folder.ico" $objNotifyIcon.BalloonTipIcon = "Error" $objNotifyIcon.BalloonTipText = "A file needed to complete the operation could not be found." $objNotifyIcon.BalloonTipTitle = "File Not Found" $objNotifyIcon.Visible = $True $objNotifyIcon.ShowBalloonTip(10000) 
+2
source share

First, use the following function with -Message to generate a toast notification for PowerShell.

 function New-ToastMessage { <# .SYNOPSIS Displays a toast notification with a message and optional image. .DESCRIPTION Displays a toast notification with a message and optional image. .PARAMETER message The text message you want to display in your toast. .PARAMETER ActionCentre Send this to the action centre. .PARAMETER image An image that you wish to display alongside the message. .EXAMPLE New-ToastMessage -message "Alert: Disk Space Low (5%)" -image 'C:\Users\Robin\Documents\disk-low.png' .EXAMPLE New-ToastMessage -message "Alert: Disk Space Low (5%)" -image "C:\Users\Robin\Documents\disk-low.png" -ActionCenter .NOTES Author: Robin Malik #> param( [Parameter(Mandatory = $true,HelpMessage = 'Toast Message?')] [String] $Message, [Parameter(HelpMessage = 'Send to action centre')] [Switch] $ActionCentre, [Parameter(Mandatory = $false,HelpMessage = 'Path to image?')] [String] $Image ) $ErrorActionPreference = 'Stop' $notificationTitle = [DateTime]::Now.ToShortTimeString() + ': ' + $Message [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null if($Image) { $templateType = 'ToastImageAndText01' } else { $templateType = 'ToastText01' } $template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::$templateType) #Convert to .NET type for XML manipuration $toastXml = [xml]$template.GetXml() if($Image) { $toastXml.GetElementsByTagName('image').SetAttribute('src',$Image) > $null $toastXml.GetElementsByTagName('image').SetAttribute('alt','overlay text') > $null } $toastXml.GetElementsByTagName('text').AppendChild($toastXml.CreateTextNode($notificationTitle)) > $null #Convert back to WinRT type $xml = New-Object -TypeName Windows.Data.Xml.Dom.XmlDocument $xml.LoadXml($toastXml.OuterXml) $toast = [Windows.UI.Notifications.ToastNotification]::new($xml) $toast.Tag = 'PowerShell' $toast.Group = 'PowerShell' $toast.ExpirationTime = [DateTimeOffset]::Now.AddMinutes(5) if($actioncentre) { $toast.SuppressPopup = $true } $notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('PowerShell') $notifier.Show($toast) } 

After that, you can see PowerShell in the settings of Windows 10> System> Notifications and Actions> Receive notifications from these senders.

Click "PowerShell" and turn on "Show alerts in the Action Center", for example:

PowerShell notification area for Windows 10

Finally, you can call the above function using the -ActionCentre switch to send it there.

+2
source share

All Articles