0

特定のサービスが失敗したときに電子メールをトリガーするスクリプト (.wsf) を作成しました。最初、2番目、およびその後の失敗について、プログラムを実行し、そのタブに.wsfファイルを追加しました。それでも、私は電子メールアラートを受け取っていません。それを実行するために私が何をすべきか知っているかもしれません。

実行された手順: (しかし、結果はありません/機能しませんでした)

1)プログラムの実行タブで、スクリプトの完全なパスを指定しました2)batファイルを作成し、その.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:alice@sample.com"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "RCPT TO:bob@sample.com"
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>
4

1 に答える 1

0

システムサービスから実行され、限られたセッションで実行されるタスクからデスクトップで使用するように設計されたツールを使用してプロセスを自動化しようとしています....それが機能する場合は、幸運です。

それを機能させるには多くの問題があり、システムの新しいバージョンで機能するかどうかはわかりません.

スクリプト化された telnet セッションが必要な場合、より適切なオプションは putty パッケージの plink コマンド ライン ツールです。

または、CDOで試すことができます

Set objEmail = CreateObject("CDO.Message")
objEmail.From = "alice@sample.com"
objEmail.To = "bob@sample.com"
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
于 2013-11-05T10:29:14.130 に答える