我需要验证我的应用可以连接到网络上远程服务器上的默认C $共享。有没有人有一个真正的bulletprrof方式我可以做到这一点?最初我做的是这样的事情:
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)
但是这有时候会变得很糟糕,并且需要花费很长时间才能返回等等。无论我使用哪种方法都需要能够提供凭据,如果可能的话,当连接失败时我需要知道它失败的原因。
答案 0 :(得分: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