網管人 189 期 - 架設微軟 RDS 遠端桌面,速成遠距辦公友善環境



網管人雜誌

本文刊載於 網管人雜誌第 189 期 - 2021 年 10 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。





本文目錄






前言

隨著 COVID-19 疫情反覆不斷,企業和組織必須準備讓員工隨時能夠遠端工作的作業環境,以便因應 COVID-19 疫情升溫,員工必須分流上班或是全員「在家工作」(Work from home)的情況。

相信對於 IT 預算和資訊人員充足的中大型企業來說(如圖 1 所示),建構員工遠端工作環境並不難,甚至早已經建置完成以便滿足,IT 資訊人員在例假日或休假時期,必須遠端登入和臨時支援相關問題的查修和故障排除等需求。

圖 1、中大型企業建構的高可用性 RDS 遠端桌面服務運作架構示意圖

然而,對於 IT 預算和資訊人員較為不足的小型企業來說,有沒有簡單快速的方式,便能建構出讓員工能夠遠端工作的環境? 有的。在本文中,將會深入剖析和實戰演練,如何透過 Microsoft「遠端桌面服務」(Remote Desktop Service,RDS)技術,快速建構遠端桌面工作階段的運作環境,讓在家工作的員工只要撥上企業和組織的 VPN 環境之後,即可輕鬆獲得如同在辦公室一樣的工作環境。





RDS 部署模式和角色

在 Microsoft RDS 遠端桌面服務中,共有兩種標準的運作架構分別是「基本部署」(Basic Deployment)和「高可用性部署」(Highly Available Deployment)(如圖 2 所示)。採用基本部署的運作架構,管理人員只要建立承載 RDS 運作環境的基礎即可,倘若企業和組織需要確保 RDS 遠端桌面服務具備高可用性,那麼相關基礎架構的角色至少必須二個以便互相備援之外,相關角色例如 RDSH 連線階段伺服器,可能必須更多台以便達到負載平衡的目的。

圖 2、Microsoft RDS 遠端桌面服務,基本部署和高可用性部署示意圖

在 RDS 遠端桌面服務運作架構中,共有五個主要的運作角色,分別負責不同的工作任務:
  • 遠端桌面工作階段主機: RDSH(Remote Desktop Session Host),保留使用者工作階段的應用程式和桌面連線,支援二種運作模式分別是 VM 虛擬主機模式(VM Based),和連線階段模式(Session Based)
  • 遠端桌面連線代理人: RDCB(Remote Desktop Connection Broker),當使用者建立遠端桌面工作階段時,負責將這些使用者連線工作階段負載平衡至不同的 RDSH 主機。原則上,每台 RDCB 主機可以同時處理超過 10,000 個使用者連線工作階段。
  • 遠端桌面閘道: RDGW(Remote Desktop GateWay),當使用者連線必須從外部網際網路,連線至內部 RDSH 主機時才需要建置。
  • 遠端桌面 Web 存取: RDWeb(Remote Desktop Web access),透過入口網站的方式驗證使用者身份之後,提供使用者存取桌面和相關應用程式。
  • 遠端桌面授權:RDLS(Remote Desktop Licensing Server),提供 RDS 遠端桌面服務存取使用權。





實戰 – RDS 遠端桌面服務

在本文實作環境中,著重於建構出滿足小型企業需求的遠端桌面服務。因此,除了網域控制站和網域環境「lab.weithenn.org」之外,搭配一台 Windows Server 2019 主機,透過「工作階段型虛擬化」(Session-Based Virtualization)機制,建構出符合小型企業工作需求的多重工作階段運作環境。



快速部署 RDS 遠端桌面服務

在本文實作環境中,我們將 RDS 遠端桌面服務 RDSH/RDCB/RDWeb 這三個角色,安裝於一台 Windows Server 2019 主機中(後續簡稱為 RDS 主機),以便快速和最小化建構出工作階段型虛擬化運作環境。
請注意,最小化建構 RDS 遠端桌面服務,並不具備高可用性和災難快速復原機制。

請在 RDS 主機中,開啟伺服器管理員後依序點選「Manage > Add Roles and Features」,在彈出視窗中 Select installation tyep 階段時,請選擇「Remote Desktop Services installation」項目,以便部署工作階段型桌面環境(如圖 3 所示)。

圖 3、準備部署工作階段型桌面環境

