使用 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入口網站,在左下方新增選擇 『計算』->『虛擬機器』->『從組件庫』
- 在選擇映像檔時,選擇『Windows Server 2012 R2』
- 建立完Microsoft Azure 虛擬機器之後,需要做一些設定才能夠符合建立 Azure RemoteApp的需求。先以遠端桌面登入已經執行之 Windows Server 2012 R2,執行 Windows Server Manager 並準備新增伺服器角色。
- 新增伺服器角色『Remote Desktop Services』
- 新增功能『User Interfaces and Infrastructure』並新增『Desktop Experience』
- 在角色服務選取『Remote Desktop Session Host』
- 必須要停用 Encrypting File System (EFS)。
- 使用系統管理員身份執行cmd,並且輸入
Fsutil behavior set disableencryption 1
- 輸入完畢後需重新啟動虛擬機器
- 請重新命名C:\Windows\Panther\Unattend.xml 檔案,以免上傳指令碼稍後無法正常運作。將此檔案名稱變更為Unattend.old,以便讓後您需要回復部署時,仍舊保有這個檔案可用。
- 完成上述的設定之後,就可以將您想要製成 Azure RemoteApp 的應用程式部屬到這台 Windows Server 2012 R2 虛擬機器,本文為了測試,而在虛擬機器內安裝 VLC media player 作為示範。
- 佈署完自行安裝的應用程式之後,進行映像的 SYSPREP 處理,將這台虛擬機器製作成映像檔。使用系統管理員身份執行cmd,輸入下列指令:
C:\Windows\System32\sysprep\sysprep.exe /generalize /oobe /shutdown
- 也可以透過直接從 c:\windows\System32\sysprep 的目錄下找到 sysprep.exe 這個檔案,並且執行它。
- System Cleanup Action 請選擇 "OOBE",並勾選下面的一般化 (general),然後下面選擇關機 (shutdown)
- 回到 Azure 管理入口網站,虛擬機器之儀表板,準備擷取虛擬機器 Image。在虛擬機器列表下方工具列,選取『擷取』
- 請注意 : 擷取完虛擬機器 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 內再另外相關設定動作。
- 建立 Azure Virtual Machines 時選擇 Windows Server Remote Desktop Session Host 作為映像檔
- 以遠端桌面連線到虛擬機器之後,安裝您自己的桌面應用程式,完畢後您只需要執行桌面上的 ValidateRemoteAppImage 這個 PowerShell Script,此 PowerShell Script 便會驗證此虛擬器要轉換為 Azure RemoteApp Image Template 所有組態設定是否正確。
- 執行 ValidateRemoteAppImage 之後,請確定執行後的報告沒有任何問題。如圖所示,此虛擬機器已經滿足 Azure RemoteApp Image Template 的需求。
- 確認無誤之後,ValidateRemoteAppImage 最後一個步驟便是進行 SYSPERP 的動作,注意 SYSPREP 動作會自動關閉您的虛擬機器。
- 回到 Azure 管理入口網站,虛擬機器之儀表板,準備擷取虛擬機器 Image。在虛擬機器列表下方工具列,選取『擷取』
- 請注意 : 擷取完虛擬機器 Image 後,該虛擬機器會被刪除。
2. 建立 Azure RemoteApp 的範本映像
透過上個步驟,我們已經將內部安裝與佈署好應用程式的虛擬機器製作成映像檔 ( Image )。接下來我們需要將此映像檔匯入至 Azure RemoteApp的範本映像。
- 選取左方工具列『REMOTEAPP』->『範本映像』->『加入』
- 選取『從您的虛擬機器映像庫匯入映像』,即可將前一步驟所製作的虛擬機器映像檔 ( image ) 直接匯入。
- 選取在上個步驟所建立名為 bartremoteapp 的虛擬機器映像檔
- 設定 RemoteApp 範本映像檔
- 本文將 RemoteApp 映像檔設定在東亞資料中心。
- 接下來取得上傳指令,在最下方工具列選取『取得指令碼』
3. 建立 Azure RemoteApp 服務
建立RemoteApp 服務
登入 Microsoft Azure 入口網站,並且在下方工具列新增->『應用程式服務』->『REMOTEAPP』->『快速建立』
- 如上圖,您可以選取由上一個步驟所建立的範本映像 bartremoteapp,此外提醒用戶建立 RemoteApp 服務最長需要花費一個小時。
- 建立完RemoteApp服務後,預設會將所有的應用程式發佈成 RemoteApp,如果需要進一步設定與管控,請點選『發行』發佈應用程式。
4. 發佈 RemoteApp
- 您也可以點選『發布』來新增其他欲發布之 RemoteApp
5. 設定使用者存取權限
- 選取『使用者存取』
- 新增您想要讓何位使用者來存取 Azure RemoteApp
6. 安裝 Azure RemoteApp 用戶端程式
- 透過這裡,來下載遠端桌面用戶端程式
- 如果採用 Apple App Store 進行安裝,只要輸入關鍵字「Microsoft Remote Desktop」,即可找到這個 App 並進行安裝。
7. 利用不同裝置使用 Azure RemoteApp
個人電腦 Windows 環境中使用方式
- 輸入使用者帳號密碼,就可以看到已經發佈的 Azure RemoteApp
行動設備中使用方式
- 本文使用 Apple iPad 作為示範使用情境
- 輸入使用者帳號密碼,就可以看到已經發佈的 RemoteApp
- 如下圖所示,我們成功的在 Apple iPAD上啟用了 Azure RemoteApp 內的 VLC media player 了