使用 Azure RemoteApp 執行自己所安裝之視窗桌面應用程式

代貼北科大劉建昌同學撰寫之技術文件。

Azure RemoteApp 已經於 2016 年 10 月 1 日停止提供服務,本篇內容已經不再適用

Azure RemoteApp 幫助開發者透過各種不同的裝置 (Windows、Mac OS X、iOS 或 Android) 存取佈署好的應用程式。應用程式會在 Azure 雲端中的 Windows Server 2012 R2 上執行,您可以輕鬆地調整規模及更新。只要將 Microsoft 遠端桌面用戶端安裝到連接網際網路的膝上型電腦、平板電腦或手機上,就可以輕鬆存取應用程式,就如同在視窗本機環境執行一樣。

本篇文章將會介紹如何在 Windows Server 2012 R2 的虛擬機器上佈署您想要遠端操作的應用程式,並且製作成Microsoft Azure 虛擬機器映像檔 (Image),再將其匯入至Azure RemoteApp,讓您能夠在不同裝置上透過遠端桌面協定 ( Remote Desktop Protocol , RDP ) 存取這些應用程式。

1. 建立 Microsoft Azure 虛擬機器

建立虛擬機器的方法一  :

  • 使用一般的 Windows Server 2012 R2映像檔來建立虛擬機器,此方法較為複雜,適合已經有現成 Windows Server 2012 R2 VM 環境要轉換為 Remote App,如果沒有此一考量採用方法二較為簡便。
  • 登入Microsoft Azure入口網站,在左下方新增選擇 『計算』->『虛擬機器』->『從組件庫』

clip_image002

  • 在選擇映像檔時,選擇『Windows Server 2012 R2』

clip_image004

  • 建立完Microsoft Azure 虛擬機器之後,需要做一些設定才能夠符合建立 Azure RemoteApp的需求。先以遠端桌面登入已經執行之 Windows Server 2012 R2,執行 Windows Server Manager 並準備新增伺服器角色。

clip_image006

  • 新增伺服器角色『Remote Desktop Services』

clip_image008

  • 新增功能『User Interfaces and Infrastructure』並新增『Desktop Experience』

clip_image010

  • 在角色服務選取『Remote Desktop Session Host』

clip_image012

  • 必須要停用 Encrypting File System (EFS)。
  • 使用系統管理員身份執行cmd,並且輸入

Fsutil behavior set disableencryption 1

clip_image014

  • 輸入完畢後需重新啟動虛擬機器
  • 請重新命名C:\Windows\Panther\Unattend.xml 檔案,以免上傳指令碼稍後無法正常運作。將此檔案名稱變更為Unattend.old,以便讓後您需要回復部署時,仍舊保有這個檔案可用。

clip_image016

  • 完成上述的設定之後,就可以將您想要製成 Azure RemoteApp 的應用程式部屬到這台 Windows Server  2012 R2 虛擬機器,本文為了測試,而在虛擬機器內安裝 VLC media player 作為示範。
  • 佈署完自行安裝的應用程式之後,進行映像的 SYSPREP 處理,將這台虛擬機器製作成映像檔。使用系統管理員身份執行cmd,輸入下列指令:

C:\Windows\System32\sysprep\sysprep.exe /generalize /oobe /shutdown

clip_image018

  • 也可以透過直接從 c:\windows\System32\sysprep 的目錄下找到 sysprep.exe 這個檔案,並且執行它。

clip_image020 clip_image022

  • System Cleanup Action 請選擇  "OOBE",並勾選下面的一般化 (general),然後下面選擇關機 (shutdown)
  • 回到 Azure 管理入口網站,虛擬機器之儀表板,準備擷取虛擬機器 Image。在虛擬機器列表下方工具列,選取『擷取』

clip_image024

  • 請注意 : 擷取完虛擬機器 Image 後,該虛擬機器會被刪除。

 

建立虛擬機器的方法二

  • 此方法較方法一更為簡便,適合全新建立之環境,直接使用 Windows Server Remote Desktop Session Host 映像檔來建立虛擬機器。在新增虛擬機器時,若選擇 Windows Server 2012 R2 作為伺服器作業系統,那就必須如方法一所示的透過一些設定才能夠滿足A Azure RemoteApp template image 的需求。這裡提供您另外一種選擇,那就是直接使用 Windows Server Remote Desktop Session Host作為虛擬機器映像檔,這個映像檔已經做好了關於 RemoteApp template image的設定,因此不需要在 Windows Server 內再另外相關設定動作。

