2012-01-03 6 views
0

私のアプリがネットワーク上のリモートサーバーのデフォルトのC $共有に接続できることを確認する必要があります。誰も私がこれを行うことができる本当にbulletprrofの方法を持っていますか?当初、私はこのような何かやっていた:UNC接続を確認する

Dim ProcessStartInfo As New System.Diagnostics.ProcessStartInfo 
ProcessStartInfo.FileName = "net" 
ProcessStartInfo.Arguments = "use \\" & strComputer & "\c$ /USER:" & strUsername & " " & strPassword 
ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden 
System.Diagnostics.Process.Start(ProcessStartInfo) 

をしかし、これは、時にはフレーク状こととハングアップすることができ、ときに私は、資格情報とのすべての可能な場合を供給できるようにするニーズを使用どのような方法などを返すために時間がかかりすぎます接続が失敗したなぜ私はそれが失敗したか知る必要があります。

答えて

1
Dim dir As New IO.DirectoryInfo("\\10.101.1.200\c$") 

dir.existsは、接続できたかどうかを伝えます。

これは、プログラムが実行されたアカウントとして接続しようとします。異なる資格情報が必要な場合は、偽装を調べる必要があります。

windows関数をpInvoke経由で直接呼び出すことはできますが、それはもっと複雑になります。例がここにあります。 C#: How to logon to a share when using DirectoryInfo

+0

ありがとうございました。これは、ワークグループ環境で実行され、資格が各マシンごとに異なる場合を除いて、機能します。私はあなたのリンクを突き刺していきます... –

関連する問題