2009-02-05 85 views
2

我試着在「本地系統」中運行服務:沒有工作。有沒有辦法允許Windows服務(非託管C++)在共享網絡文件夾上寫入文件?

我試着在一個擁有網絡共享文件夾權限的帳戶中運行服務:沒有用。

我是否必須爲此創建獨立應用程序並以具有網絡共享文件夾權限的用戶身份啓動此應用程序?

感謝,

尼克

+0

您是否嘗試使用映射驅動器或使用UNC名稱訪問共享文件夾?映射驅動器常常失敗,因爲服務不會在驅動器映射的登錄環境下運行。 UNC名稱是正確的路線。 – 2009-02-05 23:20:50

回答

0

你都應該情景工作工作。 「本地系統」是您可以授予共享權限的活動目錄中的計算機帳戶。我不知道爲什麼它不適合你。但是,這是你能做的。

  • 使用一個regualar帳戶(它更容易)。
  • 測試您的應用程序作爲控制檯應用程序。
  • 調整客戶端上的審計以將所有內容記錄到安全日誌中。它是從本地安全策略應用程序完成的。並在服務器上執行相同的操作(如果可以的話)。

這應該足以找到問題。

更新1:在迴應我認爲是錯誤的評論(但也許我是...)。註釋引用的服務(沒有網絡訪問的服務)稱爲本地服務帳戶(NT AUTHORITY \ LocalService)。它通常用於應用程序池的標識,但可用於服務。它與本地系統帳戶不一樣。

from msdn

當一個服務, 是一個域成員計算機上的 LocalSystem帳戶中運行,服務有 任何網絡訪問權限授予 計算機帳戶,或任何團體其中計算機帳戶爲 成員。

+0

實際上,它通常不適用於LocalSystem。 Windows從LocalSystem令牌剝離網絡特權以防止網絡訪問作爲安全措施。本地系統也不是AD中的真實賬戶。 – Nick 2009-02-06 06:37:00

+1

你可能是對的;這可能在Windows版本中發生了變化。在NT4中,LocalSystem沒有網絡訪問權限,但是在帳戶分割之前。我不確定默認訪問是什麼,但它看起來可能在2000+以上。 – Nick 2009-02-06 17:46:32

0

運行服務的帳戶具有共享文件夾確實工作在網絡上的權利。 。我有一個服務就是這麼做的。

它不一定會在Novell公司的Netware股份或其他「非標」股(我們曾與這個麻煩,在過去,但現在的Netware是幾乎無關。)

2

您應該使用UNC路徑(如Scott建議的),並在可以訪問網絡資源的明確帳戶下運行系統;這應該工作。

可能在LocalSystem下將不起作用,因爲這是Windows中的一個特殊用戶帳戶,只有本地系統訪問權限。LocalSystem在NT4中沒有網絡訪問權限,並且在2000年以後,它被視爲計算機帳戶用於網絡訪問目的,並受到本地安全策略中的訪問限制。有關更多信息,請參閱this page

簡短回答:使用明確的帳戶來運行有權訪問UNC路徑的服務。 :)

相關問題