2013-11-05 90 views
0

我已經編寫了一個腳本(.wsf)來在特定服務失敗時觸發電子郵件。對於第一次,第二次和隨後的失敗,我已經運行了一個程序並在該選項卡中添加了我的.wsf文件。但我沒有收到電子郵件警報。我可以知道我應該怎麼做才能執行該操作。採取如何在Windows服務恢復中運行Windows腳本文件

步驟:(但沒有結果/不工作)

1)在運行程序選項卡,給寫一個bat文件和腳本 2)的完整路徑inturn調用。 wsf文件 3)在運行程序選項卡時給出管理員cmd.exe路徑,並在命令行參數選項卡中給出腳本文件的路徑。

注意:我已經在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> 

回答

0

試圖從從系統服務和執行任務的專爲桌面使用工具的自動化進程運行在有限的會議,....如果它的工作原理,你有很大的運氣。

有很多問題涉及到它的工作,並不確定它是否會在新版本的系統上工作。

如果需要腳本化的telnet會話,您最好的選擇將是來自putty包的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 
嘗試
相關問題