0328 Windows Server 2008 應用程式相容性

36
Windows Server 2008 應應應應應應應 應應應 應應應 應應應應應應應應 應應應應應應應應 [email protected] [email protected] http://teacher.allok.com.tw http://teacher.allok.com.tw MCP, MCP+I, MCSA, MCSE,MCDBA, MCAD, MCP, MCP+I, MCSA, MCSE,MCDBA, MCAD, MCSD, MCT, MVP MCSD, MCT, MVP

Transcript of 0328 Windows Server 2008 應用程式相容性

Page 1: 0328 Windows Server 2008 應用程式相容性

Windows Server 2008 應用程式相容性

曹祖聖曹祖聖台灣微軟資深講師台灣微軟資深講師[email protected]@syset.comhttp://teacher.allok.com.twhttp://teacher.allok.com.twMCP, MCP+I, MCSA, MCSE,MCDBA, MCAD, MCSD, MCT, MVPMCP, MCP+I, MCSA, MCSE,MCDBA, MCAD, MCSD, MCT, MVP

Page 2: 0328 Windows Server 2008 應用程式相容性

大綱大綱

Windows Server 2008 Windows Server 2008 相容性相關改變相容性相關改變

User Account Control

64 64 位元 位元 Windows Server 2008Windows Server 2008

IIS 7.0 IIS 7.0 與 與 IIS 6.0 IIS 6.0 相容性相容性

Page 3: 0328 Windows Server 2008 應用程式相容性

大綱大綱

Windows Server 2008 Windows Server 2008 相容性相關改變相容性相關改變

User Account Control

64 64 位元 位元 Windows Server 2008Windows Server 2008

IIS 7.0 IIS 7.0 與 與 IIS 6.0 IIS 6.0 相容性相容性

Page 4: 0328 Windows Server 2008 應用程式相容性

版本檢查版本檢查

應用程式中如果有檢查作業系統版本應用程式中如果有檢查作業系統版本 安裝程式不淮執行安裝程式不淮執行 應用程式不淮執行應用程式不淮執行

解決方式解決方式 應用程式應該要支援目前以及未來的作業系統應用程式應該要支援目前以及未來的作業系統

版本版本 使用相容模式來執行使用相容模式來執行

Page 5: 0328 Windows Server 2008 應用程式相容性

Windows Resource Protection (WRP)Windows Resource Protection (WRP)

保護作業系統保護作業系統 : : 檔案、資料夾、系統機碼 檔案、資料夾、系統機碼 (registry (registry keys)keys)

只有被信任的安裝程式才可以變更這些資源只有被信任的安裝程式才可以變更這些資源問題問題

覆寫系統檔案覆寫系統檔案 修改系統機碼修改系統機碼 修改資料夾 修改資料夾 (Windows, Program Files, …)(Windows, Program Files, …)

修正你的應用程式,以便支援修正你的應用程式,以便支援 WRPWRPWindows Server 2008 Windows Server 2008 的作法的作法 : : 傳回成功代碼,而不傳回成功代碼,而不

是禁止存取是禁止存取

Page 6: 0328 Windows Server 2008 應用程式相容性

服務隔離服務隔離服務是執行在 服務是執行在 Session 0 Session 0 中,與使用者的 中,與使用者的 Session Session

是完全隔離的是完全隔離的問題問題

所建立的物件會失敗 使用者無法立即看到服務所顯示的任何視窗畫使用者無法立即看到服務所顯示的任何視窗畫

面面 如果在 如果在 Session 0 Session 0 中有任何視窗顯示出來,使用者會中有任何視窗顯示出來,使用者會

收到通知,可以切換畫面到 收到通知,可以切換畫面到 Session 0Session 0

Page 7: 0328 Windows Server 2008 應用程式相容性

網路網路TCP/IP TCP/IP 完全重寫完全重寫以下不再支援以下不再支援 ::

Firewall-hook driver / filter-hook driver Firewall-hook driver / filter-hook driver R R 系列工具系列工具 – – 只能透過只能透過 services for Unixservices for Unix

rexec, rsh, finger, …rexec, rsh, finger, … IPX IPX 通訊協定通訊協定

防火牆防火牆掛鉤掛鉤 APIs APIs 已經完全被已經完全被 Windows Filtering Windows Filtering Platform Platform 所取代所取代 不能再使用內部的 不能再使用內部的 API API 呼叫或呼叫或掛鉤機制機制 網路掃瞄、防火牆、防毒軟體,這些軟體如果是使用內部的 網路掃瞄、防火牆、防毒軟體,這些軟體如果是使用內部的 API API

呼叫或資料結構,會無法正常執行呼叫或資料結構,會無法正常執行

Page 8: 0328 Windows Server 2008 應用程式相容性

網路網路IP V4 IP V4 與 與 IP V6 IP V6 使用相同的 使用相同的 APIAPI

IP V6 IP V6 位址預設啟用位址預設啟用 IPv6 IPv6 移轉文件移轉文件

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/ipv6_guide_for_windows_sockets_applications_2.asp

Checkv4.exe Checkv4.exe 工具能夠偵測移轉上的問題工具能夠偵測移轉上的問題 問題問題

使用固定的 使用固定的 IPv4 IPv4 位址位址 使用第一個 使用第一個 IPv4 IPv4 位址位址 只有 只有 IPv6 IPv6 的主機的主機 接收到 接收到 IPv6 IPv6 訊息訊息

Page 9: 0328 Windows Server 2008 應用程式相容性

MS GINAMS GINAMicrosoft Graphical Identification and AuthenticationMicrosoft Graphical Identification and Authentication

不再支援 不再支援 GINA (GINA (msgina.dll)msgina.dll) 使用新的使用新的 Credential Provider API Credential Provider API 來檢查身份驗證流程來檢查身份驗證流程 不再支援自訂 不再支援自訂 GINAGINA

問題問題 支援自訂登入與驗證機制的應用程式會失敗支援自訂登入與驗證機制的應用程式會失敗

生物測定生物測定設備,例如指紋辨識設備,例如指紋辨識 自訂 自訂 VPN VPN 解決方案解決方案 智慧卡讀卡機智慧卡讀卡機

解決解決 升級你的應用程式,以便支援新的升級你的應用程式,以便支援新的 Winlogon Winlogon 架構架構 內建智慧卡驗證內建智慧卡驗證

Page 10: 0328 Windows Server 2008 應用程式相容性

Credential ProvidersCredential Providers使用者登入使用者登入

LSALSAWinLogonWinLogon

LogonUILogonUI

Credential Provider Credential Provider InterfacesInterfaces

Credential Credential Provider 2Provider 2

7. 7. 取得登入的身取得登入的身份資訊份資訊

1. Ctrl + Alt + Delete1. Ctrl + Alt + Delete

2. 2. 要求身份要求身份資料資料

9. LSALogonUser9. LSALogonUser

5. 5. 點選圖示,輸入點選圖示,輸入使用者名稱、密碼使用者名稱、密碼

4. 4. 顯示介面顯示介面

Credential Credential Provider 1Provider 1

Credential Credential Provider 3Provider 3

8. 8. 傳回身份傳回身份資訊資訊

6. 6. 取得使用者取得使用者輸入的資料輸入的資料

3. 3. 取得身份資料資訊取得身份資料資訊

Page 11: 0328 Windows Server 2008 應用程式相容性

USER, GDI and DPIUSER, GDI and DPI

新的桌面視窗管理員新的桌面視窗管理員 最上層的視窗不再直接將畫面畫到螢幕上最上層的視窗不再直接將畫面畫到螢幕上 問題問題

工具提示、快顯功能表、工具提示、快顯功能表、……等等區域周圍會有黑框等等區域周圍會有黑框 閃動現象閃動現象 應用程式看不到玻璃效果應用程式看不到玻璃效果 改進中文字型的顯示改進中文字型的顯示

文字的寬度改變,而且是不一定的文字的寬度改變,而且是不一定的

Page 12: 0328 Windows Server 2008 應用程式相容性

USER, GDI and DPIUSER, GDI and DPI

高解析度 高解析度 (dpi) (dpi) 的顯示設備的顯示設備高解析度的螢幕會造成圖示相對變得太小高解析度的螢幕會造成圖示相對變得太小Windows Server 2008 Windows Server 2008 會自動調整圖示的大小會自動調整圖示的大小問題問題

文字有可能會被部份切掉文字有可能會被部份切掉文字看起來太大文字看起來太大圖形繪製出來的大小或位置不對圖形繪製出來的大小或位置不對

Page 13: 0328 Windows Server 2008 應用程式相容性

資料庫的支援資料庫的支援

在 在 Windows Server 2008 Windows Server 2008 上至少必須使用 上至少必須使用 Access 2003 SP1Access 2003 SP1

部份功能可能可以使用,但是微軟不負責支援部份功能可能可以使用,但是微軟不負責支援

SQL Server and SQL Server ExpressSQL Server and SQL Server Express

必須是必須是 SP2 SP2 以後的版本以後的版本

安裝時會提示使用者要升級到 安裝時會提示使用者要升級到 SP2 SP2 以上以上

Page 14: 0328 Windows Server 2008 應用程式相容性

大綱大綱

Windows Server 2008 Windows Server 2008 相容性相關改變相容性相關改變

User Account Control

64 64 位元 位元 Windows Server 2008Windows Server 2008

IIS 7.0 IIS 7.0 與 與 IIS 6.0 IIS 6.0 相容性相容性

Page 15: 0328 Windows Server 2008 應用程式相容性

User Account ControlUser Account Control

Page 16: 0328 Windows Server 2008 應用程式相容性

行程隔離行程隔離• 管理權限下與一般使用者權限的應用程式共用

同一個桌面環境主要的威脅

• 跨行程的視窗訊息• DLL injection 、建立遠端執行序

行程隔離機制• 確保行程安全• 介面權限隔離低權限的行程不可以影響高權限的行程

Page 17: 0328 Windows Server 2008 應用程式相容性

UAC UAC 架構架構 一般使用者的權限一般使用者的權限

系統管理人的權限系統管理人的權限

管理人員登入管理人員登入

一般使用者 一般使用者 TokenToken

管理者 管理者 TokenToken

使用者行程使用者行程

• 修改時區修改時區

• 執行一般應用程式執行一般應用程式

• 安裝字型安裝字型

• 安裝印表機安裝印表機

• 執行 執行 MSN MSN

MessengerMessenger

• 其它 其它 ……

一般使用者模式一般使用者模式產生 產生 TokenToken管理者權限管理者權限

管理者權限管理者權限

一般使用者權限一般使用者權限

管理者權限管理者權限

管理者權限管理者權限AbbyAbby

Page 18: 0328 Windows Server 2008 應用程式相容性

資料轉向資料轉向• 舊應用程式會修改系統資料夾與機碼

HLKM\Software;

%SystemDrive%\Program Files

%WinDir%\System32

• 轉向機制可以免除提升權限對於 HKLM 的變更會寫到 HKCU 轉向後的位置對於系統資料夾的變更會寫到使用者的儲存區在變更時進行拷貝

• 讓舊應用程式可以正常執行

Page 19: 0328 Windows Server 2008 應用程式相容性

demodemo資料轉向資料轉向

Page 20: 0328 Windows Server 2008 應用程式相容性

面對 面對 UAC UAC 的作法的作法

• 第一種選擇第一種選擇 : : 讓你的應用程式可以在一般使用者讓你的應用程式可以在一般使用者身份下執行身份下執行

• 第二種選擇第二種選擇 : : 明確的指出所要做的管理工作明確的指出所要做的管理工作確保一般使用者能夠得到足夠的提示確保一般使用者能夠得到足夠的提示使用 圖示來標明要提升權限使用 圖示來標明要提升權限

• 系統自動附加到控制項上• 並不會記得提升的權限狀態

• 設定以系統管理人員身份來執行特定程式設定以系統管理人員身份來執行特定程式

Page 21: 0328 Windows Server 2008 應用程式相容性

使用管理者身份執行程式的方式使用管理者身份執行程式的方式• 使用 使用 manifest manifest 來定義應用程式需要使用管理者身份執來定義應用程式需要使用管理者身份執

行行• 自動偵測安裝程式自動偵測安裝程式• 套用應用程式相容性修正程式套用應用程式相容性修正程式• 設定應用程式內容頁的相容性標籤頁設定應用程式內容頁的相容性標籤頁• 按右鍵,選擇使用管理者身份執行按右鍵,選擇使用管理者身份執行

註註 : UAC : UAC 只會影響互動式應用程式只會影響互動式應用程式

Page 22: 0328 Windows Server 2008 應用程式相容性

demodemo使用 使用 manifest manifest 定義檔定義檔

Page 23: 0328 Windows Server 2008 應用程式相容性

大綱大綱

Windows Server 2008 Windows Server 2008 相容性相關改變相容性相關改變

User Account Control

64 64 位元 位元 Windows Server 2008Windows Server 2008

IIS 7.0 IIS 7.0 與 與 IIS 6.0 IIS 6.0 相容性相容性

Page 24: 0328 Windows Server 2008 應用程式相容性

64 64 位元 位元 Windows Server 2008Windows Server 2008

需要 需要 64 64 位元的核心模式驅動程式位元的核心模式驅動程式 驅動程式需要數位簽章驅動程式需要數位簽章

不再支援 不再支援 16 16 位元子系統位元子系統透過 透過 WOW64 WOW64 執行 執行 32 32 位元應用程式位元應用程式64 64 位元與 位元與 32 32 位元程式碼不能同時存在於同一個位元程式碼不能同時存在於同一個

行程內行程內支援 支援 64-bit OLEDB Provider for ODBC (MSDASQL)64-bit OLEDB Provider for ODBC (MSDASQL)

Page 25: 0328 Windows Server 2008 應用程式相容性

在 x64 平台上執行 ASP.NET 2.0

• IIS 32 bit worker processes on 64 bitASP.NET 1.1 虛擬記憶體 2GB ~ 4GB

從 %systemdrive%\Inetpub\AdminScripts 中執行 :

cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 "true"

• Native 64 bit ASP.NET 2.0虛擬記憶體沒有限制開發人員應該要考量所帶來的效能優勢

• x64 的問題MMC 嵌入式管理單元不能在 x64 上執行

Page 26: 0328 Windows Server 2008 應用程式相容性

demodemoIIS 32 bit worker processes on 64 bitIIS 32 bit worker processes on 64 bit

Page 27: 0328 Windows Server 2008 應用程式相容性

大綱大綱

Windows Server 2008 Windows Server 2008 相容性相關改變相容性相關改變

User Account Control

64 64 位元 位元 Windows Server 2008Windows Server 2008

IIS 7.0 IIS 7.0 與 與 IIS 6.0 IIS 6.0 相容性相容性

Page 28: 0328 Windows Server 2008 應用程式相容性

IIS 7.0 IIS 7.0 組態設定系統組態設定系統

根目錄下 Web.configASP .NET 全域設定

ApplicationHost.configIIS 7.0 全域與分區設定

Web.config每一個應用程式

.NET Framework

ASP.NET

IIS 7.0

IIS + ASP.NET +

.NET FrameworkASP.NET +

.NET Framework

Machine.config.NET 全域設

