2010-11-16 67 views
0

有沒有一種可靠的方式來確定登錄到系統的最後一個用戶名?我已經看過LsaEnumerateLogonSessions()和LsaGetLogonSessionData(),但是他們需要在Vista和更高版本上提升(我非常想避免)。 WMI有同樣的問題(大概是在幕後調用Lsa)。WIN32 - 最後一位用戶登錄

我也看過HKLM中的「SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Authentication \ LogonUI \ LastLoggedOnUser」,但在測試中不可靠並且沒有更新。

我真的只對控制檯登錄感興趣,而不是快速用戶切換或TS登錄。

我已閱讀過各種文章,但尚未提出一個很好的解決方案。

+0

XY問題。 Y是「我很難突破登錄安全層」。什麼是X? – 2010-11-16 14:42:57

+0

我不想突破安全層。我試圖找出是否有辦法讓我的應用程序在不需要提升的情況下運行。不知道如何找到最後一個登錄用戶的用戶名(只有用戶名)會帶來很大的安全風險,特別是如果應用程序已經在運行? – 2010-11-16 15:18:30

+1

我想了解有關您的應用的更多信息以及問題出現的原因。基於上述情況,很難想象爲什麼知道誰最後登錄會幫助你的應用做任何非常明智的事情。 – 2010-11-16 16:32:53

回答

0

您可能能夠使用Audit Logon events - 這需要您的服務擁有用戶訪問權限才能看到安全日誌,但不能成爲完整的管理員。

Eventid 528指示登錄的人,你必須找到最近的這個實例。

+0

謝謝。這看起來像我唯一的答案,我會這樣做,並回落到註冊表,如果審計沒有啓用。令人沮喪的是,除了窗戶以外的其他每個平臺都可以讓您獲得這些信息而無需提升訪問權。 – 2010-11-19 11:12:52

相關問題