2012-02-08 7 views
2

私のドメインのネットワークドライブにあるexeファイルを実行する必要があります。ドライブは私のPCに「M:\」として正常に接続されていますが、Process.Start(文字列、文字列...)がネットワーク共有上にあるプロセスを起動するときにファイルへのURLパスを持つ必要があることはわかっています。Process.別のユーザーとしてネットワーク共有に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

これは愚かな質問かもしれませんが、 'file:// myshare \ dir1 \ dir2 \ dir3 \ test.exe'の代わりに' \\ myshare \ dir1 \ dir2 \ dir3 \ test.exe'を試しましたか? –

+0

@Eben Roux真剣に、私は何を言うべきか分からない。 BLASTのように働きます! 私はこれを試したと確信していますが、私はパス全体に間違ったディレクトリを持っていたに違いありません。 Process.Startメソッド(String、String、SecureString、String)のmsdnサイト[リンク](http://msdn.microsoft.com/en-us/library/sxf2saat.aspx) – Germanos

答えて

1

ネットワーク共有がすでにマウントされている場合、Windowsは別のユーザーと同じデスクトップからアクセスすることはできません。自分で試すこともできます。user1でマウントしてから、別のユーザ(user2)がまだマウントされている間(同じマシン、同じWindowsエクスプローラ!)に(パラレルに)実行されます。

UPDATE:

このfile://myshare\dir1\dir2\dir3\test.exeは動作しません!

\\myserver\myshare\dir1\dir2\dir3\test.exe(これが動作すればわかりません)またはドライブ文字M:\\dir1\dir2\dir3\test.exeを使用してください。

+0

このアイデアは、ユーザー、パスワード、ドメイン変数を入力すると、実際の資格情報が有効になりますか?私はこれを試して、それでも "指定されたファイルが見つかりません"と表示されます。 – Germanos

+0

@Germanos上記の私の更新を参照してください。 – Yahia

+0

はい、ありがとう、Eben Rouxは同じ結果で私を助けました:)助けをあなたのおかげで両方のおかげで、歓声。 MSDNによると、私は混乱しています: "実行可能ファイルがリモートドライブにある場合、リンクされたドライブ文字ではなく、ユニフォームリソース識別子(URI)を使用してネットワーク共有を識別する必要があります。 – Germanos

関連する問題