virtualization/microsoft

[Microsoft] RDS/VDI UPD를 마운트하고 있는 가상데스크톱을 검출하는 방법

yueisu 2014. 6. 20. 22:48

Microsoft RDS/VDI 환경에서 유저 프로화일 디스크(UPD)를 이용할 경우, UPD는 유저가 가상데스크톱에 처음으로 접속했을 경우 다음과 같은 형태로 생성됩니다.

UVHD-유저 SID.vhdx

예)

UVHD-S-1-5-21-4157624029-1155678901-1273157968-1120.vhdx


UPD는 vhdx형태이기 때문에 익스플로러창에서 간단히 마운트가 가능합니다. 

일단 마운트되어지면 보통의 폴더처럼 전개할 수 있으며, 화일의 복사나 참조 등이 가능하죠.

이 조작은 유저에게는 필요없지만 관리자에게는 요긴하게 이용될 경우가 있습니다.


예를들어... 이전 포스팅에서도 소개했듯이 UPD가 언마운트되지않을 경우, 해당유저는 임시 프로화일로 접속하게 됩니다. 이 경우 당연히 유저는 자신의 데이터가 없어졌으니 관리자에게 "저장한 데이터가 없어졌다, Outlook을 기동했더니 설정을 하란다..." 등의 문의를 하게되고, 관리자는 유저의 UPD를 언마운트해야됩니다.


하지만 여기서 문제가 발생하죠.

우선 유저는 로그오프를 한 상태이기때문에 어떤 가상데스크톱을 이용했는지 알 수 없다는 점입니다. UPD가 언마운트되지않는 증상은 대부분이 유저는 정상적으로 로그오프를 했음에도 불구하고 RD가상화서버가 UPD의 언마운트 처리가 실패했을 경우입니다. 이경우 RD접속브로커상에 해당유저의 세션정보는 없습니다.


또하나의 문제점은 UPD가 유저의 SID로 생성된다는 점입니다. 흐흐


이럴경우의 해결방법은 다음과 같습니다.

1. 해당유저의 유저명으로부터 SID를 취득

(Get-WmiObject Win32_useraccount -Filter "name = '유저명'").SID


예)

PS C:\> (Get-WmiObject Win32_useraccount -Filter "name = 'TestUser'").SID

S-1-5-21-34734637-3666151176-2119290932-1142


2. 취득한 SID의 UPD를 마운트한 가상데스크톱을 검색

(get-vm | get-vmharddiskdrive | where-object Path -eq \\UPD저장보존폴더\UVHD-유저SID.vhdx).vmname

예)
PS C:\> (get-vm | get-vmharddiskdrive | where-object Path -eq \\fs01\UPD$\Pool1\UVHD-S-1-5-21-34734637-3666151176-2119290932-1142.vhdx).vmname

VDesktop-1