Power AutomateでPCのログオフを監視してメール通知する方法【クラウドフローで簡単実装】

  • URLをコピーしました!
目次

はじめに

「PCがいつログオフされたのか知りたい」「Power Automateで自動的に通知したい」と思ったことはありませんか?

実は、Power Automate(クラウドフロー)とWindowsのイベントログ、そしてPowerShellスクリプトを組み合わせることで、PCがログオフされたときにメールで自動通知することができます。

本記事では、初心者でも実践できる構築手順をわかりやすく解説します。


フローの概要

項目内容
実現方法Power Automate(クラウドフロー)+ PowerShellスクリプト
トリガースケジュール(例:5分ごと)
検知対象Windows イベントログ(イベントID: 4647 = ユーザーによるログオフ)
通知手段Outlook(またはSMTPメール)でログオフ通知を送信
中継手段ログファイル(OneDriveや共有フォルダ経由)

ステップ①:PC側にログオフ記録スクリプトを作成

🔧 PowerShellでログオフイベントを記録

ログオフが発生したら、その時刻をファイルに記録するスクリプトを作成します。

# ログオフイベント(ID 4647)を検出し、時刻をファイルに保存
$event = Get-WinEvent -LogName Security -MaxEvents 20 | Where-Object { $_.Id -eq 4647 } | Select-Object -First 1

if ($event) {
$event.TimeCreated | Out-File -FilePath "C:\log\last_logoff.txt"
}

💡 ポイント:

  • C:\log\ フォルダは事前に作成しておきましょう。
  • イベントID 4647 はユーザーによるログオフ操作を示します。

🕒 タスクスケジューラでスクリプトを自動実行

  1. タスクスケジューラを起動(スタート→検索)
  2. 「タスクの作成」→名前は例:「LogoffMonitor」
  3. トリガー:**「特定のイベント」**を選び、以下の条件を設定:
    • ログ:Security
    • ソース:Microsoft Windows security auditing.
    • イベントID:4647
  4. アクション:**「プログラムの開始」**で以下を設定:
    • プログラム:powershell
    • 引数:-File "C:\scripts\logoff.ps1"(※スクリプトパス)

これで、ログオフのたびにlast_logoff.txtが更新されるようになります。


ステップ②:Power Automateクラウドで定期監視フローを構築

🛠 クラウドフローの構成

以下の手順でフローを構築します。

1. トリガー:スケジュール(5分ごと)

  • 繰り返し」→5分ごとなど任意の間隔で設定

2. アクション:ファイル取得

  • 「OneDrive for Business」→「ファイルの内容を取得」
  • 対象ファイル:/log/last_logoff.txt

3. アクション:内容を解析

  • 変数の設定」などで、ファイル内容(日時)を読み込みます

4. 条件分岐:前回通知時間と比較

  • 条件:「last_logoff_time > 前回通知時間」
  • 新しいログオフであれば、通知処理へ進みます

5. アクション:メール送信

件名:PCがログオフされました  
本文:PCは {last_logoff_time} にログオフされました。

※ Outlook または任意のSMTPを選択可能です。

6. アクション:通知済み日時を保存

  • 次回比較用に「前回通知時間」を保存(例:別のファイルや変数で保持)

補足:リアルタイム通知の代替アイデア

💡 バッチスクリプトで即時メール送信も可能

もしPower Automateを使わずにすぐに通知したい場合は、以下のバッチをログオフ時スクリプトに設定できます。

powershell -Command "Send-MailMessage -From '通知元@example.com' -To 'あなた@example.com' -Subject 'PCログオフ通知' -Body 'ログオフされました。' -SmtpServer 'smtp.example.com'"

📌 設定方法(グループポリシーエディタ)

  1. gpedit.msc を起動
  2. 「ユーザーの構成」→「Windows の設定」→「スクリプト(ログオフ時)」
  3. 上記バッチを登録

これにより、PCログオフと同時にメールが飛ぶようになります。


よくある質問(FAQ)

Q1. なぜPower Automateクラウドでは直接PCの状態を監視できないの?

A. Power Automateクラウドはブラウザベースのクラウドサービスなので、ローカルPCの状態には直接アクセスできません。そのため、ファイルを中継する仕組みが必要になります。


Q2. イベントログ監視の精度は高いですか?

A. イベントID4647はユーザー自身のログオフ操作を確実に検知します。ただし、強制終了やクラッシュなど一部の特殊ケースは別イベントIDになります。


Q3. 通知用のSMTPサーバはどうすればいい?

A. Outlookを使っている場合は、Power Automate側でアカウント連携するだけでOKです。独自SMTPを使う場合は、Send-MailMessageでSMTPサーバ名、ポート、認証情報などを指定してください。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次