Windows 2003 서버에 대한 테스트 연결을 자동화하는 방법은 무엇입니까?
-
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
제휴하지 않습니다 StackOverflow