2012-01-03 2 views
0

내 응용 프로그램이 네트워크의 원격 서버에있는 기본 C $ 공유에 연결할 수 있는지 확인해야합니다. 누구든지이 일을 할 수있는 정말 총알 같은 방법이 있습니까? 처음에 나는이 같은 일을했다 :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) 

을하지만이 자격 증명을 제공 할 수 있어야하고, 등등 내가 요구를 사용하는 무엇이든 방법을 반환하는 데 시간이 너무 오래 걸릴 때때로 flakey하고 놀 수 모든 가능한 경우 경우 연결이 실패합니다. 왜 실패했는지 알아야합니다.

답변

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

dir.exists 그러면 연결할 수 있는지 알려줍니다.

이렇게하면 프로그램을 실행 한 계정으로 연결을 시도합니다. 다른 자격 증명이 필요하면 가장 (Impersonation)을 조사해야 할 수 있습니다.

pInvoke를 통해 windows 함수를 직접 호출 할 수는 있지만 더 복잡해집니다. 보기는 여기에서 찾아 낼 수있다. C#: How to logon to a share when using DirectoryInfo

+0

감사합니다. 이것은 작업 그룹 환경에서 실행될 때가 있고 자격 증명이 각 시스템마다 다를 수 있다는 점을 제외하면 작동합니다. 나는 당신의 연결을 계속 파고들 것이다 ... –