WFH 在家工作 遠端桌面 RDS 異地備援

疫情未歇在家工作勢不可免 小型企業善用現有工具即可因應

架設微軟RDS遠端桌面 速成遠距辦公友善環境

2021-10-11
COVID-19疫情升溫,分流上班或在家工作勢不可免,中大型企業的IT預算和資訊人員充足應可順利度過難關,但原本IT預算和資訊人員較為不足的小型企業就是一大考驗,為此本文將示範如何以Microsoft RDS遠端桌面服務來建構可讓員工在家工作的運作環境。

 

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

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

圖1  中大型企業建構的高可用性RDS遠端桌面服務運作架構示意圖。 (圖片來源:Microsoft Docs - Azure中的異地備援RDS資料中心)

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

RDS部署模式和角色

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

圖2  Microsoft RDS遠端桌面服務,基本部署和高可用性部署示意圖。 (圖片來源:Microsoft Docs - 遠端桌面服務架構)

在RDS遠端桌面服務運作架構中,共有五個主要的運作角色,分別負責不同的工作任務:

‧遠端桌面工作階段主機(Remote Desktop Session Host,RDSH):保留使用者工作階段的應用程式和桌面連線,支援兩種運作模式,分別是VM虛擬主機模式(VM Based)和連線階段模式(Session Based)。

‧遠端桌面連線代理人(Remote Desktop Connection Broker,RDCB):當使用者建立遠端桌面工作階段時,負責將這些使用者連線工作階段負載平衡至不同的RDSH主機。原則上,每台RDCB主機可以同時處理超過10,000個使用者連線工作階段。

‧遠端桌面閘道(Remote Desktop GateWay,RDGW):當使用者連線必須從外部網際網路連線至內部RDSH主機時,才需要建置。

‧遠端桌面Web存取(Remote Desktop Web access,RDWeb):透過入口網站的方式驗證使用者身分之後,提供使用者存取桌面和相關應用程式。

‧遠端桌面授權(Remote Desktop Licensing Server,RDLS):提供RDS遠端桌面服務存取使用權。

實戰RDS遠端桌面服務

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

快速部署RDS遠端桌面服務

在本文實作環境中,將RDS遠端桌面服務RDSH、RDCB、RDWeb這三個角色,安裝於一台Windows Server 2019主機中(後續簡稱為RDS主機),以便快速及最小化建構出工作階段型虛擬化運作環境。

在RDS主機中,開啟伺服器管理員後依序點選「Manage > Add Roles and Features」,在彈出視窗中Select installation type階段時,選擇「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〕按鈕執行部署的動作。

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

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

後續管理人員可以透過「Invoke-WmiMethod」的PowerShell指令,搭配查詢「GetGracePeriodDays」內容,即可看到RDS遠端桌面服務試用期間還剩下多少天,如圖6所示。

圖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所示。

圖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內的組態設定值和運作環境。

圖10  組態設定Session Collection相關內容。

‧Session:組態設定和管理使用者連線資訊,舉例來說,透過Idle Session Limit組態設定值,可以定義使用者連線階段「閒置」(Idle)時間,超過組態設定值之後便強制中斷該使用者連線階段。

‧Security:組態設定使用者連線階段的安全性層級和加密層級。

‧Load Balancing:顯示此Collections有多少台RDSH連線階段伺服器,並且設定每台伺服器的負載平衡權重,以及最大可承載的使用者連線階段數值。

‧Client Settings:組態設定使用者連線階段重新導向項目,例如勾選Clipboard,則允許使用者可以在連線RDSH連線階段伺服器之後,仍然能夠使用剪貼薄功能。

‧User Profile Disks:預設情況下,登入成功的使用者連線階段,採用的是暫存的使用者設定檔,管理人員可以結合儲存設備並啟用UPD(User Profile Disks)機制,將使用者連線階段的使用者設定檔,重新導向存放至儲存設備當中,並且能夠設定使用者設定檔的最大使用儲存空間。

在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連線階段伺服器便不會接受新的使用者連線階段,就可以準備進行關機或重新啟動的維護作業。

圖12  管理和組態設定RDSH連線階段伺服器。

最後,在Connections區塊中,管理人員除了能夠即時查看哪些使用者登入哪一台RDSH連線階段伺服器和連線資訊外,在每個使用者連線階段的右鍵選單中,具有四種管理使用者連線階段功能:

‧Disconnect:強制將指定的使用者連線階段進行「中斷」(Disconnect)作業。

‧Send Message:針對指定的使用者連線階段傳送系統維護訊息,例如告知正在連線的使用者,RDSH連線階段伺服器因為安全性更新的關係,將於10分鐘後重新啟動主機,如圖13所示。

圖13  針對指定的使用者連線階段傳送系統維護訊息。

‧Shadown:倘若使用者連線階段操作過程需要管理人員幫忙,管理人員可以透過Shadow選項中的「Remote Session - View」,即時觀看使用者連線階段的操作畫面,甚至選擇「Remote Session - Control」項目,還能遠端控制使用者連線階段的操作畫面,幫助使用者進行操作或故障排除。

‧Log Off:強制將指定的使用者連線階段進行「登出」(Log Off)作業。

部署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所示。

圖17  將匯出的rds_ssl.pfx憑證匯入至RDWeb入口網站角色中。

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

圖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所示。

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

最後按下右方的「Actions > Apply」,當系統出現「The changes have been successfully saved.」資訊時,表示重新導向的組態設定已經套用生效。

現在,使用者鍵入「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\」資料夾內的「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所示。

圖25  更換RDWeb入口網站中的Logo圖示。

結語

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

<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>

 


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!