chapter 8 遠端桌面協定
DESCRIPTION
Chapter 8 遠端桌面協定. 大綱. 簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道 伺服器端 客戶端 範例. 簡介. 遠端桌面協定( Remote Desktop protocol , RDP )屬於 Microsoft Windows Terminal Services 的一部份。 使用者登入終端機,執行主機電腦上的應用程式、存取檔案、資料庫和網路資源等等。 應用程式完全是在伺服器上執行,遠端桌面客戶端並無執行任何本機的應用程式。. 簡介 (cont.). 允許多個客戶端同時登入 - PowerPoint PPT PresentationTRANSCRIPT
Chapter 8 遠端桌面協定
8-2
大綱
簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道
– 伺服器端– 客戶端– 範例
8-3
簡介
遠端桌面協定( Remote Desktop protocol , RDP )屬於 Microsoft Windows Terminal Services 的一部份。
使用者登入終端機,執行主機電腦上的應用程式、存取檔案、資料庫和網路資源等等。
應用程式完全是在伺服器上執行,遠端桌面客戶端並無執行任何本機的應用程式。
8-4
簡介 (cont.)
允許多個客戶端同時登入 每個客戶端連線都是獨立的 由主機作業系統來管理多個使用者存取共用資
源的問題 遠端桌面與傳統終端機環境的比較:
– 傳統終端機環境中的終端機只提供文字輸入與輸出– 遠端桌面客戶端提供了完整的圖形使用者介面。
Windows 作業系統桌面。 支援各式各樣的輸入設備,如鍵盤與滑鼠。
8-5
議程
簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道
– 伺服器端– 客戶端– 範例
8-6
終端服務連線
當使用者登入遠端桌面時,啟動一個連線 每個連線具有唯一的連線識別碼。 每個連線都會產生互動視窗工作站
( Interactive Window Station ):– 互動視窗工作站唯一的名稱是 WinSta0 。– 每個視窗工作站都有三種標準桌面:
視窗登入桌面 螢幕保護程式桌面 互動桌面
8-7
終端服務連線 (cont.)
當互動使用者登出遠端桌面時,伺服器上的客戶端連線就會被刪除,相關的視窗與桌面也會被刪除。
8-8
議程
簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道
– 伺服器端– 客戶端– 範例
8-9
遠端桌面協定
RDP 是以 TCP/IP 作為傳送協定,在客戶端與伺服器間建立連線。
Windows 5.0 使用 RDP 5.5 的版本。 RDP 各版本均相容 Windows CE .NET 客戶端可以與以下伺服器連線:
– Windows NT Terminal Server : RDP 4.0– Windows 2000 Terminal Services : RDP 5.0– Windows XP Profession Edition : RDP 5.1 或更新的版本
8-10
RDP 5.5 (1/3)
與 Unicode 相容 允許網路本地化、自動斷線與遠端設定組態 以客戶端 bitmap 快取或壓縮方式,提供可變
的頻寬配置 支援多個虛擬通道 提供遠端控制功能 網路負載平衡( NLB )功能 支援高彩 8 位元、 16 位元和 24 位元圖形
8-11
RDP 5.5 (2/3)
剪貼簿共享 將本機印表機重新導向,使遠端應用程式能將
資料在本機的印表機中輸出。 遠端應用程式播放的聲音資料,可以在遠端或
本機端播放。 將本機傳輸埠重新導向,使遠端應用程式可以
使用本機端的平行埠與序列埠。 將本機檔案系統重新導向,使遠端應用程式可
以使用本機端的檔案系統。
8-12
RDP 5.5 (3/3)
支援 file redirector filter ,允許顯示特定的目錄
提供終端服務客戶端存取使用權 (TS CAL) 維護工具
在 GWES 中執行
8-13
大綱
簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道
– 伺服器端– 客戶端– 範例
8-14
.rdp 檔 參數設定 (1/6)
關鍵字:類型:預設值 說明AudioRedirectionMode:i:0 設定聲音在哪一端播放。 0值表示在客戶端播放; 1值表示
在遠端電腦播放; 2值表示不播放聲音。AutoReconnectionEnabled:i:1 連線遺失時,設定是否自動重新連線。 1值表示啟動自動重
新連線; 0值表示關閉。BBarEnabled:i:1 設定是否顯示連線桿( connection bar),方便使用者將遠端
桌面放大、縮小,以及與本機桌面切換。 0值表示不顯示連線桿; 1值表示顯示。
BBarShowMinimizeBtn:i:1 設定連線桿上是否顯示視窗縮小按鈕。 0值表示不顯示; 1值表示顯示。
BbarShowPinButton:i:0 設定連線桿上是否顯示固定按鈕( pin button)。 0值表示不顯示固定按鈕,連線桿固定在遠端連線視窗的上方,遠端的桌面畫面在下方顯示; 1值表示顯示固定按鈕,使用者可以取消從 UI ( User interface)取消固定連線桿。
8-15
.rdp 檔 參數設定 (2/6)
關鍵字:類型:預設值 說明BBarShowRestoreBtn:i:1 設定連線桿上是否顯示恢復按鈕( restore)。 0值表示不
顯示恢復按鈕; 1 值表示顯示。BBarPinned:i:1 設定是否將連顯桿固定於 shell 。 0值表示,當滑鼠離開連
線桿時,連線桿會自動隱藏; 1 值表示永久顯示連線桿。BitmapCacheSize:i:1500 設定記憶體的位元圖高速緩衝儲存器的大小,單位是 KB,
最大值是 32000。BitmapPersistCacheLocation:s:\Temp 設定位元圖高速緩衝儲存器的位置。
BitmapPersistenceEnabled:i:0 設定是否選擇位元圖高速緩衝儲存器。 0值表示不選擇位元圖高速緩衝儲存器; 1值表示選擇。
ColorDepthID:i:4 設定色彩深度( bits per pixel , bpp)。 0值表示 4 bpp ;1 值表示 8 bpp ; 2 值表示 15 bpp ; 3 值表示 16 bpp ; 4值表示 24 bpp 。
8-16
.rdp 檔 參數設定 (3/6)
關鍵字:類型:預設值 說明Compress:i:1 啟動檔案和目錄壓縮。預設為啟動壓縮,建議不要改變此值。ConnectToServerConsole:i:0 只適用於 non-Windows-based Thin Client,設定使用命令提
示字元建立連線。 0值表示連線至終端服務通話,Windows XP Professional不支援此功能; 1值表示建立連線至主機端。
desktopheight:i:1024 設定顯示的像素解析高度,預設值由作業系統檢測設備的結果。
desktopwidth:i:1280 設定顯示的像素解析寬度,預設值由作業系統檢測設備的結果。
disable full window drag:i:1 設定啟動或關閉 full window drag功能。 1值表示啟動; 0值表示關閉。
disable menu anims:i:1 設定啟動或關閉選單動畫。 1值表示啟動; 0值表示關閉。
8-17
.rdp 檔 參數設定 (4/6)
關鍵字:類型:預設值 說明disable themes:i:0 設定是否啟動或關閉布景主題( theme)。 1值表示啟動;
0值表示關閉。disable wallpaper:i:1 設定是否啟動或關閉桌不。 1值表示啟動; 0值表示關閉。DisableFileAccess:i:1 設定使用者使否能存取本機檔案系統( local file
system)。 1值表示關閉此功能, UI上的另存新檔和開啟按鈕無法使用; 0值表示使用者可以存取區域檔案系統。
domain:s:C1554501-A 設定哪個 domain的使用者能登入遠端設備。此無預設值。EnableDriveRedirection:i:1 設定是否啟動裝置重新導向。 1值表示啟動; 0值表示關閉。EnablePortRedirection:i:1 設定是否啟動 COM埠重新導向。 1值表示啟動; 0值表示
關閉。
8-18
.rdp 檔 參數設定 (5/6)
關鍵字:類型:預設值 說明EnablePrinterRedirection:i:1 設定是否啟動印表機重新導向。 1值表示啟動; 0值表示關
閉。EnableSCardRedirection:i:1 設定是否啟動 smart card重新導向。 1值表示啟動; 0值表
示關閉。
KeyboardHookMode:i:2 當 ALT-TAB同時被按壓時,設定顯示什麼畫面。 0值表示;1值表示顯示遠端裝置的項目; 2值表示顯示全螢幕。
MaxReconnectAttempts:i:20 連線遺失後,設定重新連線次數的最大值。
MCSPort:i:3389 設定 RDP 的 Winsock埠。預設值為 3389,如果終端服務使用別的埠,在此修改。
8-19
.rdp 檔 參數設定 (6/6)
關鍵字:類型:預設值 說明Password:s:<password> 設定使用者密碼,對應 UserName的使用者帳戶。
ServerName:s:65.4.18. 設定遠端設備的 IP位址:StartFullScreen:i:1 開啟遠端服務通話時,設定是否顯示全螢幕。 1值
表示顯示全螢幕; 0值表示不顯示。AlternateShell:s:<startup shell or application> 設定通話是否使用 alternate shell或啟動應用程式。
UserName:s:<name> 設定可以登入遠端設備的使用者名稱。WorkingDir:s:<folder> 設定 alternate shell或啟動應用程式存放的資料夾。
8-20
大綱
簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道
– 伺服器端– 客戶端– 範例
8-21
RDP Registery 設定
控制終端服務的所有連線 – HKEY_CURRENT_USER\Software\Microsoft\
Terminal Server Client
啟動或關閉裝置重新導向– HKEY_CURRENT_USER\Software\Microsoft\
Terminal Server Client\<Connection Name>\EnableDriveRedirection
8-22
RDP Registery 設定 (cont.)
終端服務客戶端 – HKEY_LOCAL_MACHINE\Software\Microsoft\
Terminal Server Client
載入虛擬通道外接式 DLL – HKEY_LOCAL_MACHINE\Software\Microsoft\
Terminal Server Client\Default\Addins\<virtual channel name>
8-23
控制終端服務的所有連線
值 :類型 說明
BitmapCacheSize : REG_DWORD 設定記憶體的位元圖高速緩衝儲存器的大小,預設值是 1500,單位是 KB,最大值是 32000。
BitmapPersistCacheSize : REG_DWORD
設定位元圖快速緩衝儲存器的檔案大小,預設值是10,單位是 KB。
RequireVKPackets : REG_DWORD 此註冊值是保留給處理鍵盤輸入使用,預設值是 0,不能修改。
8-24
啟動或關閉裝置重新導向
註冊碼 =1 ,代表啟動 ( 預設 ) ; 0 代表關閉。 當啟動裝置重新導向,使用者可以使用檔案重
新導向過濾器( file redirection filter )來存取指定的目錄。
設定存取的目錄– HKEY_LOCAL_MACHINE\System\
StorageManager\AutoLoad\FilterFsd– RootPath="\\"
8-25
終端服務客戶端
值:類型 說明BitmapPersistCacheLocation :
REG_DWORD設定 cache file儲存的資料夾路徑,預設是 \Windows\temp。
DisableFileAccess : REG_DWORD 設定使用者是否能存取本機檔案系統。預設值為1,表示關閉本機檔案系統,使用者無法使用 UI的另存新檔和開啟按鈕。 0值表示允許使用者存取本機檔案系統。
FullScreenAlways : REG_DWORD 遠端連線時,預設執行全螢幕。使用者可以增加此註冊碼,來改變視窗的大小。 0值表示啟動窗口模式( windowed mode); 1值表示關閉窗口模式,遠端桌面連線對話視窗不提供選項讓使用者改變遠端桌面的大小, RDP通話永遠以全螢幕模式執行。Windows Thin Client Shell的預設值為 1。
8-26
載入虛擬通道外接式 DLL
值:類型 說明
Name: REG_SZ 設定要載入的虛擬通道外接式 DLL的名稱,用逗號( ,)來分隔。沒有預設值。
8-27
RDP 安全性
不在設備上儲存密碼 增加 BbarShowPinButton 註冊碼 小心自動執行的 script 留意註冊表設定 關閉終端服務的某些功能
8-28
大綱
簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道
– 伺服器端– 客戶端– 範例
8-29
虛擬通道
RDP 5.1 以後的版本都有支援。 客製化的資料格式,與 RDP 無關。使用者可
直接新增功能,不用修改 RDP 。 需要虛擬通道的情況
– 核心模式的驅動程式(序列埠或印表機驅動程式)– 檔案系統重新導向– 使用者模式的應用程式(遠端剪下與貼上)– 聲音裝置
8-30
虛擬通道 (cont.)
虛擬通道應用程式需要客戶端和伺服器端的元件:– 伺服器端元件
可以是使用者模式的應用程式,或核心模式的驅動程式– 客戶端元件
為動態鏈結程式庫( Dynamic Link Library , DLL ) 在建立遠端連線時,必須將 DLL 載入本機端的記憶體中
8-31
伺服器端
啟動虛擬通道應用程式– logon script– 啟動資料夾– 使用者手動開啟
在註冊表中新增 WTSVirtualChannelOpen子鍵( subkey ),並將應用程式名稱儲存起來– HKEY_LOCAL_MACHINE\System\
CurrentControlSet\Control\TerminalServer\Addins
8-32
伺服器端函式
函式 說明
WTSVirtualChannelClose 關閉虛擬通道。
WTSVirtualChannelPurgeInput 清理特定虛擬通道中等候輸入的資料,這些資料是從客戶端傳送至伺服器端。
WTSVirtualChannelPurgeOutput 清理特定虛擬通道中等候輸出的資料,這些資料是從伺服器端傳送至客戶端。
WTSVirtualChannelQuery 回傳特定虛擬通道的相關資訊。
WTSVirtualChannelRead 從虛擬通道的伺服器端讀取資料。
WTSVirtualChannelWrite 將資料寫入虛擬通道的伺服器端。
8-33
大綱
簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道
– 伺服器端– 客戶端– 範例
8-34
客戶端
是一個動態鏈結程式庫( DLL ) 在終端服務初始化時,載入到客戶端電腦。 必須在客戶端電腦註冊 DLL 客戶端 DLL 的功能
– 當 RDP 在 Microsoft ActiveX Control模式執行時,提供 VirtualChannelEntry函式功能。
– 當 RDP 在 GWES ( Graphics Windowing and Events Subsystem )模式執行時,提供VirtualCnannelEntryEx函式功能。
8-35
虛擬通道客戶端函式 - Microsoft ActiveX Control 模式執行
函式 說明VirtualChannelInit 註冊客戶端所使用的虛擬通道名稱,並提供
VirtualChannelInitEvent回撥( callback),讓終端服務通知客戶端會影響客戶端連線的事件。
VirtualChannelOpen 啟動指定虛擬通道的客戶端,並提供VirtualChannelOpenEvent回撥( callback),讓終端服務通知客戶端會影響客戶端連線的事件。
VirtualChannelWrite 將資料寫入虛擬通道,終端服務會將此資料傳送到虛擬通道的伺服器端,伺服器端呼叫WTSVirtualChannelRead函式來讀取資料。
VirtualChannelClose 關閉虛擬通道。
8-36
虛擬通道客戶端函式 - GWES 模式執行
函式 說明VirtualChannelInitEx 註冊客戶端所使用的虛擬通道名稱,並提供
VirtualChannelInitEventEx回撥( callback),讓終端服務通知客戶端會影響客戶端連線的事件。
VirtualChannelOpenEx 啟動指定虛擬通道的客戶端,並提供VirtualChannelOpenEventEx回撥( callback),讓終端服務通知客戶端會影響客戶端連線的事件。
VirtualChannelWriteEx 將資料寫入虛擬通道,終端服務會將此資料傳送到虛擬通道的伺服器端。
VirtualChannelCloseEx 關閉虛擬通道。
8-37
客戶端註冊
使用者必須將客戶端 DLL 的名稱儲存在註冊表中 – HKEY_CURRENT_USER\Software\Microsoft\
Terminal Server Client\Default\Addins適合所有的連線
– HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\connection\Addins
適合指定的連線
8-38
客戶端註冊 (cont.)
Name = DLLname– DLLname 可以是完整的路徑。如果 DLLname 不包含路徑,則會使用標準 DLL搜尋方式
RemoteControlPersistent = flag ( optional )– flag=0 (預設):當連線或中斷時,會發送相關事件訊號。
– flag=1 :當遠端控制開始或停止時,不會發送通知。
8-39
大綱
簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道
– 伺服器端– 客戶端– 範例
8-40
範例
伺服器端 客戶端程式。
8-41
伺服器端程式
伺服器端– 取得客戶端機器的系統資訊和記憶體資訊– 每兩秒更新一次– 當客戶端終止連線時,伺服器端便停止取得資訊– 客戶端重新連線時,則重新啟動– 當使用者按 Ctrl+C 或 Ctrl+Break ,伺服器端應用
程式就會結束,並且發出一個事件通知,停止取得系統資訊並清除所有的外部控制。
8-42
客戶端程式
伺服器端應用程式傳送一個封包給客戶端 DLL ,判斷封包為 TSVERSIONINFO 或TSMEMORYINFO類型,引發 worker thread ,將請求封包寫入虛擬通道
當客戶端終止連線時,客戶端 DLL 會清除, worker thread 會發出停止通知,如果五秒內沒有停止,就會終止。
8-43
伺服器端 (1/4)
8-44
伺服器端 (2/4)
8-45
伺服器端 (3/4)
8-46
伺服器端 (4/4)
8-47
客戶端 (1/3)
8-48
客戶端 (2/3)
8-49
客戶端 (3/3)
8-50
結語
終端服務通話 遠端桌面協定 .rdp 檔參數和 RDP 註冊表設定 虛擬通道
8-51
謝謝指教!