I've seen a bunch of closely related posts so I know i'm not alone, but none have given me the answer I'm looking for. Apologies if this has been asked and answered and I couldn't find it.
this script creates a custom notification area balloon, which, if clicked on is meant to open a new IE window to some URL. Works great from the PowerShell ISE GUI that I've been working with it in. Can't get it to work from command-line using any of the options i've seen suggested in other posts. Specifically, can't get the IE window to open. The notification appears no problem, but no IE window...?? Tried with:
etc.
Thoughts?
My script:
#Load the required assemblies
[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”)
#Remove any registered events related to notifications
Remove-Event BalloonClicked_event -ea SilentlyContinue
Unregister-Event -SourceIdentifier BalloonClicked_event -ea silentlycontinue
Remove-Event BalloonClosed_event -ea SilentlyContinue
Unregister-Event -SourceIdentifier BalloonClosed_event -ea silentlycontinue
Remove-Event Disposed -ea SilentlyContinue
Unregister-Event -SourceIdentifier Disposed -ea silentlycontinue
#Create the notification object
$notification = New-Object System.Windows.Forms.NotifyIcon
#Define various parts of the notification
$notification.Icon = [System.Drawing.SystemIcons]::Information
$notification.BalloonTipTitle = “**Reminder**”
$notification.BalloonTipIcon = “Warning”
$title = “message to user”
$notification.BalloonTipText = $title
#Make balloon tip visible when called
$notification.Visible = $True
## Register a click event with action to take based on event
#Balloon message clicked
register-objectevent $notification BalloonTipClicked BalloonClicked_event -Action {
Start-Process 'c:\Program Files\Internet Explorer\iexplore.exe' -ArgumentList 'http://someURL.com' -WindowStyle Maximized -Verb Open
#Get rid of the icon after action is taken
$notification.Dispose()
} | Out-Null
#Balloon message closed
register-objectevent $notification BalloonTipClosed BalloonClosed_event -Action {$notification.Dispose()} | Out-Null
#Call the balloon notification
$notification.ShowBalloonTip(1000)
The reason why it doesn't work in non-interactive prompts is that powershell has already finished processing when the user clicks the balloon.
You can fix that in one of two ways: