chapter 8  遠端桌面協定

51
Chapter 8 遠遠遠遠遠遠

Upload: charde-finch

Post on 03-Jan-2016

56 views

Category:

Documents


0 download

DESCRIPTION

Chapter 8  遠端桌面協定. 大綱. 簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道 伺服器端 客戶端 範例. 簡介. 遠端桌面協定( Remote Desktop protocol , RDP )屬於 Microsoft Windows Terminal Services 的一部份。 使用者登入終端機,執行主機電腦上的應用程式、存取檔案、資料庫和網路資源等等。 應用程式完全是在伺服器上執行,遠端桌面客戶端並無執行任何本機的應用程式。. 簡介 (cont.). 允許多個客戶端同時登入 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 8  遠端桌面協定

Chapter 8 遠端桌面協定

Page 2: Chapter 8  遠端桌面協定

8-2

大綱

簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道

– 伺服器端– 客戶端– 範例

Page 3: Chapter 8  遠端桌面協定

8-3

簡介

遠端桌面協定( Remote Desktop protocol , RDP )屬於 Microsoft Windows Terminal Services 的一部份。

使用者登入終端機,執行主機電腦上的應用程式、存取檔案、資料庫和網路資源等等。

應用程式完全是在伺服器上執行,遠端桌面客戶端並無執行任何本機的應用程式。

Page 4: Chapter 8  遠端桌面協定

8-4

簡介 (cont.)

允許多個客戶端同時登入 每個客戶端連線都是獨立的 由主機作業系統來管理多個使用者存取共用資

源的問題 遠端桌面與傳統終端機環境的比較:

– 傳統終端機環境中的終端機只提供文字輸入與輸出– 遠端桌面客戶端提供了完整的圖形使用者介面。

Windows 作業系統桌面。 支援各式各樣的輸入設備,如鍵盤與滑鼠。

Page 5: Chapter 8  遠端桌面協定

8-5

議程

簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道

– 伺服器端– 客戶端– 範例

Page 6: Chapter 8  遠端桌面協定

8-6

終端服務連線

當使用者登入遠端桌面時,啟動一個連線 每個連線具有唯一的連線識別碼。 每個連線都會產生互動視窗工作站

( Interactive Window Station ):– 互動視窗工作站唯一的名稱是 WinSta0 。– 每個視窗工作站都有三種標準桌面:

視窗登入桌面 螢幕保護程式桌面 互動桌面

Page 7: Chapter 8  遠端桌面協定

8-7

終端服務連線 (cont.)

當互動使用者登出遠端桌面時,伺服器上的客戶端連線就會被刪除,相關的視窗與桌面也會被刪除。

Page 8: Chapter 8  遠端桌面協定

8-8

議程

簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道

– 伺服器端– 客戶端– 範例

Page 9: Chapter 8  遠端桌面協定

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 或更新的版本

Page 10: Chapter 8  遠端桌面協定

8-10

RDP 5.5 (1/3)

與 Unicode 相容 允許網路本地化、自動斷線與遠端設定組態 以客戶端 bitmap 快取或壓縮方式,提供可變

的頻寬配置 支援多個虛擬通道 提供遠端控制功能 網路負載平衡( NLB )功能 支援高彩 8 位元、 16 位元和 24 位元圖形

Page 11: Chapter 8  遠端桌面協定

8-11

RDP 5.5 (2/3)

剪貼簿共享 將本機印表機重新導向,使遠端應用程式能將

資料在本機的印表機中輸出。 遠端應用程式播放的聲音資料,可以在遠端或

本機端播放。 將本機傳輸埠重新導向,使遠端應用程式可以

使用本機端的平行埠與序列埠。 將本機檔案系統重新導向,使遠端應用程式可

以使用本機端的檔案系統。

Page 12: Chapter 8  遠端桌面協定

8-12

RDP 5.5 (3/3)

支援 file redirector filter ,允許顯示特定的目錄

提供終端服務客戶端存取使用權 (TS CAL) 維護工具

在 GWES 中執行

Page 13: Chapter 8  遠端桌面協定

8-13

大綱

簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道

– 伺服器端– 客戶端– 範例

Page 14: Chapter 8  遠端桌面協定

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)取消固定連線桿。

Page 15: Chapter 8  遠端桌面協定

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 。

Page 16: Chapter 8  遠端桌面協定

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值表示關閉。

Page 17: Chapter 8  遠端桌面協定

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值表示

關閉。

Page 18: Chapter 8  遠端桌面協定

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,如果終端服務使用別的埠,在此修改。

Page 19: Chapter 8  遠端桌面協定

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或啟動應用程式存放的資料夾。

Page 20: Chapter 8  遠端桌面協定

