我試着在「本地系統」中運行服務:沒有工作。有沒有辦法允許Windows服務(非託管C++)在共享網絡文件夾上寫入文件?
我試着在一個擁有網絡共享文件夾權限的帳戶中運行服務:沒有用。
我是否必須爲此創建獨立應用程序並以具有網絡共享文件夾權限的用戶身份啓動此應用程序?
感謝,
尼克
我試着在「本地系統」中運行服務:沒有工作。有沒有辦法允許Windows服務(非託管C++)在共享網絡文件夾上寫入文件?
我試着在一個擁有網絡共享文件夾權限的帳戶中運行服務:沒有用。
我是否必須爲此創建獨立應用程序並以具有網絡共享文件夾權限的用戶身份啓動此應用程序?
感謝,
尼克
你都應該情景工作工作。 「本地系統」是您可以授予共享權限的活動目錄中的計算機帳戶。我不知道爲什麼它不適合你。但是,這是你能做的。
這應該足以找到問題。
更新1:在迴應我認爲是錯誤的評論(但也許我是...)。註釋引用的服務(沒有網絡訪問的服務)稱爲本地服務帳戶(NT AUTHORITY \ LocalService)。它通常用於應用程序池的標識,但可用於服務。它與本地系統帳戶不一樣。
當一個服務, 是一個域成員計算機上的 LocalSystem帳戶中運行,服務有 任何網絡訪問權限授予 計算機帳戶,或任何團體其中計算機帳戶爲 成員。
你或許可以使用模擬來得到你所需要的憑據: http://msdn.microsoft.com/en-us/library/aa376391(VS.85).aspx
運行服務的帳戶具有共享文件夾確實工作在網絡上的權利。 。我有一個服務就是這麼做的。
它不一定會在Novell公司的Netware股份或其他「非標」股(我們曾與這個麻煩,在過去,但現在的Netware是幾乎無關。)
您應該使用UNC路徑(如Scott建議的),並在可以訪問網絡資源的明確帳戶下運行系統;這應該工作。
它可能在LocalSystem下將不起作用,因爲這是Windows中的一個特殊用戶帳戶,只有本地系統訪問權限。LocalSystem在NT4中沒有網絡訪問權限,並且在2000年以後,它被視爲計算機帳戶用於網絡訪問目的,並受到本地安全策略中的訪問限制。有關更多信息,請參閱this page。
簡短回答:使用明確的帳戶來運行有權訪問UNC路徑的服務。 :)
您是否嘗試使用映射驅動器或使用UNC名稱訪問共享文件夾?映射驅動器常常失敗,因爲服務不會在驅動器映射的登錄環境下運行。 UNC名稱是正確的路線。 – 2009-02-05 23:20:50