在 Select deployment type 部署階段時,預設值為 Standard deployment 項目,適合用於部署中大型 RDS 虛擬桌面運作架構,將 RDS 遠端桌面服務的角色分別安裝在不同的伺服器。在本文中,請改為選擇「Quick Start」項目(如圖 4 所示),將 RDSH/RDCB/RDWeb 這三個 RDS 遠端桌面服務角色,安裝在同一台 RDS 主機中。
系統將會依據管理人員選擇不同的部署類型,自動化改變部署階段的安裝流程。管理人員,可以在選擇不同部署項目時,仔細觀察互動視窗左方部署階段項目的變化。
圖 4、準備將 RDSH/RDCB/RDWeb 遠端桌面服務角色,安裝在同一台主機中

在 Select deployment type 部署階段時,當選擇 Virtual machine-based desktop deployment 項目時,必須確保 RDS 伺服器主機已經啟用硬體輔助虛擬化,以及支援運作 Hyper-V 虛擬化運作環境,才能順利部署以 VM 虛擬主機為主的遠端桌面服務運作架構。在本文中,請選擇「Session-based desktop deployment」項目,部署工作階段型桌面環境。

在 Select a server 部署階段時,請選擇要為哪台主機部署 RDSH/RDCB/RDWeb 遠端桌面服務角色,在本文中選擇「RDS.lab.weithenn.org」主機。在 Confirm selections 部署確認視窗中,系統再次詢問是否要同時部署多個遠端桌面服務角色在一台主機中,並請勾選下方「Restart the destination server automatically if required」項目後,才能按下「Deploy」鈕執行部署的動作。
當系統部署 RDSH 遠端桌面服務角色後,便會自動重新啟動主機,並且在重新啟動完成後自動接續安裝 RDCB 和 RDWeb 角色。

當 RDS 主機部署完成自動重新啟動後,系統在自動接續部署 RDCB 和 RDWeb 角色的期間,在 RDS 主機右下方資訊列,將會彈出 RDS 遠端桌面服務試用期間通知資訊,告知 IT 管理人員系統開始倒數「120 天」的 RDS 遠端桌面服務試用期(如圖 5 所示)。後續,企業和組織只要購買 RDS 遠端桌面授權,並建置 RDLS 授權伺服器角色,即可持續使用 RDS 遠端桌面服務。

圖 5、系統開始倒數 120 天的 RDS 遠端桌面服務試用期

後續,管理人員可以透過「Invoke-WmiMethod」的 PowerShell 指令,搭配查詢「GetGracePeriodDays」內容,即可看到 RDS 遠端桌面服務試用期間還剩下多少天(如圖 6 所示)。
倘若,管理人員已經建置 RDLS 授權伺服器後才查詢,則查詢結果中的 DaysLeft 天數欄位將為 0 天
圖 6、透過 PowerShell 指令查詢 RDS 遠端桌面服務試用期間還剩下多少天

經過一段部署時間後,系統顯示成功部署 RDSH/RDCB/RDWeb 遠端桌面服務角色,並且在視窗下方顯示 RDWeb 入口網站伺服器的 URL 網址,本文實作環境為「https://RDS.lab.weithenn.org/rdweb」(如圖 7 所示)。

圖 7、成功部署 RDSH/RDCB/RDWeb 遠端桌面服務角色

現在,即可開啟瀏覽器在網址列鍵入「https://rds.lab.weithenn.org/rdweb」,即可看到 RDWeb 入口網站伺服器的登入頁面(如圖 8 所示)。預設情況下,在網域環境中屬於「Domain Users」群組的成員,都可以登入 RDWeb 入口網站伺服器,後續管理人員可以調整 Collections 內容中的 User Group 設定,便可組態設定可進行登入的群組和使用者帳號。

圖 8、預設 Domain Users 群組的成員即可登入

IT 管理人員只要依序點選「Server Manager > Remote Desktop Services > Overview」,即可看到簡易的 RDS 遠端桌面服務部署示意圖,以及部署 RDS 角色的主機清單(如圖 9 所示)。
由於採用 Quick Start 部署項目,所以系統將會自動新增「QuickSessionCollection」。倘若,採用 Standard deployment 部署項目,則必須由 IT 管理人員依照需求手動建立 Collections 。
圖 9、查看 RDS 遠端桌面服務部署示意圖和主機清單



管理和組態設定 RDS 登入環境

在 RDS 遠端桌面服務運作架構中,組態設定使用者 RDS 登入環境的機制稱為「Collections」,由於部署時採用「Quick Start」項目,所以系統會自動建立「QuickSessionCollection」項目,在 QuickSessionCollection 項目內共有四大區塊,管理人員可以依照相關需求進行調整。

