Как запустить файл сценария Windows при восстановлении службы Windows

Я написал сценарий (.wsf) для запуска электронной почты при сбое конкретной службы. Для первого, второго и последующих сбоев я запустил программу и добавил свой файл .wsf на эту вкладку. Тем не менее, я не получаю оповещение по электронной почте. Могу ли я узнать, что я должен сделать, чтобы выполнить это.

Предпринятые шаги: (но безрезультатно/не сработало)

1) На вкладке «Выполнить программу» указан полный путь к сценарию. 2) Написан bat-файл, который в свою очередь вызывает этот файл .wsf. файла скрипта на вкладке параметров командной строки.

Примечание. Я выполнил это отдельно в cmd.exe, и это сработало, отправив оповещение по электронной почте.

Чтобы сделать службу неработоспособной, я вручную остановил ее, перезапустил, но уведомление не появилось. Пожалуйста, дайте мне знать, что мне делать дальше при выполнении скрипта на вкладке восстановления службы Windows. Настоящим я также добавил свой сценарий.

<job>
<script language="VBScript">
Option Explicit
On Error Resume Next
Dim WshShell
set WshShell=CreateObject("WScript.Shell")
WshShell.run "cmd.exe"
WScript.Sleep 1000
WshShell.SendKeys "telnet smtp.sample.com 25"

WshShell.Sendkeys("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "EHLO sample.com"
WshShell.Sendkeys("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "MAIL FROM:[email protected]"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "RCPT TO:[email protected]"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "DATA"
WshShell.SendKeys ("{Enter}")

WScript.Sleep 1000
WshShell.SendKeys "Subject: Test Email"
WshShell.SendKeys ("{Enter}")
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "Body-Test Email executed by running script"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "."
WshShell.SendKeys ("{Enter}")
WScript.Quit 
</script>
</job>

person sreram    schedule 05.11.2013    source источник


Ответы (1)


Попытка автоматизировать процесс с помощью инструментов, предназначенных для использования на рабочем столе, из задачи, выполняемой из системной службы и выполняемой в ограниченном сеансе, .... если это работает, вам повезло.

Есть много проблем, связанных с его работой, и я не уверен, что он будет работать на новых версиях системы.

Если требуется сеанс telnet по сценарию, лучшим вариантом будет инструмент командной строки plink из пакета шпатлевки.

Или вы можете попробовать с CDO

Set objEmail = CreateObject("CDO.Message")
objEmail.From = "[email protected]"
objEmail.To = "[email protected]"
objEmail.Subject = "Service is down" 
objEmail.Textbody = "The service has failed"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.sample.com" 
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
person MC ND    schedule 05.11.2013