2012-02-08 91 views
2

我需要運行位於我的域中的網絡驅動器上的exe文件。該驅動器已成功連接到我的PC作爲「M:\」,但我知道Process.Start(字符串,字符串...)需要在網絡共享上的凝視進程時有文件的URL路徑。Process.Start exe文件作爲另一個用戶的網絡共享

這是我的代碼:

   string user = "user"; 
       string password = "Qwerty1"; 
       string domain = "nwtraderds"; 
       string open = "file://myshare\dir1\dir2\dir3\test.exe"; 

       string PwString = password; 

       char[] PasswordChars = PwString.ToCharArray(); 
       SecureString Password = new SecureString(); 
       foreach (char c in PasswordChars) 
        Password.AppendChar(c); 

       System.Diagnostics.Process.Start(open, user, Password, domain); 

有趣的是:

   System.Diagnostics.Process.Start(open); 

工作正常。 我已經用完了想法,有人可以幫我嗎?

+0

這可能是一個愚蠢的問題,但你嘗試過'\\ myshare \ dir1 \ dir2 \ dir3 \ test.exe'而不是'file:// myshare \ dir1 \ dir2 \ dir3 \ test.exe'嗎? – 2012-02-08 07:23:07

+0

@Eben Roux認真地說,我不知道該說些什麼。工程就像一場爆炸! 我很確定我嘗試過,但是我必須在整個路徑中有一些錯誤的目錄。 用於Process.Start方法(字符串,字符串,SecureString,字符串)的msdn站點[鏈接](http://msdn.microsoft.com/en-us/library/sxf2saat.aspx) – Germanos 2012-02-08 07:46:29

回答

1

雖然網絡共享已經安裝,但Windows不會接受使用不同用戶從同一桌面訪問它 - 您甚至可以自己嘗試:只需用user1裝入它,然後嘗試安裝相同的共享在不同的用戶(用戶2)的時間(並行),它仍然安裝(相同的機器,相同的Windows資源管理器!)。

UPDATE:

file://myshare\dir1\dir2\dir3\test.exe將無法​​正常工作!

您要麼使用\\myserver\myshare\dir1\dir2\dir3\test.exe(不知道這是否有效!)或者您使用驅動器號M:\\dir1\dir2\dir3\test.exe

+0

與此想法一起,如果我將輸入到用戶,密碼和域變量,我應該工作的真正的憑據?我試過這個,它仍然顯示「系統找不到指定的文件」。 – Germanos 2012-02-08 07:26:25

+0

@Germanos在上面看到我的更新。 – Yahia 2012-02-08 07:42:59

+0

是的,謝謝,Eben Roux幫助我獲得了同樣的結果:)感謝你們的幫助和歡呼。 我很困惑,因爲MSDN說: 「當可執行文件位於遠程驅動器上時,必須使用統一資源標識符(URI)而不是鏈接驅動器號來標識網絡共享。」 – Germanos 2012-02-08 07:54:19

相關問題