パフォーマンスモニタ(Windows Server 2008 R2)でアラートを作成しましたが、\ Processor(_Total)\%Processor Timeが10を超えるアラート送信の条件が常に満たされていることを確認します)。イメージのアラートタスクのプロパティが表示されます。またPowerShellスクリプトを使用してパフォーマンスモニタから電子メールアラートを送信
、私はまた、ユーザーがログオンしているかどうかを実行します、そして、それは最高の権限で実行されますタスクスケジューラで新しいタスクを作成しました。このタスクのトリガーは、次のプロパティがあります。
- は、タスクを開始します:基本
- ログ:システム
- 出典:プロセッサ
アクション(イベント
- 処置:プログラムを開始する
- プログラム/スクリプト:電子メールを送信するPowerShellスクリプトへのパス。
PowerShellのコードを、次の($名、$日、$カウンタ、$しきい値、$値は、上記の画像のように、アラートのタスクのプロパティを設定するパフォーマンスモニタのデータコレクタから来ることになっている)である。
function SendMail ($name, $date, $counter, $threshold, $value) {
$MailMessage = New-Object Net.Mail.MailMessage
$MailMessage.To.Add("[email protected]")
$MailMessage.From = "[email protected]"
$MailMessage.Subject = "ALERT - Performance Monitor"
$MailMessage.IsBodyHtml = $True
$MailMessage.Body = @"
<html><head></head><body>
The following counter needs attention:<BR><BR>
Name: $($name)<BR>
Date: $($date)<BR>
Counter: $($counter)<BR>
Threshold: $($threshold)<BR>
Actual Value: $($value)<BR>
<FONT face=Courier>$($html)</FONT>
<BR>
--- Automatically generated with SENDMAIL function ---
</body>
</html>
"@
$SmtpClient = New-Object Net.Mail.SmtpClient("blah.bleh")
$SmtpClient.Send($MailMessage)
}
タスクが開始されると、履歴:タスク開始、アクション開始、および作成プロセスの確認が次のようになります。電子メールは決して送信されません。
私はアクションを使用して電子メールを送信しようとしました:電子メールを送信し、正常に動作しました。誰が何が間違っているかも知っていますか?
すべてのパラメータがスクリプトで正しく渡されていますか。もう一つは、powershell v3を使用している場合、send-mailmessageコマンドレット-http://stackoverflow.com/a/17456077/581922 – Mitul
を使用できます。@Mitul:パラメータ$ name、$ dateなどを意味しますか?もしそうなら、どうすれば確認できますか? email、smtp serverなどのパラメータを参照している場合は、私が使用しているアクションと同じものを使用しています。メールを送信してください(スクリプトでは、SMTPサーバーは「SMTP」で始まります。 (残念ながら、私はv3を使用していません:( – Anna
あなたが投稿したコードは関数を定義していますが、その関数をどこでも呼び出すことはありません。 –