2012-02-08 90 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

相关问题