.single.post-author、作成者: Konstantinos Tsoukalas 、最終更新: 2025 年 11 月 19 日

管理者アカウントが Windows 10/11 または Windows Server のロックを解除するたびに電子メール通知を受信したい場合は、このチュートリアルが最適です。

重要なシステムを監視する必要がある場合、毎回電子メール通知を受信すると便利です。誰かが重要な Windows Server または Windows 10/11 コンピューターのロックを解除しました。その場合、このガイドでは、Windows タスク スケジューラと PowerShell を使用して、任意のユーザーによって Windows システムがロック解除されたときに電子メール通知を自動的に受信する方法を説明します。

ロックを解除して Windows Server 2016/2019 または Windows 10/11 にログインした後、Windows に電子メール通知を強制的に送信する方法。

要件: 電子メールを送信するための SMTP サーバー。

ステップ 1. 電子メール通知を送信するための PowerShell スクリプトを作成します。

このタスクを完了するための最初のステップは、ログインの詳細 (ユーザー名と日付/時刻) を含む電子メールを特定の受信者に送信する PowerShell スクリプトを作成することです。

1. C:\ ドライブまたは電子メールを送信するスクリプトを保存するその他のフォルダーに「Scripts」という名前のフォルダーを作成します。 *

* 注: このガイドでは、「C:\Windows\System32\Scripts」にスクリプト フォルダーを作成しました。

2. 次にメモ帳を開き、次のテキストをコピー貼り付けてスクリプトを作成します。

# 情報: このスクリプトは、任意のユーザー アカウントがコンピューターにログオンすると電子メールを送信します。

# SMTP サーバーの電子メール認証情報
$Username=”[email protected]”# 送信者の電子メール アドレス
$PlainPassword=”senderpassword”# 送信者の電子メール パスワード
$SecurePassword=ConvertTo-SecureString $PlainPassword-AsPlainText-Force
$Cred=New-Object System.Management.Automation.PSCredential ($Username, $SecurePassword)

# 電子メールの内容
$LoggedInUser=$env:USERNAME
$Computer=$env:COMPUTERNAME
$LocalTime=Get-Date-Format”yyyy-MM-dd HH:mm:ss”
$To=”[email protected]”# 受信者の電子メール アドレス
$Subject=”ServerName ログイン アラート: $LoggedInUser”
$Body=@”
ユーザー $LoggedInUser は $LocalTime に $Computer にログインしました。
“@

# 電子メールを送信します
Send-MailMessage-From $Username-To $To-Subject $Subject-Body $Body `
-SmtpServer”mail.domain.com”-Port 587-UseSsl-Credential $Cred

# オプション: ローカル ログ ファイル
Add-Content-Path”C:\Windows\System32\Scripts\UserLoginLog.txt”-Value”$LocalTime – $LoggedInUser logged in on $Computer”

3. 次に、スクリプト テキストを次のように変更します。

[email protected]」を送信者の電子メール アドレスに置き換えます。 「senderpassword」を送信者の電子メール アドレスのパスワードに置き換えます。 「[email protected]」を受信者の電子メール アドレスに置き換えます。 「ServerName」を Windows サーバーの名前またはマシン名に置き換えます。 「mail.domain.com」を SMTP サーバーの名前に置き換えます。必要に応じて、「587」を SMTPS サーバーのポートに置き換えます。 別の場所に「Scripts」フォルダーを作成した場合は、「C:\Windows\System32\Scripts」をそのフォルダーのフル パスに置き換えます。

4a. 完了したら、ファイルメニューから名前を付けて保存

を選択します。

4b. 次に、[名前を付けて保存] ダイアログで次の操作を実行します。

前に作成した [スクリプト] フォルダー内にファイルを保存することを選択します。 保存の種類: すべてのファイルで選択します エンコード: Unicode で選択します ファイル名:”EmailAreltForUserLogins.ps1″ として入力します。 保存 をクリックしてメモ帳を閉じます。

5. 次のステップに進みます。

ステップ 2. Windows ロック解除時にスクリプトを実行するスケジュール タスクを Windows で作成します。

スクリプトを作成した後電子メール通知を送信するには、ユーザーが Windows にログインするためにマシンのロックを解除したときに通知が実行されるように設定します。

1. タスク スケジューラを開き、アクション メニューから タスクの作成 を選択します。

2. [タスクの作成] ウィンドウの 全般 タブで次の操作を行います。

2a. タスクの名前を入力します (例:”SendEmailOnUnlock”)

2b. 最高の権限で実行する

2c. [ユーザーまたはグループの変更] をクリックします

2d. [ユーザーまたはグループの選択] ウィンドウで、オブジェクトに「管理者」と入力します。名前を入力し、OK

をクリックします。

3.トリガー タブを選択し、新規

をクリックします。

3a. [新しいトリガー] ウィンドウで、任意のユーザーに対して [ワークステーションのロック解除時] を選択し、OK

4. [アクション] タブを選択し、[新規] をクリックします。

4a。 [新しいアクション] ウィンドウで次の操作を行って、OK をクリックします。

プログラム/スクリプトフィールドに「powershell.exe」と入力します。 引数の追加フィールドに、以下のテキストをコピーして貼り付けます: -ExecutionPolicy Bypass-File”C:\Windows\System32\Scripts\EmailAeltForUserLogins.ps1″-WindowStyle Hidden

5. 次に条件を選択します。

6. 最後に [設定] タブを選択し、以下を選択して [OK] をクリックします。

オンデマンドで実行されるタスク スケジュールされた開始に失敗した後、できるだけ早くタスクを実行します。 タスクが失敗した場合は、1 分ごとに再起動します。 1 時間を超えて実行されている場合はタスクを停止する 実行中のタスクが要求されても終了しない場合は、タスクを強制的に停止します。

9. タスクを作成したら、Windows + L キーを押してコンピューターをロックし、ロックを解除して Windows に再度ログインします。

9. ログイン後、PowerShell スクリプト (手順 1) で指定した受信者の電子メール アドレスに、どのユーザーがいつロックを解除してマシンにログインしたかを通知する電子メール アラートが届きます。また、ログイン イベントは、「Scripts」フォルダー内にある「UserLoginLog.txt」ファイルにも記録されます (例: この例では「C:\Windows\System32\Scripts\UserLoginLog.txt」)。*

以上です。このガイドが役に立ったかどうか、あなたの経験についてコメントを残してお知らせください。他の人を助けるために、このガイドを「いいね!」して共有してください。

この記事が役に立った場合は、寄付によるサポートをご検討ください。このサイトを無料で維持しながら他の人を支援し続けるという私たちの取り組みでは、たとえ 1 ドルでも大きな違いが生まれます: Konstantinos は Wintips.org の創設者兼管理者です。 1995 年以来、コンピュータおよびネットワークの専門家として個人および大企業に IT サポートを提供しています。彼は、Windows またはその他の Microsoft 製品 (Windows Server、Office、Microsoft 365 など) に関連する問題の解決を専門としています。 Konstantinos Tsoukalas による最新の投稿 (すべてを見る)

Categories: IT Info