Windows 2003 서버에 대한 테스트 연결을 자동화하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1273717

  •  16-09-2019
  •  | 
  •  

문제

VM Windows 2003 서버에 대한 RDP 연결을 테스트하기위한 앱을 작성하고 있습니다. 일반적인 실패 모드는 서버에서 실행되는 일부 코드가 루프로 연결되어 RDP 연결 및 대부분의 다른 유형의 연결을 방지하는 것입니다. 이런 일이 발생하면 여전히 서버를 핑 할 수 있으며 괜찮은 것처럼 보이지만 다른 많은 일을 할 수는 없습니다.

C#, .NET 3.5 및 RDP 버전 6.1을 사용하고 있습니다. ActiveX RDP 클라이언트 (MSTSC ..)를 시작하려고 시도했지만 인간의 개입이 필요하며 잘 작동하지 않습니다. 여기에서 Expert SexChange의 가능한 솔루션이있는 또 다른 게시물을 찾았지만 해당 솔루션은 Java와 Net :: Telnet Library를 사용합니다.

.NET 캠프의 아이디어가 있습니까?

감사합니다, 데이브

도움이 되었습니까?

해결책

문서화되지 않은 것을 사용할 수 있습니다 winstationserverping 터미널 서버에 대한 연결을 확인하는 API. 기본적 으로이 기능이 성공하면 터미널 서버를 사용할 수 있음을 의미합니다.

이것은 함수의 (델파이) 서명 (winsta.dll에서 내보내기)입니다.

function WinStationServerPing(hServer: HANDLE): BOOLEAN; stdcall;

다른 팁

a tcpclient 연결을 받고 연결을 끊고 보고서를 연결하면 보고서 실패가 거부 된 경우 3389 (또는 구성된 포트)의 서버에 연결하려고합니다.

 class Program
    {
       static void Main(string[] args)
        {
            RDPAvailable("someserver", 3389);
        }
        public static bool RDPAvailable(string remoteHost, int port)
        {
            bool available=false;
            try
            {
                TcpClient client = new TcpClient(remoteHost, port);
                client.Close();
                available = true;
            }
            catch (Exception ex)
            {
                //do some logging or whatnot 
            }
            return available;
    }

편집 : 편리한 코드

MsRdpClient51.Server = somServer
MsRdpClient51.UserName = somUserID
MsRdpClient51.Domain = someDomain
MsRdpClient51.AdvancedSettings6.ClearTextPassword = somePassword
MsRdpClient51.Connect
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top