Для сценария действия PowerShell есть два созданных экземпляра объектов для поддержки успешного выполнения:
Следующие контекстные переменные доступны для использования в сценариях действия PowerShell:
Смотрите Процентные переменные для просмотра списка процентных переменных, доступных для использования со сценариями действия PowerShell.
<Важно> При использовании процентных переменных в качестве части строки литерала в сценариях PowerShell, для вложения строки литерала используйте двойные кавычки (" ") вместо одинарных (' '). Например: $Message = "%Device.DisplayName changed state".
Можно установить значение тайм-аута сценария (в секундах). Если выполнение сценария не закончено после окончания периода тайм-аута, выполнение прерывается.
Минимум: 1
Максимум: 60
Стандартно: 10
Пример 1:
#
# Этот пример воспроизводит звуковой файл
#
# Указание на существующий файл wav
$wavFile = "C:\temp\Sound1.wav"
# Создание объекта .NET SoundPlayer
$sound = new-Object System.Media.SoundPlayer;
$sound.SoundLocation=$wavFile;
# Воспроизведение файла
$sound.Play();
# Отчет о результатах действия. Этот текст также регистрируется
$Context.SetResult($result, "Звуковое действие выполнено")
Пример 2:
#
# Этот пример отправляет электронное сообщение
#
# Изменение этого значения для получателя
$to = "target_email"
# Изменение этого значения для отправителя
$from = "source_email"
# Эта строка создает объект .NET для сообщения
$message = New-Object system.Net.Mail.MailMessage $from, $to
$message.Subject = "Уведомление от " + $Context.GetProperty("DisplayName")
$message.Body = "Адрес неактивен: " + $Context.GetProperty("Address")
# Имя почтового сервера
$server = "alpha.ipswitch.com"
# Создание объекта .NET для представления почтового клиента
$client = New-Object System.Net.Mail.SmtpClient $server
$client.UseDefaultCredentials = $true
$result = 1
# Отправка сообщения. При отсутствии исключений действие считается успешным
try {
$client.Send($message);
$result = 0
}
catch {
$result = 1
}
# Отчет о результатах действия. Этот текст также регистрируется
$Context.SetResult($result, "Действие почты выполнено")