У меня есть пакетный скрипт, который запускает скрипт Powershell, когда служба Windows неожиданно останавливается. Этот сценарий Powershell запускается с помощью параметров восстановления в службе и отправляет электронное письмо, уведомляющее администраторов о том, что служба завершилась сбоем, и им необходимо go проверить ее.
Учитывая, что эти сценарии будут использоваться на нескольких серверах и сервисы, я хотел бы найти способ получить имя службы, которая вышла из строя, и сохранить его как значение свойства вместо жесткого кодирования имен служб и создания копий этого сценария электронной почты для каждой службы, на которой он будет использоваться.
Есть ли способ сохранить имя службы, которая вызвала сценарий при сбое, и передать его в Powershell?
Редактировать: Когда происходит сбой службы, я воспользовался советом thepip3r и просто запустил сценарий powershell при сбое, отказавшись от необходимости в пакете скрипт. Вот настройка параметров восстановления
Тестирование работает и отправляет электронное письмо, но как бы я назвал имя "TestService", которое я дал в скрипте?
Для справки, вот код в моем скрипте ps1:
$From = "testing@test.com"
$To = "me@test.com"
$Subject = "[SERVICE NAME VALUE] Failed to Restart"
$Body = "Please go to " + $env:computername +" and restart it"
$SMTPServer = "smtp.server"
$SMTPPort = 587
$userName = 'user123'
$securePwd = Get-Content 'filepathtoencryptedpass\Secure.txt' | ConvertTo-SecureString
$cred = New-Object -typename System.Management.Automation.PSCredential -ArgumentList $userName, $securePwd
Send-MailMessage -From $From -To $To -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Port $SMTPPort -Priority High -Credential $cred