我需要知道如何遠程獲取計算機主要用戶的名稱和域。我定義主要用戶最好是用戶登錄次數最多,或者一段時間內最長的時間。或者,如果這是不可能的,就像用戶當前/最後登錄一樣。如何獲得遠程計算機的「主要」用戶
目前,我掃描一個活動的Directoy爲一個OU中的所有計算機對象。然後,我通過它們循環,並嘗試使用WMI獲取用戶的名稱。 我查看Win32_ComputerSystem
以查看UserName是否返回值。如果不是這種情況,我查看Win32_LogonSession
並獲取等於2或10的所有LogonTypes的用戶名。如果這不返回任何值或多個值,則我放棄結果並在Win32_Process
中查找所有非系統進程,並定義主要用戶是大多數進程正在運行的用戶。
有幾個問題,我的方法:
Win32_ComputerSystem
- 用戶名往往是空。Win32_LogonSession
通常返回多個值或沒有值。只能有1個主要用戶。- 在
Win32_Process
看起來有點荒謬,因爲這隻會返回大多數進程的用戶,很可能不是主要用戶。 - 如果當前沒有用戶登錄,則在
Win32_Process
中查找時不返回任何值,並且這3個步驟中沒有一個可能返回值。
我的3種方法可能會讓我成爲當前用戶。有誰知道一種獲得主要用戶的方法嗎?或者至少有一個更好的方式來獲得當前。不一定使用WMI。
感謝