Windows-Server-2003

如何查看windows域使用者狀態?

  • July 23, 2009

我現在有一台執行 Windows 2000 的伺服器,很快就會升級到 2003。有沒有辦法檢查使用者狀態和電腦狀態?

例如,

  • 如果使用者空閒
  • 如果 PC 被鎖定
  • 使用者登錄了多長時間

如果它不能在 Windows 2000 中工作,那也沒關係,但如果能,那就太好了。

謝謝你的幫助 :)

在伺服器或客戶端作業系統中,沒有內置功能可以執行您要求的任何事情,(並且您不會在伺服器上看到任何從 W2K 遷移到 W2K3 的新功能)。你將不得不編寫一些程式碼來獲得你想要的東西。

對於伺服器電腦,“登錄”並不意味著您認為它會做什麼。客戶端電腦上的“互動式”登錄肯定有開始時間和結束時間。從客戶端到遠端伺服器電腦的“登錄”將取決於客戶端在做什麼。從客戶端到伺服器的終端服務登錄是“互動式的”,並共享客戶端自己的“互動式”會話的屬性。

我假設您可能想知道客戶端電腦上“互動式”會話的持續時間。您可以查看查詢Win32_LogonSession WMI 類作為獲取該資訊的一種方式。

我認為您正在考慮可以使用伺服器電腦上的事件日誌來確定客戶端電腦何時通過“互動式”登錄。你不能。

執行初始域身份驗證或從客戶端電腦訪問伺服器電腦上的“映射”“驅動器”是“網路”登錄,與登錄和註銷相關的時間將與客戶端開始訪問資源和當客戶端(或伺服器)因不活動而關閉連接時(或使用者客戶端會話的“取消映射”或“互動式”註銷)。

您不應該認為“域登錄”或 Microsoft 文件和列印會話(如 SSH 或 TELNET 會話)具有從使用者“登錄”開始到使用者“註銷”結束的固定持續時間。在客戶端電腦的正常使用過程中,與伺服器電腦的連接可能會時斷時續。使用伺服器端事件日誌來確定客戶端電腦上“互動式”會話的持續時間並不好。

這裡有一些範常式式碼可以檢測工作站是否被鎖定:http://www.codeproject.com/KB/vb/DetectWindowslockunlock.aspx 同樣,您可以將其從 C# 改編為任何可以呼叫必要 API 的語言。

聽起來您想知道的其餘內容主要處於螢幕保護程序狀態。這是一篇 Microsoft 文章,描述了使用 Win32 API 呼叫檢查螢幕保護程序狀態(在範例中使用 VB,但您可以使用任何允許呼叫該 API 的語言):http: //support.microsoft.com/kb/ 315725

如果您將“空閒”定義為正在執行的螢幕保護程序,那麼您可以以同樣的方式獲得“空閒”。如果您對“空閒”有一些不同的定義,那麼您只能靠自己——作業系統不會幫助您。

引用自:https://serverfault.com/questions/44616