2011-08-10 56 views
0

我必須執行一個在用戶登錄前啓動的Windows服務。這也意味着這個服務必須有自己的用戶名/密碼。那麼如何在不登錄的情況下遠程打開網絡共享?在會話開始之前通過UNC路徑訪問Windows共享

我在Windows域中,目標是使用一些配置的憑據來訪問我需要的遠程文件。

你有什麼想法嗎?我無法找到任何可以方便地訪問到服務器

編輯:對不起,我犯了一個錯誤,在客戶端計算機不在域中,服務器:(

+0

查看此答案:http://stackoverflow.com/questions/5433570/access-a-remote-directory-from-c/5433640#5433640瞭解如何在遠程共享上進行身份驗證。 –

+0

您是否安裝了具有網絡依賴性的服務?您使用的是域帳戶的用戶名/密碼?如果這兩個答案都是肯定的,您應該可以使用unc路徑訪問網絡共享。 –

回答

4

一般來說你會做的是服務設置爲下一個指定用戶(域)帳戶下運行,並給遠程共享用戶訪問,然後爲訪問該共享文件就像任何其他即

File.ReadAllText(@"\\SomeMachine\SomeShare\Something.txt"); 
+0

事實上,我犯了一個錯誤,執行服務的計算機不是域成員,而是共享的服務器。所以我不幸地不能使用服務的用戶,我必須假裝它。 – J4N

+0

另一種選擇是將用戶帳戶添加到具有共享的計算機(非域用戶帳戶) - 授予他們對共享的訪問權限,將另一用戶添加到運行該服務的計算機(相同的用戶名和密碼)。然後將該服務設置爲在該用戶帳戶下運行。如果你這樣做,共享的身份驗證應該「工作」 – iamkrillin