2009-04-09 32 views
2

是否可以查詢域用戶當前登錄的域計算機的IP地址(或計算機名稱)列表?是否可以查詢當前由特定域用戶登錄的IP地址(或機器名稱)列表?

問題"Getting logged on user’s name with or without domain in Windows"接近,只有我想找到相反的。

由於我對Active Directory內部知識的缺乏,我問了這種可能性。我的直覺是,Active Directory只知道域用戶何時(以及可能在哪裏)進行最後的認證,並且不會跟蹤當前會話或註銷。

提供此解決方案的任何語言都是可接受的答案,但.NET解決方案是首選。更重要的是,我想知道這是否可能。

回答

1

我不相信有一個地方可以獲得這些信息。你可以找出用戶最後一次登錄以及從AD認證了哪些DC,但問題是,當你登錄第一個DC來響應時,就是經過認證的服務器。那麼DC會將此信息記錄到其事件日誌中,該事件日誌駐留在每個主機上,而不是駐留在中央系統中。你可以看到更多關於這從這些來鏈接: http://support.microsoft.com/kb/175062http://www.tartoos.com/HomePage/Rtable/ComputerSchool/Networking/Net41.htm SO這樣說我想你可以從用戶賬戶獲取來自的lastLogonTimestamp AD屬性上次登錄,然後從所有的DC在查詢中的事件日誌域來找出哪個DC是通過身份驗證以及從哪個系統進行身份驗證的。所有這些只會告訴最後一個系統......不是所有可以登錄的系統。再次,您可以將這些結果與可從DC事件日誌中提取的退出時間進行比較......但實際上,這似乎是一個主要的矯枉過正的行爲,並且您將有更好的運氣編寫登錄/註銷腳本,並記錄了這些事件到一箇中央報告系統,您可以將其用於未來使用。

這裏是另一種選擇,你可以查詢WINS服務器輪詢的登錄信息,它有一個用戶,它應該返回回inwhich它相信,登錄到系統中,看到這個帖子瞭如何做到這一點:

http://www.visualbasicscript.com/m_56230/tm.htm

基本命令是:"NETSH WINS SERVER \\WinsServerName SHOW NAME UserName 03"

如果你正在使用某種形式的資產/系統管理軟件,如桌面管理局,Altiris公司,等等,那麼你可能有更多的運氣探索在桌面代理記錄這些信息,因爲他們通常會這樣將這些信息也記錄到一些SQL表中。

相關問題