8-20

大綱

簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道

– 伺服器端– 客戶端– 範例

Page 21: Chapter 8  遠端桌面協定

8-21

RDP Registery 設定

控制終端服務的所有連線 – HKEY_CURRENT_USER\Software\Microsoft\

Terminal Server Client

啟動或關閉裝置重新導向– HKEY_CURRENT_USER\Software\Microsoft\

Terminal Server Client\<Connection Name>\EnableDriveRedirection

Page 22: Chapter 8  遠端桌面協定

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>

Page 23: Chapter 8  遠端桌面協定

8-23

控制終端服務的所有連線

值 :類型 說明

BitmapCacheSize : REG_DWORD 設定記憶體的位元圖高速緩衝儲存器的大小,預設值是 1500,單位是 KB,最大值是 32000。

BitmapPersistCacheSize : REG_DWORD

設定位元圖快速緩衝儲存器的檔案大小,預設值是10,單位是 KB。

RequireVKPackets : REG_DWORD 此註冊值是保留給處理鍵盤輸入使用,預設值是 0,不能修改。

Page 24: Chapter 8  遠端桌面協定

8-24

啟動或關閉裝置重新導向

註冊碼 =1 ,代表啟動 ( 預設 ) ; 0 代表關閉。 當啟動裝置重新導向,使用者可以使用檔案重

新導向過濾器( file redirection filter )來存取指定的目錄。

設定存取的目錄– HKEY_LOCAL_MACHINE\System\

StorageManager\AutoLoad\FilterFsd– RootPath="\\"

Page 25: Chapter 8  遠端桌面協定

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。

Page 26: Chapter 8  遠端桌面協定

8-26

載入虛擬通道外接式 DLL

值:類型 說明

Name: REG_SZ 設定要載入的虛擬通道外接式 DLL的名稱,用逗號( ,)來分隔。沒有預設值。

Page 27: Chapter 8  遠端桌面協定

8-27

RDP 安全性

不在設備上儲存密碼 增加 BbarShowPinButton 註冊碼 小心自動執行的 script 留意註冊表設定 關閉終端服務的某些功能

Page 28: Chapter 8  遠端桌面協定

8-28

大綱

簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道

– 伺服器端– 客戶端– 範例

Page 29: Chapter 8  遠端桌面協定

8-29

虛擬通道

RDP 5.1 以後的版本都有支援。 客製化的資料格式,與 RDP 無關。使用者可

直接新增功能,不用修改 RDP 。 需要虛擬通道的情況

– 核心模式的驅動程式(序列埠或印表機驅動程式)– 檔案系統重新導向– 使用者模式的應用程式(遠端剪下與貼上)– 聲音裝置

Page 30: Chapter 8  遠端桌面協定

8-30

虛擬通道 (cont.)

虛擬通道應用程式需要客戶端和伺服器端的元件:– 伺服器端元件

可以是使用者模式的應用程式,或核心模式的驅動程式– 客戶端元件

為動態鏈結程式庫( Dynamic Link Library , DLL ) 在建立遠端連線時,必須將 DLL 載入本機端的記憶體中

Page 31: Chapter 8  遠端桌面協定

8-31

伺服器端

啟動虛擬通道應用程式– logon script– 啟動資料夾– 使用者手動開啟

在註冊表中新增 WTSVirtualChannelOpen子鍵( subkey ),並將應用程式名稱儲存起來– HKEY_LOCAL_MACHINE\System\

CurrentControlSet\Control\TerminalServer\Addins

Page 32: Chapter 8  遠端桌面協定

8-32

伺服器端函式

函式 說明

WTSVirtualChannelClose 關閉虛擬通道。

WTSVirtualChannelPurgeInput 清理特定虛擬通道中等候輸入的資料,這些資料是從客戶端傳送至伺服器端。

WTSVirtualChannelPurgeOutput 清理特定虛擬通道中等候輸出的資料,這些資料是從伺服器端傳送至客戶端。

WTSVirtualChannelQuery 回傳特定虛擬通道的相關資訊。

WTSVirtualChannelRead 從虛擬通道的伺服器端讀取資料。

WTSVirtualChannelWrite 將資料寫入虛擬通道的伺服器端。

Page 33: Chapter 8  遠端桌面協定

8-33

大綱

簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道

– 伺服器端– 客戶端– 範例

Page 34: Chapter 8  遠端桌面協定

8-34

客戶端

是一個動態鏈結程式庫( DLL ) 在終端服務初始化時,載入到客戶端電腦。 必須在客戶端電腦註冊 DLL 客戶端 DLL 的功能

– 當 RDP 在 Microsoft ActiveX Control模式執行時,提供 VirtualChannelEntry函式功能。