clip_image026

  • 建立 Azure Virtual Machines 時選擇 Windows Server Remote Desktop Session Host 作為映像檔
  • 以遠端桌面連線到虛擬機器之後,安裝您自己的桌面應用程式,完畢後您只需要執行桌面上的 ValidateRemoteAppImage 這個 PowerShell Script,此 PowerShell Script 便會驗證此虛擬器要轉換為 Azure RemoteApp Image Template 所有組態設定是否正確。

clip_image028

  • 執行 ValidateRemoteAppImage 之後,請確定執行後的報告沒有任何問題。如圖所示,此虛擬機器已經滿足 Azure RemoteApp Image Template   的需求。

clip_image030

  • 確認無誤之後,ValidateRemoteAppImage 最後一個步驟便是進行 SYSPERP 的動作,注意 SYSPREP 動作會自動關閉您的虛擬機器。
  • 回到 Azure 管理入口網站,虛擬機器之儀表板,準備擷取虛擬機器 Image。在虛擬機器列表下方工具列,選取『擷取』

clip_image024

  • 請注意 : 擷取完虛擬機器 Image 後,該虛擬機器會被刪除。

 

2. 建立 Azure RemoteApp 的範本映像

透過上個步驟,我們已經將內部安裝與佈署好應用程式的虛擬機器製作成映像檔 ( Image )。接下來我們需要將此映像檔匯入至 Azure RemoteApp的範本映像。

  • 選取左方工具列『REMOTEAPP』->『範本映像』->『加入』

clip_image032

  • 選取『從您的虛擬機器映像庫匯入映像』,即可將前一步驟所製作的虛擬機器映像檔 (  image ) 直接匯入。

clip_image034

  • 選取在上個步驟所建立名為 bartremoteapp 的虛擬機器映像檔

clip_image036

  • 設定 RemoteApp 範本映像檔

clip_image038

  • 本文將 RemoteApp 映像檔設定在東亞資料中心。
  • 接下來取得上傳指令,在最下方工具列選取『取得指令碼』

 

3. 建立 Azure RemoteApp 服務

 

建立RemoteApp   服務

登入 Microsoft Azure 入口網站,並且在下方工具列新增->『應用程式服務』->『REMOTEAPP』->『快速建立』

clip_image050 clip_image052

  • 如上圖,您可以選取由上一個步驟所建立的範本映像 bartremoteapp,此外提醒用戶建立 RemoteApp 服務最長需要花費一個小時。

clip_image054

 

  • 建立完RemoteApp服務後,預設會將所有的應用程式發佈成 RemoteApp,如果需要進一步設定與管控,請點選『發行』發佈應用程式。

 

4. 發佈 RemoteApp

clip_image056

  • 先前安裝的 VLC media player 預設已經發行為 RemoteApp 了clip_image058
  • 您也可以點選『發布』來新增其他欲發布之 RemoteApp

 

5. 設定使用者存取權限

  • 選取『使用者存取』

clip_image060

  • 新增您想要讓何位使用者來存取 Azure RemoteApp

clip_image062

6. 安裝 Azure RemoteApp 用戶端程式

clip_image064

  • 如果採用 Apple App Store 進行安裝,只要輸入關鍵字「Microsoft Remote Desktop」,即可找到這個 App 並進行安裝。

 

7. 利用不同裝置使用 Azure RemoteApp

 

個人電腦 Windows 環境中使用方式

clip_image066 clip_image068

  • 輸入使用者帳號密碼,就可以看到已經發佈的 Azure RemoteApp

行動設備中使用方式

  • 本文使用 Apple iPad 作為示範使用情境

clip_image070

  • 輸入使用者帳號密碼,就可以看到已經發佈的 RemoteApp

clip_image072

  • 如下圖所示,我們成功的在 Apple iPAD上啟用了 Azure RemoteApp 內的 VLC media player 了

clip_image074