上一篇 如何建立Azure RemoteApp服務 說明如何使用內建的映像檔建立基本的RemoteApp服務,當想要佈署自己的應用程式,並調整需要的設定和語系,就必須使用客製的映像檔,

   

必要的環境條件:

1. 可以建立VM的作業系統環境,建議直接使用Server 2008 R2或更新的作業系統,使用Hyper-V來建立。

2. Azure訂閱的帳號,並申請核准RemoteApp服務 http://azure.microsoft.com/en-us/services/remoteapp/

3. Windows Server 2012 R2的ISO安裝檔案

4. 需要佈署的應用程式安裝檔案

   

注意事項:

1. Azure只能支援VHD格式的虛擬硬碟和第一世代的虛擬機器

2. 必須停用Encrypting File System (EFS)

3. 建議先將Remote Desktop Session Host (RDSH) 角色安裝完成,再來佈署應用程式

   

步驟一:在Hyper-V建立適合上傳的VHD檔案

   

1. 新增一個虛擬機器,這個畫面只有環境是Server 2012 R2和Windows 8.1上才會看到的畫面,如果製作的環境和我一樣,切記一定要選擇 [ 第1代 ] ,選擇製作錯誤只能從頭再來。

   

2. 在新增虛擬硬碟上建議選擇 [ 稍後連結虛擬硬碟 ] ,原因是如果系統是Server 2012或Windows 8以上的系統,預設會建立VHDX格式的虛擬硬碟,但Azure只支援舊版格式VHD,如果建立錯誤也可以使用Hyper-V的 [ 編輯磁碟 ] 工具做轉換。

   

3. 建立新的虛擬硬碟,請記得選擇VHD

   

4. 選擇磁碟類型 [ 動態擴充 ] ,選擇固定大小VHD上傳太花時間

   

5. 安裝Windows Server 2012 R2後,先新增角色勾選 [ 遠端桌面服務 ] (Remote Desktop Services)

   

6. 在功能上展開 [ 使用者介面與基礎結構 ] (User Interfaces and Infrastructure) 並勾選 [ 桌面體驗 ] (Desktop Experience)

   

7. 在角色服務勾選 [ 遠端桌面工作階段主機 ] (Remote Desktop Session Host)

8. 確認開始安裝,安裝完畢再來佈署使用的應用程式,避免造成應用程式相容性的問題,造成無法正常發佈

   

9. 安裝完應用程式,還需要再確認一個地方

C:\ProgramData\Microsoft\Windows\Start Menu\

因為最後會進行sysprep系統封裝,會將所有使用者帳號刪除,如果捷徑是存放在User Profile下,當上傳到Azure時會無法自動出現在發佈清單中,必須使用路徑指定的方式,而且圖示會變成統一的遠端桌面圖示,不是該應用程式專屬的icon,以我實作經驗例如:記事本notepad、Internet Explorer和第三方軟體,都必須手動建立捷徑到這個位置。

   

10. 如果安裝的應用程式執行時需要執行UAC的驗證動作,可以透過本機群組原則修改以下Policy的設定,關閉UAC的功能,透過Azure的RemoteApp目前沒有辦法去調整使用權限,所有的使用者都只有一般使用者權限,連Azure管理者帳號也不例外。

使用者帳戶控制: 允許 UIAccess 應用程式不使用安全桌面來提示提升權限。

已啟用

使用者帳戶控制: 使用內建的 Administrator 帳戶的管理員核准模式

已啟用

使用者帳戶控制: 在管理員核准模式,系統管理員之提升權限提示的行為

提升權限而不提示

使用者帳戶控制: 開啟管理員核准模式

已停用

使用者帳戶控制: 偵測應用程式安裝,並提示提升權限

已停用

使用者帳戶控制: 將檔案及登錄寫入失敗虛擬化並儲存至每一使用者位置

已啟用

使用者帳戶控制: 提示提升權限時切換到安全桌面

已停用

使用者帳戶控制: 僅針對已簽署與驗證過的可執行檔,提升其權限

已停用

使用者帳戶控制: 僅針對在安全位置安裝的 UIAccess 應用程式,提升其權限

已停用

使用者帳戶控制: 標準使用者之提高權限提示的行為

自動拒絕提升權限要求

   

11.再來關閉Encrypting File System (EFS),使用系統管理員身分執行cmd,

輸入指令 [ Fsutil behavior set disableencryption 1 ] ,並重新啟動電腦

   

12. 檢查%windir%\Panther\資料夾下,如果有Unattend.xml檔案,建議將該檔案重新命名Unattend.old,避免後續上傳映像檔時發生問題

   

13. 最後執行系統封裝,使用系統管理員身分執行cmd,輸入指令

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

   

步驟二:取得上傳指令

   

1. 在Azure管理介面上,點選 [ REMOTEAPP ] ,再點選 [ TEMPLATE IMAGES ] ,再點選下方的 [ UPLOAD ]

   

2. 輸入Template Image的名稱和上傳地區

   

3. 取得執行指令和上傳的Powershell檔案

   

步驟三:透過Microsoft Azure PowerShell上傳Template Image

   

1. 安裝Microsoft Azure PowerShell 進入網址 http://azure.microsoft.com/en-us/downloads/ 點選Command-line tools下的Windows PowerShell進行下載安裝

   

2. 安裝完畢以系統管理員身分執行Microsoft Azure PowerShell

   

3. 輸入 [ Add-AzureAccount ] 並使用Azure訂閱的帳號登入

   

4. 出現Azure的訂閱資訊

   

5. 輸入 [ Get-AzurePublishSettingsFile ] 透過網頁取得設定檔案,下載的檔案副檔名是publishsettings

   

6. 輸入 [ Import-AzurePublishSettingsFile <PathToFile> ] ,記得路徑要用雙引號框起來

   

7. 切換到下載的Upload-AzureRemoteAppTemplateImage.ps1儲存位置路徑,並貼上網頁上取得的執行指令,再來會自動跳出檔案總管,選擇步驟一所製作的VHD檔案,會先計算VHD檔案的MD5並開始上傳動作

   

8. 上傳完畢新增新的RemoteApp,先選擇Template Image上傳的地區,就會出現自行上傳的Template Image

   

9. 佈署完畢,再設定要發佈的應用程式

   

參考資料:

How to create a custom template image for RemoteApp

   

arrow
arrow

    georgechang 發表在 痞客邦 留言(0) 人氣()