The PowerShell action scripts have two instantiated objects available to support successful execution:
The following context variables are available for use in PowerShell action scripts:
Please see Percent Variables for a list of percent variables that are available for use in PowerShell action scripts.
Important: When using percent variables as part of string literals in your PowerShell scripts, please use double quotation marks (" ") instead of single quotation marks (' ') to enclose the string literal. For example: $Message = "%Device.DisplayName changed state".
The user can configure a script timeout value (in seconds). If the script has not finished executing before the timeout value expires it will be aborted.
Minimum: 1
Maximum: 60
Default: 10
Example 1:
#
# This example plays a sound file
#
# Point to an existing wav file
$wavFile = "C:\temp\Sound1.wav"
# Create a .NET SoundPlayer object
$sound = new-Object System.Media.SoundPlayer;
$sound.SoundLocation=$wavFile;
# Play the file
$sound.Play();
# Report the action results. The text will also be logged
$Context.SetResult($result, "Sound action completed")
Example 2:
#
# This example sends an email
#
# Change this value to the recipient
$to = "target_email"
# Change this value to the sender
$from = "source_email"
# This line creates a .NET object for the message
$message = New-Object system.Net.Mail.MailMessage $from, $to
$message.Subject = "Notification from " + $Context.GetProperty("DisplayName")
$message.Body = "Address is down: " + $Context.GetProperty("Address")
# Name the mail server
$server = "alpha.ipswitch.com"
# Create a .NET object to represent the mail client
$client = New-Object System.Net.Mail.SmtpClient $server
$client.UseDefaultCredentials = $true
$result = 1
# Send the message. If no exception is thrown, consider it a success
try {
$client.Send($message);
$result = 0
}
catch {
$result = 1
}
# Report the action results. The text will also be logged
$Context.SetResult($result, "Email Action Completed")