物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Windows Serverで起動時にメールを送るようにタスクスケジューラで設定する

thinkami.hatenablog.com

PowerShellを使ってメール送信部分を書く。 email.ps1 等で次の内容のファイルを作成する。最近はUTF-8で保存しがちであるが、日本語環境では必ず Shift-JISで保存すべし。

$mail = @{
    from = "送信元@gmail.com";
    to = "送信先@gmail.com";
    smtp_server = "smtp.gmail.com";
    smtp_port = 587;
    user = "送信元@gmail.com";
    password = "送信元のパスワード";
}

$client = New-Object Net.Mail.SmtpClient($mail["smtp_server"], $mail["smtp_port"])

# GmailはSMTP + SSLで送信する
$client.EnableSsl = $true

# SMTP Authのため、認証情報を設定する
$client.Credentials = New-Object Net.NetworkCredential($mail["user"], $mail["password"])

$msg = New-Object Net.Mail.MailMessage($mail["from"], $mail["to"], "SERVER 再起動", "SERVERが再起動されました")

$client.Send($msg)

全般は * 名前を決める * ユーザーがログオンしているかどうかに関わらず実行する

トリガーは * タスクの開始 スタートアップ時

今回は上記のファイルをAdminのデスクトップに置いたので、タスクスケジューラの 操作 で * プログラムの開始 * プログラム %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe * 引数の追加 -Command ".\email.ps1" * 開始(オプション) C:\Users\Administrator\Desktop

条件は全てのチェックを外す。

設定は タスクを要求時に実行する のみにチェックを入れる。

履歴が見えていない場合は

eventvwr.msc を実行し、アプリケーションとサービス ログ→MicrosoftWindows→TaskScheduler→Operational→右クリックからプロパティ→ ログを有効にする+イベントを上書きしないでログをアーカイブする

とする。