2012-01-03 46 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會告訴你它是否能夠連接。

這將嘗試連接作爲程序運行的帳戶。如果您需要不同的憑據,您可能需要查看模擬。

你可以通過pInvoke直接調用windows函數,但這會變得更加複雜。一個例子可以在這裏找到。 C#: How to logon to a share when using DirectoryInfo

+0

謝謝。這可以工作,除非有時候這會在工作組環境中運行,並且每臺機器的憑據可能不同。儘管如此,我會繼續探索你的鏈接...... – 2012-01-03 20:00:09