2012-10-26 43 views
2

我有一個winform,讓我使用此代碼啓用和禁用所有我8歲的網絡適配器:我怎麼給我的窗口服務管理員權限

protected override void OnStart(string[] args) 
    { 
     //start timer 
     SelectQuery query = new SelectQuery("Win32_NetworkAdapter","NetConnectionStatus=2"); 
     ManagementObjectSearcher search = new ManagementObjectSearcher(query); 
     foreach (ManagementObject result in search.Get()) 
     { 
      NetworkAdapter adapter = new NetworkAdapter(result); 

      adapter.Disable(); 
      enabled = false; 

     } 

     InternetCheckTimer.Start(); 
    } 

此代碼工作正常贏形式假設我正在使用管理員。我從來沒有寫過一個win服務,所以這個問題可能在其他地方,我可以使用installutill進行安裝,並將調試器附加到進程中,但是沒有中斷點。我已經試過啓動和停止進程,不能讓調試器附加,所以我可能會做錯了...現在我假設代碼正在運行,我太愚蠢,無法讓調試器工作。也就是說,我認爲我的代碼需要服務擁有像表單那樣的管理員才能工作。

對不起,如果這不清楚,我會盡我所能清除它,如果你需要更多的信息。

回答

0

對服務使用用戶名和密碼,並確保啓動該服務的用戶擁有應用程序運行所需的全部權限。 如果您可以控制服務,另一種可能性是使用模擬,請參閱:http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C

+0

我試過用戶,當服務啓動時,它要求輸入用戶名和密碼。它每次都回滾安裝,我是管理員: -/ – Contristo

+0

用戶使用SeServiceLogin的權利?管理員用戶的權限不是默認設置。 – ctescu

0

你可以嘗試幾個選項。

  1. 添加app.manifest
  2. 安裝窗口服務設置爲最高權限運行該服務許可後,你也可以爲登錄用戶設置用戶名和密碼。
-2

如何獲取完全管理員權限在Windows 7:

  1. 單擊開始
  2. 單擊計算機(您可能會發現桌面上的這個圖標)。
  3. 右鍵單擊安裝操作系統的硬盤圖標,然後單擊「屬性」。
  4. 單擊安全選項卡。
  5. 單擊高級選項卡。
  6. 單擊位於權限條目列表後面的更改權限按鈕。
  7. 屏幕上會出現一個新窗口;其中包含所有用戶帳戶的列表
  8. 選擇想要對Windows 7進行完全控制的用戶帳戶),然後單擊編輯按鈕。
  9. 現在,勾選標記爲「Total Control」的複選框,然後按OK。

你們都完成了!

+3

Totaly沒有回答這個問題 – Eun