簡體   English   中英

如何檢測Windows登錄事件?

[英]How to detect Windows Logon event?

您如何檢測Windows登錄事件?

以及如何從Windows服務啟動用戶登錄?

我正在嘗試編寫一段代碼來檢測登錄事件並自動記錄另一個事件。

您如何檢測Windows登錄事件?

如果存在任何機制,則可能在WMI中。 有許多WMI類。 Win32_LogonSessionWin32_LogonSession ; 通過Win32_LoggedonUserWin32_Account相關)。 如果Win32_LogonSession支持創建事件,那么這將是一種非常有效的方法。

以及如何從Windows服務啟動用戶登錄?

LogonUser API允許創建一個新的用戶令牌,然后您可以將該令牌用於線程或進程。 使用CreateProcessWithLogonW (及類似方法)可以創建用戶名和密碼,以使用其他帳戶(本質上是LogonUser加上CreateProcessWithTokenW )創建一個進程。

如果您正在開發Windows 2000 / XP,則可以使用JWA庫和Delphi創建Winlogon通知程序包。 他們使事情變得非常簡單:

http://blog.delphi-jedi.net/2008/05/27/winlogon-notification-package/

如果需要,還可以在CTRL + ALT + DEL屏幕上放置一個表單。 該表格在SYSTEM配置文件下運行。

您可以通過例如監視事件日志來檢測用戶登錄。 正如Richard所解釋的,您還可以從特定用戶開始一個過程。

但是,聽起來您正在嘗試執行其他操作,即交換已登錄用戶的登錄標識。 我認為這是不可能的。

Winlogon通知程序包已從Vista中刪除。

使用WTSRegisterSessionNotification或系統事件通知服務(SENS) 但是,您無法以交互方式登錄用戶,這將刪除登錄對話框並顯示用戶桌面。 這是通過winlogon使用某些注冊表項完成的。 LogonUser僅給您一個令牌,您可以使用該令牌來模擬用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM