我需要獲取在我的LAN中登錄特定機器的用戶名。建議我通過在C#.net窗口應用程序中傳遞機器名稱來獲取用戶名的最佳方法。同時考慮許可。C#.Net Windows應用程序 - 在我的NT中獲取記錄的用戶名
感謝
我需要獲取在我的LAN中登錄特定機器的用戶名。建議我通過在C#.net窗口應用程序中傳遞機器名稱來獲取用戶名的最佳方法。同時考慮許可。C#.Net Windows應用程序 - 在我的NT中獲取記錄的用戶名
感謝
大家好我得到了我的問題解決方案。我使用WMI來獲取用戶名。
try {
object[] objArr = new object[2];
ManagementScope ms = new ManagementScope("Path");
ms.Connect();
if (ms.IsConnected)
{
ObjectQuery Query = new ObjectQuery("SELECT * FROM Win32_Process WHERE Name='explorer.exe'");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(ms, Query);
foreach(ManagementObject objQuery in searcher.Get())
{
objQuery.InvokeMethod("GetOwner", objArr); // objArr[0] contains the userId and objArr[1] contains Domainname
userName = Convert.ToString(objArr[0]);
}
}
}
catch (System.Exception ex)
{
throw ex;
}
感謝
據我瞭解,你想遠程確定的人的用戶名登錄到多臺PC和Windows窗體應用呈現結果。
Windows沒有枚舉此信息的內置機制。
無論您最終選擇使用哪種機制,您可能都需要在正在掃描的PC上具有管理權限的用戶帳戶下運行掃描應用程序。
您可能會選擇模擬SysInternals命令PsLoggedOn的行爲,該命令檢查遠程計算機上的HKEY_USERS項。要找出誰連接到PC(即訪問共享),請使用NetSessionEnum API。
有關PsLoggedOn的更多信息可以在這裏找到:link text
//How about this:
string strUserName = WindowsIdentity.GetCurrent().Name;
那麼你可以做任何你想要與 「strUserName中」 變量做。請注意,如果有域名存在,它也包含域名。
是的,我想第二個「你想遠程確定登錄到許多PC的用戶的用戶名並將結果呈現在Windows窗體應用程序中嗎?」 – Sarathy 2010-07-17 17:32:41