2011-09-23 57 views
2

我需要知道如何遠程獲取計算機主要用戶的名稱和域。我定義主要用戶最好是用戶登錄次數最多,或者一段時間內最長的時間。或者,如果這是不可能的,就像用戶當前/最後登錄一樣。如何獲得遠程計算機的「主要」用戶

目前,我掃描一個活動的Directoy爲一個OU中的所有計算機對象。然後,我通過它們循環,並嘗試使用WMI獲取用戶的名稱。 我查看Win32_ComputerSystem以查看UserName是否返回值。如果不是這種情況,我查看Win32_LogonSession並獲取等於2或10的所有LogonTypes的用戶名。如果這不返回任何值或多個值,則我放棄結果並在Win32_Process中查找所有非系統進程,並定義主要用戶是大多數進程正在運行的用戶。

有幾個問題,我的方法:

  1. Win32_ComputerSystem - 用戶名往往是空。
  2. Win32_LogonSession通常返回多個值或沒有值。只能有1個主要用戶。
  3. Win32_Process看起來有點荒謬,因爲這隻會返回大多數進程的用戶,很可能不是主要用戶。
  4. 如果當前沒有用戶登錄,則在Win32_Process中查找時不返回任何值,並且這3個步驟中沒有一個可能返回值。

我的3種方法可能會讓我成爲當前用戶。有誰知道一種獲得主要用戶的方法嗎?或者至少有一個更好的方式來獲得當前。不一定使用WMI。

感謝

回答

0

如果您在遠程計算機上的管理員權限和共享訪問 您可以使用計算機管理,並選擇 連接到其他電腦,看看哪些用戶和組是該計算機上。 或者,如果遠程計算機具有該功能,則可以使用TS遠程管理或遠程桌面。

使用psexec.exe(www.sysinternals.com)到遠程PC運行命令:

psexec \\pc1 net user | find /i "Steve" 
psexec \\pc1 c:\tool\psloggedon | find /i "Steve" 

1)找到,如果約翰·布萊克對PC1的帳戶。

2)查找他是否當前登錄。 使用psloggedon.exe表示uis是另一個SysInternals工具。

入住這也:http://www.wisesoft.co.uk/scripts/vbscript_display_username_of_user_on_a_remote_computer.aspx

另外如果你想使用遠程計算機的IP,然後轉到命令行的類型nbtstat -A <IP of remote computer>這將返回所有找到的遠程計算機上當前登錄用戶的用戶名在計算機上註冊的NetBIOS名稱,其中之一是用戶名。

相關問題