.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 在 $Computer 上登錄”
3. 然後按如下方式修改腳本文本:
將“[email protected]”替換為您的發件人電子郵件地址。將“senderpassword”替換為發件人的電子郵件地址密碼。將“[email protected]”替換為收件人的電子郵件地址。將“ServerName”替換為您的 Windows 服務器名稱或計算機名稱。 將“mail.domain.com”替換為您的 SMTP 服務器的名稱。如果需要,將“587″替換為 SMTPS 服務器的端口。 如果您在其他位置創建了“Scripts”文件夾,請將“C:\Windows\System32\Scripts”替換為“Scripts”文件夾的完整路徑。
4a。 完成後,從文件菜單中選擇另存為。
4b。 現在在“另存為”對話框中執行以下操作:
選擇將文件保存到您之前創建的“Scripts“文件夾中。選擇保存類型: 所有文件 選擇編碼:Unicode 輸入為文件名:“EmailAleltForUserLogins.ps1″ 單擊保存,然後關閉記事本。
5. 繼續執行下一步。
步驟 2. 在 Windows 中創建計劃任務,該任務將在 Windows Unlock 上運行腳本。
創建要發送的腳本後電子郵件通知,將其設置為在用戶解鎖計算機並登錄 Windows 時運行。
1. 打開任務計劃程序並在操作菜單中選擇創建任務。
2. 在“創建任務”窗口中的常規選項卡中執行以下操作:
2a. 輸入任務名稱(例如“SendEmailOnUnlock”)
2b. 選擇以最高權限運行
2c. 單擊更改用戶或組
2d。 在“選擇用戶或組”窗口中,在對象名稱字段中輸入“管理員“,然後單擊確定。
3。 選擇觸發器選項卡,然後點擊新建
3a。 在“新觸發器”窗口中,為任何用戶選擇在工作站解鎖,然後單擊確定。

4. 選擇操作選項卡,然後單擊新建。
4a。 在“新操作”窗口中執行以下操作,然後單擊確定:
在程序/腳本字段中,鍵入“powershell.exe” 在添加參數字段中,複製&粘貼以下文本:-ExecutionPolicy Bypass-File”C:\Windows\System32\Scripts\EmailAleltForUserLogins.ps1″-WindowStyle Hidden
5. 現在選擇條件選項卡,然後取消選中所有設置。
6. 最後選擇設置選項卡,選擇以下內容,然後單擊確定:
允許任務按需運行 在錯過計劃啟動後儘快運行任務。 如果任務失敗,則每 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 的最新帖子(查看全部)