Windows タスクスケジューラのイベントトリガーを利用しWindowsログ内容をメール送信

今回利用するのはWindowsのPowerShellを利用します。

事前に、PowerShellの実行権限設定を行ってください。
[スタート]->[すべてのプログラム]->[アクセサリ]->[Windows PowerShell](管理者権限で実行)

■ポリシーを変更する

PS C:\windows\system32> Set-ExecutionPolicy RemoteSigned
PS C:\windows\system32> Get-ExecutionPolicy
RemoteSigned
PS C:\windows\system32>

■PowerShellスクリプトを用意(test.ps1)

#PowerShellでメール送信

    $username = "ore@hoge.com"
    $myhost = "192.168.0.160"
    $port = 25

    $from = "ore@hoge.com"
    $recipients = "ore@hoge.com"
    $subject = "server log info"
    $body = ""
 
# コマンド参考
#    $logArray = Get-EventLog -log System -InstanceId 1073748860 -Newest 1 | Format-List

    $logArray = Get-EventLog -log System -InstanceId 1073748860 -Newest 1

    $Index = [string] $logArray.Index
    $EntryType = [string] $logArray.EntryType
    $InstanceId = [string] $logArray.InstanceId
    $EventID = [string] $logArray.EventID
    $Source = [string] $logArray.Source
    $workMessage = [string]$logArray.Message
    $ReplacementStrings = [string]$logArray.ReplacementStrings

    $body = $EntryType +"`n"+ $EventID +"`n"+ $Source+"`n"+$workMessage+"`n"+$ReplacementStrings

    $sc = New-Object Net.Mail.SmtpClient
    $sc.Host = $myhost
    $sc.Port = $port
    $sc.Credentials = New-Object Net.NetworkCredential
    $sc.Credentials.UserName = $username
    $sc.send($from, $recipients, $subject, $body)

■タスクスケジューラーから起動するバッチファイルを作成(test.bat)

powershell C:\temp\test.ps1

■タスクスケジューラーに設定

トリガーイベントを設定し、操作でプログラムの開始を指定。
起動するプログラムは、test.bat

設定タブで「新しいインスタンスを並列で実行」にしておく。





t-ExecutionPolicy RemoteSigned


コメント

ドメインサーチ

https://www.makko.biz/whois/?q=bg.bahaiquotesillustrated.info

このブログの人気の投稿

Apacheプロセス増加について

wgetでsitemap作成

ApacheでSSL自己証明書作成(オレオレ証明書)