わりと機密度が高いPCがあってそこに誰かがログインしたらメールで教えてほしいときに、
以下の手順でメールを送信する。
- powershellでメールを送信する
- タスクスケジューラでタスクを作成する
powershellでメールを送信する
以下を参照しました。
http://www.atmarkit.co.jp/ait/articles/1407/01/news018.html
#SMTPサーバーの設定
$smtpHost = "ホストorIP"
$msgFrom = "送信元アドレス"
$accountName = "メールアカウントユーザ名"
$accountPass = "メールアカウントパスワード"
$smtpPort = 587 #SMTPポート番号
$smtpSSL = $false #SSL暗号化($trueまたは$false)
#SMTPクライアントの設定
$objEmail = new-object System.Net.Mail.SmtpClient
$objEmail.Host = $smtpHost
$objEmail.Port = $smtpPort
$objEmail.EnableSSL = $smtpSSL
$objEmail.Credentials = New-Object Net.NetworkCredential
$objEmail.Credentials.UserName = $accountName
$objEmail.Credentials.Password = $accountPass
#メッセージ送信
$objEmail.Send($msgFrom,$msgTo,$msgSubject,$msgBody)
このスクリプトをsndmsg.ps1としてc:\scriptsに保存しました。
次にこのスクリプトでメール送信できるか確認します。
powershellを起動します。
c:\scripts\sndmsg.ps1 -msgTo '送り先' -msgSubject '件名' -msgBody '本文'
エラーなくスクリプトが終了すれば送信できているはずです。
タスクスケジューラでタスクを作成する
新しいタスクの作成
「全般」タブ
「トリガー」タブ
- 「新規」ボタンをクリック
- 「タスクの開始」を「ログオン時」に変更
「操作」タブ
- 「新規」ボタンをクリック
- 「操作」を「プログラムの開始」に変更
- 「プログラム/スクリプト」に
powershell.exe
- 「引数の追加」に
-Command "c:\scripts\sndmsg.ps1 -msgTo '送り先メールアドレス' -msgSubject '題名' -msgBody '本文'"
- 送り先メールアドレス、題名、本文は適切に書き換えてください
「条件」タブ
「設定」タブ
以上で誰かがPCにログオンしたことをメールで知らせてくれます。