– 當 RDP 在 GWES ( Graphics Windowing and Events Subsystem )模式執行時,提供VirtualCnannelEntryEx函式功能。

Page 35: Chapter 8  遠端桌面協定

8-35

虛擬通道客戶端函式 - Microsoft ActiveX Control 模式執行

函式 說明VirtualChannelInit 註冊客戶端所使用的虛擬通道名稱,並提供

VirtualChannelInitEvent回撥( callback),讓終端服務通知客戶端會影響客戶端連線的事件。

VirtualChannelOpen 啟動指定虛擬通道的客戶端,並提供VirtualChannelOpenEvent回撥( callback),讓終端服務通知客戶端會影響客戶端連線的事件。

VirtualChannelWrite 將資料寫入虛擬通道,終端服務會將此資料傳送到虛擬通道的伺服器端,伺服器端呼叫WTSVirtualChannelRead函式來讀取資料。

VirtualChannelClose 關閉虛擬通道。

Page 36: Chapter 8  遠端桌面協定

8-36

虛擬通道客戶端函式 - GWES 模式執行

函式 說明VirtualChannelInitEx 註冊客戶端所使用的虛擬通道名稱,並提供

VirtualChannelInitEventEx回撥( callback),讓終端服務通知客戶端會影響客戶端連線的事件。

VirtualChannelOpenEx 啟動指定虛擬通道的客戶端,並提供VirtualChannelOpenEventEx回撥( callback),讓終端服務通知客戶端會影響客戶端連線的事件。

VirtualChannelWriteEx 將資料寫入虛擬通道,終端服務會將此資料傳送到虛擬通道的伺服器端。

VirtualChannelCloseEx 關閉虛擬通道。

Page 37: Chapter 8  遠端桌面協定

8-37

客戶端註冊

使用者必須將客戶端 DLL 的名稱儲存在註冊表中 – HKEY_CURRENT_USER\Software\Microsoft\

Terminal Server Client\Default\Addins適合所有的連線

– HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\connection\Addins

適合指定的連線

Page 38: Chapter 8  遠端桌面協定

8-38

客戶端註冊 (cont.)

Name = DLLname– DLLname 可以是完整的路徑。如果 DLLname 不包含路徑,則會使用標準 DLL搜尋方式

RemoteControlPersistent = flag ( optional )– flag=0 (預設):當連線或中斷時,會發送相關事件訊號。

– flag=1 :當遠端控制開始或停止時,不會發送通知。

Page 39: Chapter 8  遠端桌面協定

8-39

大綱

簡介 終端服務連線 遠端桌面協定 .rdp 檔參數設定 RDP 註冊表設定 虛擬通道

– 伺服器端– 客戶端– 範例

Page 40: Chapter 8  遠端桌面協定

8-40

範例

伺服器端 客戶端程式。

Page 41: Chapter 8  遠端桌面協定

8-41

伺服器端程式

伺服器端– 取得客戶端機器的系統資訊和記憶體資訊– 每兩秒更新一次– 當客戶端終止連線時,伺服器端便停止取得資訊– 客戶端重新連線時,則重新啟動– 當使用者按 Ctrl+C 或 Ctrl+Break ,伺服器端應用

程式就會結束,並且發出一個事件通知,停止取得系統資訊並清除所有的外部控制。

Page 42: Chapter 8  遠端桌面協定

8-42

客戶端程式

伺服器端應用程式傳送一個封包給客戶端 DLL ,判斷封包為 TSVERSIONINFO 或TSMEMORYINFO類型,引發 worker thread ,將請求封包寫入虛擬通道

當客戶端終止連線時,客戶端 DLL 會清除, worker thread 會發出停止通知,如果五秒內沒有停止,就會終止。

Page 43: Chapter 8  遠端桌面協定

8-43

伺服器端 (1/4)

Page 44: Chapter 8  遠端桌面協定

8-44

伺服器端 (2/4)

Page 45: Chapter 8  遠端桌面協定

8-45

伺服器端 (3/4)

Page 46: Chapter 8  遠端桌面協定

8-46

伺服器端 (4/4)

Page 47: Chapter 8  遠端桌面協定

8-47

客戶端 (1/3)

Page 48: Chapter 8  遠端桌面協定

8-48

客戶端 (2/3)

Page 49: Chapter 8  遠端桌面協定

8-49

客戶端 (3/3)

Page 50: Chapter 8  遠端桌面協定

8-50

結語

終端服務通話 遠端桌面協定 .rdp 檔參數和 RDP 註冊表設定 虛擬通道

Page 51: Chapter 8  遠端桌面協定

8-51

謝謝指教!