How to get Pop up message box using Powershell

by Sitaram Pamarthi on October 19, 2010

AFAIK, there are two ways available to generate a Pop-up message box using powershell.

Simple way:-

In this powershell relies on a method which is available in windows shell object(WSH). In this you can control four factors, “Message box title”, “Message”, “timeout for message box”, “box type”.

Below is a simple example.

$a = new-object -comobject
$b = $a.popup(“This is a test message from “,0,”Test message from techibee”,1)

Second and effective method:-

In this we can make use of dotnet windows forms to generate the pop-up message boxes. Though code looks bit heavy it works very well and has lot of flexibility.

[Windows.Forms.MessageBox]::Show(“Test message from!. Subscribe to news letters, RSS feeds at to stay tuned”, “”, [Windows.Forms.MessageBoxButtons]::OK, [Windows.Forms.MessageBoxIcon]::Information)

This post was written by...

– who has written 502 posts on

Sitaram Pamarthi is a windows administrators with 9+ years of more

{ 12 comments… read them below or add one }

newuser October 19, 2010 at 8:09 pm

Another way….
(source 1=“)

$result = [Microsoft.VisualBasic.Interaction]::MsgBox(“Do you agree?”, ‘YesNoCancel,Question’, “Respond please”)

switch ($result) {
‘Yes’ { “Ah good” }
‘No’ { “Sorry to hear that” }
‘Cancel’ { “Bye…” }


Ivan November 25, 2010 at 6:05 pm

Is there a way to send this message to all users or computers in a specific OU in Active Directory?
I want to use as anetsend replacement.


Sitaram Pamarthi December 1, 2010 at 8:09 pm

You can try executing the code snippets in article using invoke-command cmdlet.

$comps = Get-QADComputer -SearchRoot “cn=computers,dc=domain,dc=com” | select Name
foreach ($comp in $comps) {
invoke-command -computername $pc {


Doug June 8, 2012 at 3:56 am

Little cleaner version..

$result = [System.Windows.Forms.MessageBox]::Show(“Continue Task?”,”What a Mess”, “YesNo” , “Information” , “Button1″)

$result contains the result from Button “Yes” or “No” whichever is pressed.


Sitaram Pamarthi June 8, 2012 at 9:37 pm

Thanks for that, Doug.


Josef November 15, 2012 at 6:01 pm

Will this code be possible to execute from a central management server to all citrix servers, telling all users on each server with a popoup that they should logout now ?


Rob June 12, 2013 at 4:32 pm

need some help.
here is a portion of my script.
what needs to happen is that if i click ok the script will run.
but if i click cancel the script should stop and close the powershell interface.

at the moment the pop up runs and if i click cancel the script continues to run.

$a = new-object -comobject
$b = $a.popup(“Press OK to start checking the Cluster Services.“,0,”Message of the day”,1)

$Srvname = “server name goes here”
$ping = new-object System.Net.NetworkInformation.Ping
$shell = New-Object -ComObject
$test = $ping.send($Srvname)
if (!$?)
$shell.popup(“Couldn’t find the IP address of the HOST mentioned”)
elseif ($test.status -eq “Success”)
$shell.popup(“Cluster Responded to Ping”)
$status = $test.status
$shell.popup(“Failed with status: $status”)


Sitaram Pamarthi July 6, 2013 at 6:16 pm

@Rob, I see that you are not using the return value from pop-up message box in your code. Try something like this.

$a = new-object -comobject
$b = $a.popup(“Press OK to start checking the Cluster Services.“,0,”Message of the day”,1)
if($b -eq 1) {
//rest of my code here that needs be processed when OK is selected.

if($b -eq 2) {

//cancle was selected in the box. So should exit


web page August 17, 2013 at 7:40 am

Hi! This is my first comment here so I just wanted to give a quick
shout out and tell you I genuinely enjoy
reading your posts. Can you recommend any other blogs/websites/forums that go
over the same topics? Thanks a lot!


Simpsons Tapped Out Hack September 1, 2013 at 6:52 am

Spot on with this write-up, I actually believe that this amazing site needs a great
deal more attention. I’ll probably be back again to read through more, thanks for the info!


Joseph April 4, 2014 at 1:09 am


I’m really new to powershell and just learned how to make pop up appears.

I was wondering if someone could help me out by showing me how to make it appear when a user performs a specific action? Or is this outside the range of Powershell?

Thanks in advance.


Sitaram Pamarthi April 4, 2014 at 8:27 pm

Joseph, on what kind of action, you want to give a pop-up. Giving exact scenario gives us enough flexibility help.


Leave a Comment

{ 4 trackbacks }

Previous post:

Next post: