[MDRM] NT계열, Foreground 실행관련 세션 정의

1. 기술 (Description)

  • MDRM, NT계열
  • MDRM에서 NT계열의 프로그램실행시 Foreground실행관련 세션에 관해 정의

2. 사용법(How to use)

  • 사용자계정의 세션이 존재할경우 MDRM Foreground실행시 화면정상출력
  • image-1606022030094.png
  • image-1606022080630.png
  • 사용자계정의 세션이 존재하고 MDRM Foreground 실행옵션제거후 실행시 Background실행
  • image-1606022158689.png
  • image-1606022183443.png
  • 사용자계정 logoff후 MDRM Foreground 실행시 Background 실행
  • image-1606022258830.png
  • image-1606022297830.png
  • 사용자계정이 아닌 gam실행계정으로 시작시 사용자계정의 세션에서는 foreground확인가능
  • image-1606022521570.png
  • image-1606022577126.png
  • 정리
  • MDRM구축시 기본 gam_agent설치계정인 System계정실행이 아닌 사용자계정으로 실행이 필요한경우 및 Foreground실행을 위해서는 아래의 두조건이 모두 충족되어야 한다.
    • 사용자세션이 존재(사용자세션 login)
    • MDRM Foreground실행체크가 되어있음 
  • 상기의 조건을 모두 충족하기위한 우회방법
    • 서버의 재부팅후 관리자에 의해 계정로그인 및 화면잠금후 MDRM실행
    • 자동로그인 설정필요. 서버의 재부팅후 스케줄러에 화면잠금
    • 자동로그인 설정필요. MDRM에서 VM구축인경우 MDRM에 의해 VM ON절차가 있다면 프로그램실행전 화면잠금 컴포넌트 추가
  • 추가 필요사항 :
  • Windows 자동로그인방법
  • image-1606022974345.png
  • 사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음(E) 체크 제거
  • image-1606022990520.png
  • 적용시 해당 계정의 비밀번호 입력
  • MDRM, Windows 화면잠금컴포넌트
    • 사용자정의스크립트실행컴포넌트
    • 스크립트종류(powershell)
    • $LockWorkStation = Add-Type -Name "Win32LockWorkStation" -PassThru -MemberDefinition @" [DllImport("user32.dll")] public static extern int LockWorkStation(); "@ $PostMessage = Add-Type -Name "Win32PostMessage" -PassThru -MemberDefinition @" [DllImport("user32.dll")] public static extern int PostMessage(int hWnd, int hMsg, int wParam, int lParam); "@ # lock workstation Write-Information -MessageData "Locking workstation" -InformationAction Continue if (0 -eq $LockWorkStation::LockWorkStation()) { throw 'Failed to lock workstation' }
  • image-1606023113248.png
  • 자동로그인 및 화면잠금 컴포넌트를 사용한 사용자세션, Foreground Process실행
  • VM재부팅후 자동로그인된 Windows
  • image-1606023732928.png
  • 워크플로우 실행후 자동잠금 및 프로세스실행
  • image-1606023777299.png
  • 사용자계정 로그인시 사용자계정세션으로 프로그램 정상실행 및 Foreground실행확인완료
  • image-1606023799420.png