首先,請依序點選「Server Manager > Remote Desktop Services > Collections > QuickSessionCollection > Properties > Tasks > Edit Properties」項目,詳細的組態設定項目和說明如下:
  • General: 管理人員可以調整此 Collections 的名稱,以便符合公司原有的命名規則。
  • User Groups: 組態設定哪些使用者帳號或群組(如圖 10 所示),可以透過登入 RDWeb 入口網站伺服器,載入此 Collections 內的組態設定值和運作環境。
  • Session: 組態設定和管理使用者連線資訊,舉例來說,透過 Idle Session Limit 組態設定值,可以定義使用者連線階段「閒置」(Idle)時間,超過組態設定值之後便強制中斷該使用者連線階段。
  • Security: 組態設定使用者連線階段的安全性層級和加密層級。
  • Load Balancing: 顯示此 Collections 有多少台 RDSH 連線階段伺服器,並且設定每台伺服器的負載平衡權重,以及最大可承載的使用者連線階段數值。
  • Client Settings: 組態設定使用者連線階段重新導向項目,例如,勾選 Clipboard 的話,則允許使用者可以在連線 RDSH 連線階段伺服器之後,仍然能夠使用剪貼薄功能。
  • User Profile Disks: 預設情況下,登入成功的使用者連線階段,採用的是暫存的使用者設定檔,管理人員可以結合儲存設備,並且啟用 UPD(User Profile Disks)機制,將使用者連線階段的使用者設定檔,重新導向存放至儲存設備當中,並且能夠設定使用者設定檔的最大使用儲存空間。
圖 10、組態設定 Session Collection 相關內容

在 RemoteApp Programs 區塊中,預設建立的 QuickSessionCollection,已經自動發佈三個應用程式分別是 Calculator、Paint、WordPad,管理人員可以選擇「Tasks > Publish RemoteApp Programs」,額外選擇安裝在 RDS 主機當中的應用程式,舉例來說,公司若有 HR 人資系統、CRM 顧客關係管理系統、ERP 進銷存系統 …… 等能夠安裝在 RDS 主機上時,便能透過 RDS 遠端桌面服務當中的 RemoteApp 應用程式虛擬化技術,讓使用者無須在個人電腦中安裝應用程式即可使用。

那麼,使用者該如何判斷執行的應用程式,是在本機電腦中還是遠端 RDS 主機中的應用程式呢? 當使用者執行的是 RemoteApp 應用程式時,那麼該應用程式的圖示便會多出遠端執行的圖示,舉例來說,使用者登入 RDWeb 入口網站執行小畫家應用程式,可以看到工作列中的小畫家應用程式多出了遠端執行的圖示(如圖 11 所示)。

圖 11、透過 RemoteApp 應用程式虛擬化技術執行小畫家應用程式

在 Host Servers 區塊中,管理人員可以查看,目前有多少台 RDSH 連線階段伺服器,點選「Tasks > Add RD Session Host Servers」或「Tasks > Remove RD Session Host Servers」時,可以在此 Collections 當中加入或移除 RDSH 連線階段伺服器。

此外,當 RDSH 連線階段伺服器需要關機或重新啟動進行維護時,例如,更換損壞的記憶體或主機板必須關機時,或者是進行 Windows Update 安全性更新必須重新啟動時,管理人員可以點選欲進行維護的 RDSH 連線階段伺服器,在右鍵選單中選擇「Do not allow new connections」(如圖 12 所示),那麼該台 RDSH 連線階段伺服器,便不會接受新的使用者連線階段,便可以準備進行關機或重新啟動的維護作業。
請注意,雖然不會接受新的使用者連線階段,但是舊有已經連線的使用者連線階段仍然存在,可以搭配下個組態設定區塊,通知使用者改為採用別台 RDSH 連線階段伺服器,或強制登出或中斷使用者連線階段,以便進行維護作業。
圖 12、管理和組態設定 RDSH 連線階段伺服器

最後,在 Connections 區塊中,管理人員除了能夠即時查看哪些使用者,登入哪一台 RDSH 連線階段伺服器和連線資訊之外,在每個使用者連線階段的右鍵選單中,具有四種管理使用者連線階段功能:
  • Disconnect: 強制將指定的使用者連線階段進行「中斷」(Disconnect)作業。
  • Send Message: 針對指定的使用者連線階段傳送系統維護訊息,例如,告知正在連線的使用者,RDSH 連線階段伺服器因為安全性更新的關係,將於 10 分鐘後重新啟動主機(如圖 13 所示)。
  • Shadown: 倘若使用者連線階段操作過程需要管理人員幫忙時,管理人員可以透過 Shadow 選項中的「Remote Session - View」,即時觀看使用者連線階段的操作畫面,甚至選擇「Remote Session - Control」項目,還能遠端控制使用者連線階段的操作畫面,幫助使用者進行操作或故障排除。
  • Log Off: 強制將指定的使用者連線階段進行「登出」(Log Off)作業。
