From 2e03f37552667e909ba35a9a9fd7f49de074f4f5 Mon Sep 17 00:00:00 2001 From: Ben Whitmore <44303264+byteben@users.noreply.github.com> Date: Wed, 22 Jul 2020 14:02:37 +0100 Subject: [PATCH] Simple Toast Notifications --- CustomMessage.xml | 9 ++ InternetAccessProblems.xml | 9 ++ LeaveComputerSwitchedOn.xml | 9 ++ MicrosoftExchangeLimitedFunctionality.xml | 9 ++ PhoneSystemProblems.xml | 9 ++ Toast_Notify.ps1 | 167 ++++++++++++++++++++++ badgeimage.jpg | Bin 0 -> 3685 bytes heroimage.jpg | Bin 0 -> 25405 bytes 8 files changed, 212 insertions(+) create mode 100644 CustomMessage.xml create mode 100644 InternetAccessProblems.xml create mode 100644 LeaveComputerSwitchedOn.xml create mode 100644 MicrosoftExchangeLimitedFunctionality.xml create mode 100644 PhoneSystemProblems.xml create mode 100644 Toast_Notify.ps1 create mode 100644 badgeimage.jpg create mode 100644 heroimage.jpg diff --git a/CustomMessage.xml b/CustomMessage.xml new file mode 100644 index 0000000..1b39fe2 --- /dev/null +++ b/CustomMessage.xml @@ -0,0 +1,9 @@ + + + We want to bring to your attention some important information. Please review the details below before contacting the Service Desk + Sent on behalf of the ICT Service Desk + Major IT Issues + We are currently experiencing problems with all our systems. We are drinking coffee will provide an update shortly. Thank you for your patience + Details + https://byteben.com + \ No newline at end of file diff --git a/InternetAccessProblems.xml b/InternetAccessProblems.xml new file mode 100644 index 0000000..4269ff6 --- /dev/null +++ b/InternetAccessProblems.xml @@ -0,0 +1,9 @@ + + + We want to bring to your attention some important information. Please review the details below before contacting the Service Desk + Sent on behalf of the ICT Service Desk + Internet Access Problems + We are currently experiencing intermittent problems with internet access. We are working with our service provider and will provide an update shortly + Details + https://byteben.com + \ No newline at end of file diff --git a/LeaveComputerSwitchedOn.xml b/LeaveComputerSwitchedOn.xml new file mode 100644 index 0000000..80ef55e --- /dev/null +++ b/LeaveComputerSwitchedOn.xml @@ -0,0 +1,9 @@ + + + We want to bring to your attention some important information. Please review the details below before contacting the Service Desk + Sent on behalf of the ICT Service Desk + Scheduled Mainteneance + We are working on your computer later. Please log off when you leave the office today but leave the computer on. Thank You + Details + https://byteben.com + \ No newline at end of file diff --git a/MicrosoftExchangeLimitedFunctionality.xml b/MicrosoftExchangeLimitedFunctionality.xml new file mode 100644 index 0000000..5f7a749 --- /dev/null +++ b/MicrosoftExchangeLimitedFunctionality.xml @@ -0,0 +1,9 @@ + + + We want to bring to your attention some important information. Please review the details below before contacting the Service Desk + Sent on behalf of the ICT Service Desk + Microsoft Exchange Limited Functionality + We are currently experiencing problems with the email system. We are working with our service provider and will provide an update shortly + Details + https://byteben.com + \ No newline at end of file diff --git a/PhoneSystemProblems.xml b/PhoneSystemProblems.xml new file mode 100644 index 0000000..2ed7398 --- /dev/null +++ b/PhoneSystemProblems.xml @@ -0,0 +1,9 @@ + + + We want to bring to your attention some important information. Please review the details below before contacting the Service Desk. + Sent on behalf of the ICT Service Desk + Phone System Problems + We are currently experiencing problems with our phone system. We are working with our service provider and will provide an update shortly. + Details + https://byteben.com + \ No newline at end of file diff --git a/Toast_Notify.ps1 b/Toast_Notify.ps1 new file mode 100644 index 0000000..50814e5 --- /dev/null +++ b/Toast_Notify.ps1 @@ -0,0 +1,167 @@ +<# +=========================================================================== +Created on: 22/07/2020 11:04 +Created by: Ben Whitmore +Filename: Toast_Notify.ps1 +=========================================================================== + +.SYNOPSIS +The purpose of the script is to create simple Toast Notifications in Windows 10 + +.DESCRIPTION +Toast_Notify.ps1 will read an XML file so Toast Notifications can be changed "on the fly" without having to repackage an application. The CustomMessage.xml file can be hosted on a fileshare. +To create a custom XML, copy CustomMessage.xml and edit the text you want to disaply in the toast notification. The following files should be present in the Script Directory + +Toast_Notify.ps1 +BadgeImage.jpg +HeroImage.jpg +CustomMessage.xml + +.PARAMETER XMLScriptDirSource +Specify the name of the XML file to read. The XML file must exist in the same directory as Toast_Notify.ps1. If no parameter is passed, it is assumed the XML file is called CustomMessage.xml. + +.PARAMETER XMLOtherSource +Specify the location of the Custom XML file used for the Toast when it is not in the saem directory as the Toast_Notify.ps1 script + +.EXAMPLE +Toast_Notify.ps1 -XMLOtherSource "\\fileserverhome\xml\CustomMessage.xml" + +.EXAMPLE +Toast_Notify.ps1 -XMLSciptDirSource "CustomMessage5.xml" + +.EXAMPLE +Toast_Notify.ps1 +#> + +Param +( + [Parameter(Mandatory = $False)] + [String]$XMLScriptDirSource = "CustomMessage.xml", + [String]$XMLOtherSource + +) + +#Current Directory +$ScriptPath = $MyInvocation.MyCommand.Path +$CurrentDir = Split-Path $ScriptPath + +#Check if XML will come from the Script Source Directory or another source +If (!($PSBoundParameters.ContainsKey('XMLOtherSource') -eq $True)) { + $XMLPath = Join-Path $CurrentDir $XMLScriptDirSource +} +else { + $XMLPath = $XMLOtherSource +} + +#Test if XML exists +if (!(Test-Path -Path $XMLPath)) { + throw "$XMLPath is invalid." +} + +#Check XML is valid +$XMLToast = New-Object System.Xml.XmlDocument +try { + $XMLToast.Load((Get-ChildItem -Path $XMLPath).FullName) + $XMLValid = $True +} +catch [System.Xml.XmlException] { + Write-Verbose "$XMLPath : $($_.toString())" + $XMLValid = $False +} + +#Continue if XML is valid +If ($XMLValid -eq $True) { + + #Read XML Nodes + [XML]$Toast = Get-Content $XMLPath + + #Create Toast Variables + $ToastTitle = $XMLToast.ToastContent.ToastTitle + $Signature = $XMLToast.ToastContent.Signature + $EventTitle = $XMLToast.ToastContent.EventTitle + $EventText = $XMLToast.ToastContent.EventText + $ButtonTitle = $XMLToast.ToastContent.ButtonTitle + $ButtonAction = $XMLToast.ToastContent.ButtonAction + + #ToastDuration: Short = 7s, Long = 25s + $ToastDuration = "long" + + #Toast Time Format + $Time = Get-Date -Format HH:mm + + #Images + $BadgeImage = "file:///$CurrentDir/badgeimage.jpg" + $HeroImage = "file:///$CurrentDir/heroimage.jpg" + + #Set COM App ID > To bring a URL on button press to focus use a browser for the appid e.g. MSEdge + #$LauncherID = "Microsoft.SoftwareCenter.DesktopToasts" + #$LauncherID = "{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe" + $Launcherid = "MSEdge" + + #Get last(current) logged on user + $LoggedOnUserPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI" + If (!(Test-Path $LoggedOnUserPath)) { + Try { + $Firstname = $Null + } + Catch [System.Management.Automation.ItemNotFoundException] { + Write-Warning "$RegistryKey was not found." + } + Catch { + Write-Warning "Error $($error[0].Exception)." + } + } + else { + $User = Get-Itemproperty -Path $LoggedOnUserPath -Name "LastLoggedOnDisplayName" | Select-Object -ExpandProperty LastLoggedOnDisplayName + $DisplayName = $User.Split(" ") + $Firstname = $DisplayName[0] + } + + #Get Hour of Day and set Custom Hello + $Hour = (Get-Date).Hour + If ($Hour -lt 12) { $CustomHello = "Good Morning $($Firstname)" } + ElseIf ($Hour -gt 16) { $CustomHello = "Good Evening $($Firstname)" } + Else { $CustomHello = "Good Afternoon $($Firstname)" } + + #Load Assemblies + [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null + [Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] | Out-Null + + #Build XML Template + [xml]$ToastTemplate = @" + + + + $CustomHello + $ToastTitle + $Signature + + + + + $EventTitle + + + + + $EventText + + + + + +"@ + + #Prepare XML + $ToastXml = [Windows.Data.Xml.Dom.XmlDocument]::New() + $ToastXml.LoadXml($ToastTemplate.OuterXml) + + #Prepare and Create Toast + $ToastMessage = [Windows.UI.Notifications.ToastNotification]::New($ToastXML) + [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($LauncherID).Show($ToastMessage) +} \ No newline at end of file diff --git a/badgeimage.jpg b/badgeimage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d2b54e999c5c443f22871cfb220ba9f8262d7f0 GIT binary patch literal 3685 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 O=Hc&j{OiI84*d_UO!MIY literal 0 HcmV?d00001 diff --git a/heroimage.jpg b/heroimage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ff75c939c946023f009bef457edbd66d7275875 GIT binary patch literal 25405 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∾=Q_p@)3SZW>35HpC3ix3df@ zb#0@Qisx~H(c0JA`#z^al-|osLZ&Pd@;TpG*w zDO*pGrRw}n`gbT__&>xNyn^RZmLT_RT~+1zLzs+fe8`e5ysVOdQI!b|yE}1@TpWE3 zXU`o~)|-{e_pv%?7l91d2yJ0pgDk+RZvc@WOz&(Eqo#V)`$+8CH5l^~52u+JYX#s@hk2cYJ