0

C# で記述された Windows サービス内のサーバーにネットワーク ドライブをマップしようとしています。以下のコードでnet.exeを使用してみました

        System.Diagnostics.Process p = new System.Diagnostics.Process();
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.CreateNoWindow = true;
        p.StartInfo.RedirectStandardError = true;
        p.StartInfo.RedirectStandardOutput = true;

        p.StartInfo.FileName = "net.exe";
        p.StartInfo.Arguments = " use " + DriveLetter + Path + " " + Password + " /user:" + Username;
        p.Start();
        p.WaitForExit();

引数は基本的に「 use X: \\192.45.xx.xxx\sharename "xxxx" /user: domainname\username」に変換されます

これを実行すると、「ネットワーク名が見つかりません」というエラーが表示されます。アクセスしようとしているサーバーは、アプリが置かれているドメインとは異なるドメインにあるため、そのエラーが発生すると思います。

これを乗り越えて、共有フォルダーを別のドメインからローカルコンピューターにマップする方法を知っている人はいますか?

助けていただければ幸いです

ありがとうカーシック

4

1 に答える 1

1

引数は基本的に「 use X: \192.45.xx.xxx\sharename "xxxx" /user: domainname\username」に変換されます

他のすべてが正しいと仮定すると、このエラーは、IP アドレスの前にバックスラッシュを 1 つ指定すると発生します。バックスラッシュは 2 つ必要です。

ここに画像の説明を入力

アップデート

あなたのコメントに応えて、明らかに、あなたはこの他のドメインのリソースにアクセスするために認証されています. 広く公開されていない限り、システム アカウントで実行されている可能性がある Windows サービスがこれらのリソースにアクセスできる可能性は低いです。

トラブルシューティングの手順として、サービスを自分のアカウントで実行するように変更し、違いが生じるかどうかを確認してください。

于 2011-09-19T02:36:00.873 に答える