2012-11-07 145 views
1

我在創建有權訪問網絡磁盤上的文件的服務時遇到問題。對windows服務的網絡訪問

服務必須具有管理權限,並且它將由沒有管理員權限的用戶運行。

我送路徑UNC 和文件由服務見過,但它返回ACCES_DENIED錯誤,當試圖打開或做網絡驅動器上的任何東西。

當我將我的服務作爲服務器運行時,一切正常。

我試圖找到答案,但無處不在,我只能找到部分答案,根本沒有幫助我。

========

,我讀了標準的服務記錄爲系統無法訪問網絡。 所以我試圖登錄ID爲

  1. NetworkServiceLocalService 它沒有工作。作爲其中一個用戶運行後,我的服務無法將文件保存在c:
  2. 某種管理帳戶。但我沒有設法成功。
  3. 實際登錄的用戶。 我不知道如何獲取當前用戶的密碼。 如果沒有管理員權限,這仍然不適用。

========

請告訴我,我該怎麼辦? 有很多使用某種網絡資源的服務。他們如何做到這一點?

回答

2

您需要將您的服務配置爲以具有足夠權限的用戶身份運行。在這種情況下,您正在尋找網絡共享的權利。通常情況下,這需要具有適當權限的域用戶。通常你會要求你的網絡管理員爲此目的創建一個專用的用戶帳戶。

您似乎在關於服務如何工作的一些虛假信息下工作。你談論的是在登錄用戶的帳戶下運行服務。請記住,服務在沒有用戶登錄時運行。請記住,在任何時候都可能有多個記錄用戶。

+0

Thx for anwser。 當我創建服務時,我指定它應該運行的帳戶。 所以只想到我需要的是具有訪問網絡驅動器和管理員權限。 當我在NT AUTHORITY \ NetworkService下運行它時,我可以訪問網絡,但我沒有訪問f.e c:/ Program Files,所以我假設這個用戶沒有管理員權限。 那麼唯一的辦法是創建單獨的管理員帳戶指定此服務? – makefun

+0

我這麼認爲。這當然是最好的解決方案。事實上,在我的網絡中,「NetworkService」無法看到任何網絡共享。 –

+0

待審查。 當我在Win7上運行它時,它甚至可以在SYSTEM帳戶(它具有網絡訪問權)上運行。 它只有在WinXp上access_denied,不幸的是它也需要工作。 我認爲, 是否有可能不爲此特定服務創建整個新帳戶,而是使用安裝服務的帳戶。(我們知道它將擁有我們需要的所有權限) 如果是,我如何傳遞給當前活動用戶的CreateService函數憑證。因爲顯然它可以有不同的名稱和密碼。所以它一定是通用的方式來做到這一點? – makefun