圖 13、針對指定的使用者連線階段傳送系統維護訊息



部署 RDWeb 入口網站 SSL 憑證

預設情況下,系統會為 RDWeb 入口網站建立「六個月」的自簽 SSL 憑證(如圖 14 所示)。管理人員可以視企業或組織的需求,為 RDWeb 入口網站建立正式簽署的 SSL 憑證。在本文實作環境中,將透過 DC 網域控制站建立 Enterprise Root CA 後,在由 RDWeb 入口網站透過 IIS Manager 產生 SSL 憑證申請後,部署網域內部使用的簽署 SSL 憑證。

圖 14、系統預設將為 RDWeb 入口網站建立六個月的自簽 SSL 憑證

首先,確認在 DC 網域控制站當中,已經透過 GPO 群組原則機制,將 Root CA 推送到網域環境中的每台成員伺服器中,舉例來說,管理人員可以登入 RDS 主機中,執行「gpupdate /force」強制重新載入 GPO 群組原則後,查看憑證中的「Trusted Root Certification Authorities > Certificates」項目,確認是否已存在 Root CA(如圖 15 所示)。
倘若,沒有看到 Root CA 的話,請再次執行 gpupdate /force 指令後,重新啟動主機以便再次載入 GPO 群組原則中的電腦設定項目。
圖 15、確認 Root CA 已透過 GPO 群組原則,推送至網域環境中的所有成員伺服器

請登入 RDWeb 入口網站伺服器(本文為 RDS 主機),開啟 IIS Manager 之後,依序點選「Connections > RDS > IIS > Server Certificates」項目後,可以看到目前採用的六個月效期自簽 SSL 憑證。

請按下右方「Actions > Create Domain Certificate」項目,在彈出的 Create Certificate 視窗中,Common name 欄位請正確填入 RDWeb 入口網站伺服器的 FQDN,本文實作環境為「rds.lab.weithenn.org」,在 Online Certification Authority 頁面中,請按下 Specify Online Certification Authority 中的 Select 鈕,選擇剛才已經透過 GPO 群組原則匯入的網域環境 Root CA,並在下方的 Friendly name 欄位填入識別名稱,本文實作填入「Weithenn Lab – RDS SSL Certificate」後,按下 Finish 鈕完成網域環境的 SSL 簽署憑證(如圖 16 所示)。
透過此方式建立的網域環境 SSL 簽署憑證有效期間為「2 年」。

圖 16、完成 RDWeb 入口網站伺服器的網域環境 SSL 簽署憑證

請點選剛才建立的網域環境 SSL 簽署憑證,按下右方的「Actions > Export」,選擇將 SSL 簽署憑證匯出為 .pfx 格式(本文實作為 rds_ssl.pfx),並鍵入二次保護此 .pfx 格式憑證的密碼後,按下 OK 鈕執行憑證匯出作業。

切換回伺服器管理員伺服中,點選「Deployment Overview > Tasks > Edit Deployment Properties」項目,在彈出的 Configure the deployment 視窗中點選 Certificates 項目,可以看到目前 RDCB 和 RDWeb 的憑證狀態都是「未設定」(Not Configured),點選下方的「Select existing certificate」鈕,選擇剛才匯出的 rds_ssl.pfx 憑證,並鍵入保護 .pfx 格式憑證的密碼後,按下 OK 鈕執行憑證匯入作業(如圖 17 所示)。
由於,本文實作環境 RDCB 與 RDWeb 為同一台主機,因此匯出的 rds_ssl.pfx 憑證也可以匯入 RDCB 項目。
圖 17、將匯出的 rds_ssl.pfx 憑證匯入至 RDWeb 入口網站角色中

同樣的,再次透過 GPO 群組原則,將「rds.lab.weithenn.org」憑證推送至網域環境中的所有成員伺服器後,再次於客戶端的主機瀏覽 RDWeb 入口網站伺服器時,便會發現網址列從原本的「Not Secure」,轉變為綠色鎖頭並且為「Connection is secure」狀態,查看憑證資訊即可看到,該憑證是由 Root CA 簽發給 RDS 主機(如圖 18 所示),並且有效期間為二年

