2010-07-21 138 views
1

我正在使用Win32_NetworkLoginProfile或Win32_Account獲取系統用戶列表。調用這些對象會返回很多用戶,一些本地用戶和一些屬於某個域(如果系統是域的一部分)。使用WMI獲取當前用戶名

有沒有辦法使用WMI獲取當前用戶名? 如果是,如何?

此外,使用Win32_Account我可以檢查我列出的用戶名是本地還是域的一部分。有沒有辦法爲當前用戶實現相同的目標?

該代碼爲Windows XP或更新版本的C語言。

謝謝。

回答

0

有沒有辦法使用WMI獲取當前用戶名?

使用Win32_ComputerSystem.UserName屬性。它返回用戶名和域名,即Domain\User。如果您只需要用戶名,只需根據\從該字符串中提取它即可。

此外,使用Win32_Account我可以檢查我列出的用戶名是本地或域的一部分。有沒有辦法爲當前用戶實現相同的目標?由\字符

  • 斯普利特Win32_ComputerSystem.UserName值分別送域名以及用戶名:

那麼,你可以做這樣的事情。

  • 獲取與指定的域和用戶名對應的Win32_Account對象。這些都是Win32_Account類的關鍵屬性,所以不是運行通用SELECT查詢,使用IWbemServices::GetObject由其路徑檢索特定的實例:

    Win32_Account.Domain="<domain>",Name="<username>" 
    
  • 檢查所獲得的Win32_Account對象的LocalAccount財產。