2011-03-07 42 views
0

我多臺計算機上安裝Windows服務。我必須以本地管理員身份登錄,因爲用戶沒有本地管理員權限。現在問題是我的計算機上有本地管理員權限,它記錄我的用戶名就好了,但在我必須從Admin it Logs Administrator安裝的計算機上。我正在使用WMI來獲取此信息。Windows服務記錄錯誤的用戶名

ConnectionOptions oConn = new ConnectionOptions(); 
     System.Management.ManagementScope oMs = new System.Management.ManagementScope("\\\\localhost", oConn); 


     System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery("select * from Win32_ComputerSystem"); 
     ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery); 
     ManagementObjectCollection oReturnCollection = oSearcher.Get(); 

     foreach (ManagementObject oReturn in oReturnCollection) 
     { 
      userName = oReturn["UserName"].ToString().ToLower().Split('\\')[1]; 
     } 

這真讓我困惑。他們已登錄,但它顯示管理員?任何人都可以澄清爲什麼會發生這種情況。

回答

3

如果您希望該服務登錄你的名字,你需要使用您的憑據進行安裝。

服務正在運行作爲他們已經安裝了的用戶 - 他們不知道有關登錄的用戶(如果有多個用戶在同一時間登錄 - 哪一個呢?他們應該被記錄)。

Windows服務的全部意義在於,它運行,而不需要任何人登錄。

+0

有點兒什麼,我有什麼想法,但它的本地系統下運行。所以我認爲它在當前登錄的帳戶下運行,而不是安裝它的帳戶。 – Jesse 2011-03-07 20:05:35

+0

@Jesse - 當您安裝一項服務時,您提供了一個用戶名和密碼 - 這些用於運行該服務。 – Oded 2011-03-07 20:07:18