
배경 정보
저는 최근에 RemoteApp를 사용하여 모든 가정용 컴퓨터에 배포하기 위해 서버에 Microsoft Office 2013을 설치했습니다. 설치 후 프로그램을 실행하려고 하면 터미널 서비스가 설치된 PC에서 Office를 실행하려면 볼륨 라이선스 버전의 Office를 사용해야 한다는 오류가 발생했습니다. 그런 다음 모든 원격 데스크톱 서버 역할을 제거하고 대신 허용 목록을 비활성화하여 수동으로 배포했으며 로컬에서 실행하거나 RemoteApp로 배포하면 제대로 작동했습니다.
허용 목록이란 무엇입니까?
일반적인 RemoteApp 배포에는 RemoteApp로 실행이 허용되는 응용 프로그램 목록이 있으며 이를 구성하는 유일한 방법은 터미널 서비스 서버 역할을 사용하는 것입니다. 그러나 Windows 레지스트리로 이동하여 목록을 비활성화하면 누구나 터미널 서비스 서버 역할을 설치하지 않고도 경로를 알고 서버의 모든 응용 프로그램에 RemoteApp로 액세스할 수 있습니다.
뭔가 궁금해지더군요...
내 질문
애플리케이션이 이러한 방식으로(허용 목록이 비활성화된 상태에서) RemoteApp로 실행되고 있음을 감지하고 실행 중인 경우 실행을 거부하고 로컬 서버 데스크톱에서 실행 중인 경우에만 실행할 수 있습니까?
답변1
애플리케이션이 RemoteApp로 실행 중인지 어떻게 감지할 수 있나요?
RemoteApp 세션은 에 의해 터미널 서버에서 시작됩니다 RDPINIT.EXE
. 따라서 응용 프로그램은 RDPINIT.EXE가상위 프로세스.
세부:
RDPINIT.EXE 인스턴스는 각 사용자 RemoteApp 세션에 대해 터미널 서버에서 실행됩니다. RDPINIT.EXE는 USERINIT.EXE의 RemoteApp 특정 구현으로 USERINIT.EXE에 의해 로드됩니다. RDPINIT.EXE는 RDPSHELL.EXE를 실행하고 프로세스 시작 및 종료를 모니터링하는 감시자 역할을 합니다. RDPSHELL.EXE는 RemoteApp 기능을 제공하기 위해 EXPLORER.EXE 대신 사용되는 셸입니다. RDPINIT.EXE는 RDPSHELL.EXE의 프로세스 수명주기를 모니터링하고 비정상적으로 종료되는 경우 이를 다시 시작합니다. RDPSHELL.EXE는 세션의 각 사용자 데스크탑에 Windows 이벤트 후크 세트를 로드합니다. 이러한 이벤트 후크를 사용하면 RDPSHELL.EXE가 바탕 화면의 모든 창 상태를 모니터링할 수 있습니다. ...
(에서 인용테크넷)