圖 18、成功透過 GPO 群組原則推送 RDWeb 入口網站伺服器憑證



RDWeb 入口網站重新導向

有維護過 IIS 網站伺服器的管理人員,應該已經發現到一個問題,倘若使用者鍵入的 RDWeb 入口網站伺服器網址,不是預設登入畫面的「https://rds.lab.weithenn.org/rdweb」網址,而是「https://rds.lab.weithenn.org/」網址時,系統並未自動重新導向至 RDWeb 入口網站頁面,而是顯示 IIS 網站伺服器的預設歡迎頁面(如圖 19 所示)。

圖 19、未自動重新導向至 RDWeb 入口網站頁面,而是 IIS 預設歡迎頁面

請至 RDWeb 入口網站伺服器開啟 IIS Manager,依序點選「Connections > RDS > Sites > Default Web Site > IIS > HTTP Redirect」項目後,首先勾選「Redirect requests to this destination」項目,並在下方鍵入「RDWeb/Pages」重新導向的路徑,接著在 Redirect Behavior 區塊中,勾選「Only redirect requests to content in this directory(not subdirectories)」項目(如圖 20 所示),最後按下右方的「Actions > Apply」,當系統出現「The changes have been successfully saved.」資訊時,表示重新導向的組態設定已經套用生效。

圖 20、組態設定 IIS 預設網址重新導向至 RDWeb 入口網站

現在,當使用者鍵入「https://rds.lab.weithenn.org/」網址時,IIS 網站伺服器將會執行自動重新導向的動作,將使用者重新導向至 RDWeb 入口網站頁面「https://rds.lab.weithenn.org/rdweb」,而非先前因為未執行自動重新導向而看到的 IIS 預設歡迎頁面。



RDWeb 入口網站客製化設定

IT 管理人員可以依照公司需求,客製化設定 RDWeb 入口網站的文字和圖示。預設情況下,RDWeb 入口網站的左上方首要橫幅文字為「Work Resources」,管理人員可以登入至 RDCB 伺服器中(本文為 RDS 主機),執行「Set-RDWorkspace -Name "Weithenn Lab – RDS Portal"」的 PowerShell 指令,即可更改左上方首要橫幅文字的顯示內容(如圖 21 所示)。

圖 21、變更 RDWeb 入口網站的左上方橫幅文字內容

預設情況下,RDWeb 入口網站右上方橫幅文字為「RD Web Access」,而左上方次要橫幅文字為「RemoteApp and Desktop Connection」,管理人員可以登入至 RDWeb 入口網站伺服器中(本文為 RDS 主機),編輯「%windir%\web\rdweb\pages\<language-code>」資料夾內的「RDWAStrings.xml」檔案內容,修改第 10 行「HeadingRDWA」和第 11 行「HeadingApplicationName」內容即可(如圖 22 所示)。

圖 22、修改 RDWeb 入口網站右上方和左上方次要橫幅文字

修改完成並儲存後,切換至使用者端瀏覽器重新整理頁面,即可看到更改後 RDWeb 入口網站右上方和左上方次要橫幅文字。本文實作中,將右上方文字更改為「RDS Portal」,而左上方次要橫幅文字修改為「RemoteApp for HR, CRM, and ERP systems.」(如圖 23 所示)。

圖 23、成功修改 RDWeb 入口網站右上方和左上方次要橫幅文字

在同樣的資料夾路徑中,管理人員可以修改「login.aspx」檔案內容中,第 43 行「L_TSWATimeoutLabel_Text」內容,即可達到修改 RDWeb 入口網站下方一長串的說明文字的目的(如圖 24 所示)。

圖 24、修改 RDWeb 入口網站下方一長串的說明文字

此外,我們也可以將 RDWeb 入口網站中的 Logo 圖案,更換為企業或組織的 Logo 圖案。首先,請將企業或組織的 Logo 圖案儲存名稱為「logo_02.png」之後,複製到 RDWeb 入口網站伺服器中的「%windir%\web\rdweb\pages\images」路徑下,取代原有的 logo_02.png 圖檔,即可達成更換 RDWeb 入口網站中 Logo 的目的(如圖 25 所示)。
右上角橫幅圖示則是 logo_01.png,管理人員可視需求進行更換。
圖 25、更換 RDWeb 入口網站中的 Logo 圖示





結語

透過本文的深入剖析及實戰演練,希望幫助讓原本 IT 預算和資訊人員較為不足的小型企業,也能透過 Microsoft RDS 遠端桌面服務,快速建構出讓員工能夠在家工作的運作環境。