2021年8月8日 星期日

Azure WVD-讓你在瀏覽器中執行 Windows 10

如何在瀏覽器中執行 Windows?

要談這件事情前,我們得說說為何會有這個需要? 雖然對我而言,這個需求是顯而易見的。

虛擬桌面的美好想像

過去在企業環境中,使用vmware或hyper-v搭建一整套給用戶的虛擬工作環境,或是採用RDP以multi-session的形式提供用戶透過遠端連入的工作環境,都是企業內很常見的使用方式。

這樣做帶來幾個好處:

  1. 用戶端的實體設備等級不用太高,因為大量工作實際上都運行在遠端機房。
  2. 安全性容易控制,因為實際運行的程式大多也都在機房。
  3. MIS/IT人員不再需要為每一台用戶端設備傷腦筋。用戶端隨便用任何一台設備,登入遠端虛擬桌面後,都可以立即讓同仁開始工作。
  4. 同仁即便在遠端(家裡、網咖)、拿自己的NB也可以隨時連入工作(WFH居家辦公一次搞定)

隨手都能舉出好幾個理由,讓大部分MIT/IT人員對於遠端虛擬桌面有許多美好想像(包含我在內)。

自從有了Azure雲端之後,事實上我的桌機或NB的硬體更新頻率越來越低,因為大部分我工作都直接透過RDP用雲端上的VM來進行。這樣有許多好處。包含,有需要時隨手可以把VM升級成16或32G的記憶體,硬碟空間更是要多大有多大,只要網路速度可以,在遠端VM上工作比local實體機效率來的高上不少,算是一個頗奢侈豪華的享受。

對我個人來說,這樣做也有另一個好處,方便我把工作和個人電腦分開,工作我一律用雲端VM,個人NB則大多做些教育訓練或私人的事情,工作時只需要從NB連上雲端VM即可,環境乾淨不容易混亂或衝突。

需要克服的缺點

然而,使用RDP從NB連上雲端windows 10的VM,對很多人來說已經很美好,但我覺得還是有些缺點。當我想要大範圍的導入時,會碰到一些障礙:

  1. RDP採用3389 port,常常在企業內有被擋掉的可能。
  2. RDP在MAC環境可以用,但在android和iOS上還是有不少限制。在Windows環境上用戶也需要一點基本概念,才能夠使用。
  3. 用戶端的RDP上會保留有連線位置等資訊,在網咖或是外部環境使用相對風險比較高。

Azure WVD解決方案

因此,當我聽到Azure上的WVD解決方案時,實在非常心動。比起單純的RDP和雲端VM(或是地端的hyper-v, vmware),它有底下好處:

  1. 用戶端只需要有瀏覽器(Chrome/Edge)就可以運作,可透過網頁直接操作遠端VM,也不需要搭建VPN。(圖一)
  2. 在雲端可以建立虛擬機(VM)的集區,讓多台windows 10服務多位用戶。可以讓多位用戶可以被平均分攤到每一台Windows 10環境上工作。(圖二)
  3. 伺服器端可以看到用戶目前位於哪一台虛擬機,電腦集區中的VM支援清空模式,當需要維護特定VM時非常方便。(圖三)
  4. 可以建立多種工作環境,讓不同類型需求的用戶,使用適合自己的工作環境。(圖四)
  5. 若有需要,可以隨時從Azure Portal發送訊息給VM用戶,讓某一台VM上的用戶收到通知。(圖三) (圖五)
  6. Azure VM本身就可以隨著需要而動態擴充,加大記憶體或硬碟,而無須重建VM環境。
  7. 支援剪貼簿複製、列印、檔案傳輸、音訊。不過你可別忘了,沒有RDP用戶端,運行在瀏覽器中的遠端虛擬桌面,是怎麼實現這些功能的? 它的作法很有趣…

還有很多好玩的地方,讀者可以先對照著上面的說明,看看底下這些附圖:

圖一:
enter image description here

圖二:
enter image description here

圖三:
enter image description here

圖四:
enter image description here

圖五:
enter image description here

光在瀏覽器中可以執行這一項,就是我覺得很驚艷的功能。但有沒有想過,如果沒有RDP Client,那它怎麼完成檔案的上傳和下載?

如何實現列印以及檔案上傳與下載?

WVD對於列印的實作很有意思,如果用戶在連入的時候,選擇支援列印功能,則會看到雲端虛擬機上多了一台印表機:
enter image description here

如果對這台印表機列印,會出現一個很有趣的事情。你會發現,列印的東西會被轉成PDF然後在你的瀏覽器中變成下載檔案:
enter image description here

這解決了在瀏覽器環境中運行虛擬桌面的文件列印問題。

同樣的,檔案的上傳與下載也是採用類似的機制,如果你想將VM中的某個檔案傳遞到Local本機電腦上,只需要把該檔案複製到VM裡面的下載檔案資料夾:
enter image description here
該檔案就能夠自動的被瀏覽器下載,你就可以在本機電腦上取得該檔案了。

而上傳更簡單,只需要點選VM右上角的上傳鈕,即可從用戶端上傳檔案到VM上,被上傳的檔案會出現在VM的 『遠端桌面虛擬磁碟機\上傳』 資料夾中…
enter image description here

好玩吧? 我可是玩得不亦樂乎。

如何架設WVD環境?

至於如何架設WVD的環境,我得說,從我這個寫程式的人的角度來說,確實沒有很容易。有許多背景知識你需要知道,諸如Windows AD和AAD(Azure AD)以及AADDS(Azure AD Domain Services)之間的關係。以及讓VM加入網域這一塊,著實花了我不少時間。

我建議交給有經驗的雲端技術工程師來進行,如果您想嘗試看看,可以參考底下這篇偉任的介紹,這篇文幫了我不少忙:
https://www.netadmin.com.tw/netadmin/zh-tw/technology/230DC44996D24A5EB2A66679B9966293

另外,文章完成後,網友弘宇提供我底下這份文件,對於整個安裝過程也有非常詳細的介紹,甚至還有HOL唷,大家可以參考看看:
https://github.com/BrianHsing/Azure-Virtual-Desktop?fbclid=IwAR1lyP7c7GhcR9RSjCdMSYLx37-_WEUaRw8vjQl1X_KS5LTho5fY8-o345o

結語

最後,我覺得WVD算是微軟最近幾年在虛擬桌面這一塊整合性和完整度最高的一次展現,其實用戶端除了瀏覽器之外,還可以用iOS, Android,當然在MAC上也有支援。

對於MIS/IT來說,絕對是WFH的非常好的一個解決方案。
祝您玩得愉快, enjoy it.

熱門文章