2013-08-15 2 views
2

라이센스 이유로 라이센스를 터미널 서비스 서버에서 실행할 수 없도록해야하는 .NET 응용 프로그램이 있습니다. 원격 세션에서 프로그램이 실행 중인지 확인하려면 SystemInformation API를 알고 있습니다 (예 : this question에 설명되어 있음). 그러나이 API는 허용 된 원격 데스크톱 세션이 2 개인 일반 서버에서 실행되는 응용 프로그램과 500 세션이 실행되는 완전한 터미널 서버를 구분하지 않습니다.원격 데스크톱이 아닌 터미널 서비스에서 응용 프로그램이 실행되고 있는지 확인하십시오.

응용 프로그램이 full-on 터미널 서버에서 실행 중인지 여부를 확인할 수있는 간단한 프로그래밍 방법이 있습니까?

허용되는 세션이 두 개 이상이면 풀 터미널 서버를 의미하며, 필요한 경우 P/Invoke를 사용하는 것이 좋습니다. , S의 값이 "콘솔"이면

string s = System.Environment.GetEnvironmentVariable("SessionName"); 

는 터미널 서비스에서 실행 될 수있다 :

+0

이 정보가 도움이되는 방법에 대해 궁금합니다. 나는 이것을 드러내는 RDS API에 대해서는 아무것도 모른다. 서버에 RD 라이센스 서버가 구성되어 있는지 여부를 잠재적으로 확인할 수 있습니다. –

+0

@DanPorts -이 정보는 소프트웨어를 터미널 서비스 환경에서 사용할 수 없다는 비즈니스 요구 사항 때문에 유용합니다. –

답변

1

한 가지 방법은 아래의 코드를 사용하는 것입니다. 반면에 값이 "RDP-Tcp # 01"인 경우 원격 데스크톱에서 실행됩니다.

관련 문제