2008-11-12 10 views
2

일반적으로 광산 VB.NET 응용 프로그램은 ClientName 환경 변수를 검사하여 사용자가 연결중인 워크 스테이션의 이름을 가져올 수 있습니다. 터미널 서비스 : 관리자로 실행 중 클라이언트 이름 가져 오기

그럼 언제 ServerA가에 WorkstationX RDPs :

  • 컴퓨터 이름 = ServerA가
  • CLIENTNAME = WorkstationX 잘 작동

.

응용 프로그램을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택하면 ClientName 변수가 설정되지 않습니다.

"Run As Administrator"를 통해 응용 프로그램을 시작한 경우에도 터미널 서버에 연결된 클라이언트의 워크 스테이션 이름을 쉽게 가져 오는 방법을 아는 사람이 있습니까?

답변

2

terminal services API이 답이 될 수 있습니다. VB.NET 응용 프로그램에서 특정 서버의 사용자 세션을 로그 오프하고 해당 세션에 연결된 워크 스테이션의 이름을 검색합니다. 필자가 가지고있는 코드에는 많은 p-invoke가 있으며 다루기가 어렵지만 원하는 경우 게시 할 수 있습니다. 당신이 자신을 /를 P 처리 사업을 호출하지 않으려면

+0

을 나는 값을 얻을 수 WTSQuerySessionInformation를 사용해야합니다 가정 WTSClientName 중 하나이지만 아직 수행하지 않은 깨끗한 예제를 찾지 못했습니다. –

+0

작업 에서처럼 깨끗하게 또는 똑같이 청소합니까? –

+0

포팅 된 VB6 코드를 사용하여 스케치 된 호출을 작동하고 최소한으로 사용하는 것처럼 정리하십시오.) –

2

, 당신은 당신을 위해 그것을 감싸고있는 Cassia를 사용할 수 있습니다

New Cassia.TerminalServicesManager().CurrentSession.ClientName