Eric Woersching
I think this slide is mis-leading, since you can't actually store asp.net or .net framework settings in applicationHost.config, as it seems to imply. We should instead show machine and root web.config as one parent, and applicationHost.config as peer parent, with a shared web.config file.
Page 29: 0328 Windows Server 2008 應用程式相容性

模組化設計模組化設計模組化模組化 pipelinepipeline

各項能被被計成單一的模組各項能被被計成單一的模組可以視需求新增可以視需求新增 // 移除移除 // 取代每一個模組取代每一個模組– 減少被攻擊的機會減少被攻擊的機會– 減少記憶體使用與提高安全性減少記憶體使用與提高安全性– 增加效能增加效能

模組可以是模組可以是 native code native code 或或 manage codemanage code

延伸 延伸 .NET .NET 的強大能力到 的強大能力到 IIS 7.0 IIS 7.0 上上容易整合新的技術容易整合新的技術

Page 30: 0328 Windows Server 2008 應用程式相容性

IIS 6.0 IIS 6.0 處理機制處理機制

傳送回應記錄檔 壓縮

NTLM 基本

IIS 決定由誰處理

CGI

Static File

身份驗證匿名

只能全部安裝或不安裝某項功能,例如身份驗證

只能透過 ISAPI 擴充功能

ASP.NET

PHP

ISAPI

Page 31: 0328 Windows Server 2008 應用程式相容性

IIS 7.0 IIS 7.0 處理機制處理機制

傳送回應記錄檔 壓縮

NTLM 基本

IIS 決定由誰處理

CGI

靜態檔案

ISAPI

身份驗證匿名

傳送回應

身份驗證

授權

解析快取

ExecuteHandler

更新快取…

伺服器的功能細分成超過 40 個 模組 ...

各個模組會掛到 generic request pipeline …

每個模組透過一個 public module API 來 延伸伺服器功能

Page 32: 0328 Windows Server 2008 應用程式相容性

IIS 6.0 IIS 6.0 與與 ASP.NET ASP.NET 整合整合使用 使用 ISAPI ISAPI 來啓動 來啓動 ASP.NETASP.NET

.NET Handler .NET Handler 只能處理只能處理 ASP.NET ASP.NET 要求要求

兩者功能重覆兩者功能重覆

傳送回應記錄 壓縮

NTLM 基本

選擇 Handler

CGI

靜態檔案

ISAPI

身份驗證匿名

身份驗證表單 Windows

對應Handler

ASPX

Trace

……

aspnet_isapi.dll

Page 33: 0328 Windows Server 2008 應用程式相容性

IIS 7.0 IIS 7.0 與與 ASP.NET ASP.NET 整合整合

傳統模式傳統模式使用 使用 ISAPI ISAPI 執行 執行 ASP.NETASP.NET

整合模式整合模式.NET modules / handlers .NET modules / handlers 直直接接到 接接到 IIS 7.0 IIS 7.0 處理管道中處理管道中

可以處理任何要求可以處理任何要求

100% 100% 執行時期支援執行時期支援

記錄

壓縮

基本

靜態檔案

ISAPI

匿名

傳送回應

身份驗證

授權

解析快取

執行 Handler

更新快取…

…身份驗證

表單 Windows

對應Handler

ASPX

Trace

……

aspnet_isapi.dll

Page 34: 0328 Windows Server 2008 應用程式相容性

demodemoIIS 7.0 IIS 7.0 應用程式集區相容性設定應用程式集區相容性設定

Page 35: 0328 Windows Server 2008 應用程式相容性

在何處取得 TechNet 相關資訊?• 訂閱 TechNet 資訊技術人快訊

http://www.microsoft.com/taiwan/technet/flash/• 訂閱 TechNet Plus

http://www.microsoft.com/taiwan/technet/• 參加 TechNet 的活動

http://www.microsoft.com/taiwan/technet/• 下載 TechNet 研討會簡報與錄影檔

http://www.microsoft.com/taiwan/technet/webcast/

Page 36: 0328 Windows Server 2008 應用程式相容性