Iiscnfg.vbs IIS 配置指令碼的使用
匯入和匯出本地或遠端計算機上 Internet 資訊服務 (IIS) 配置資料庫的所有或選定元素,或者將整個 IIS 配置(配置資料庫和架構)複製到另一臺計算機以複製配置。Iiscnfg 執行下列功能:
若要檢視該命令語法,請單擊以下命令:
iiscnfg /export
以加密或未加密格式將所有或部分 IIS 配置資料庫複製到 XML 檔案。然後可在匯入操作中使用 XML 檔案來將所有或部分配置資料庫複製到其他 IIS 配置。
語法
iiscnfg[.vbs] /export /f [Path]FileName.xml /sp MetabasePath [/d EncryptingPassword] [/inherited] [/children] [/s Computer [/u [Domain]User [/p Password]]]
引數
/f [Path]FileName.xml
必需。指定匯出檔案的唯一名稱和位置。如果指定現有的檔案或者如果指定的路徑中的目錄不存在,則此命令將失敗。
檔案路徑必須是本地路徑。如果從遠端計算機匯出檔案,則 /f 引數是指遠端計算機上的某個路徑。
/sp MetabasePath
必需。指定要匯出的配置資料庫金鑰。輸入配置資料庫路徑以標識選定的金鑰。
/d EncryptingPassword
使用指定的密碼加密匯出檔案。可以使用任何字串作為密碼。
/d 引數可通過使用指定的密碼來加密會話金鑰和安全屬性,建立安全的匯出檔案。必須提供密碼才能在“匯入”操作中使用此檔案。
如果省略了此引數或密碼引數,則匯出檔案通過空白密碼來加密。這樣只有安全屬性才被加密,而且任何管理員都可使用該匯出檔案來匯入配置資料庫配置。
/inherited
將已匯出金鑰的繼承屬性新增到匯出檔案。如果沒有此引數,則匯出檔案不包括從更高階別的金鑰所繼承的屬性。
/children
將指定金鑰的子金鑰遞迴新增到匯出檔案。
/s Computer
在指定的遠端計算機上執行指令碼。鍵入計算機名或 IP 地址(不帶反斜槓)。預設情況下,將在本地計算機上執行指令碼。
/u [Domain]User
使用特定使用者帳戶的許可權執行指令碼。該帳戶必須是遠端計算機上 Administrators 組成員。預設情況下,指令碼使用本地計算機上當前使用者的許可權執行。
/p Password
指定在 /u 引數中指定的使用者帳戶的密碼。如果忽略該引數,指令碼將提示您輸入密碼並隱藏鍵入的文字。
/?
在命令提示符下顯示幫助。
註釋
■要執行該過程,您必須是本地計算機 Administrators 組的成員,或者您必須被委派適當的許可權。如果將計算機加入域,Domain Admins 組的成員可能也可以執行這個過程。作為安全性的最佳操作,可以考慮使用執行方式來執行這個過程。
■使用引號括起包含空格的配置資料庫路徑元素。僅括起帶空格的元素,不包括整個路徑。例如,應鍵入 "Default FTP Site"/IISAdmin,而非 "Default FTP Site/IISAdmin"。
示例
下面的示例顯示瞭如何在特定的情況下使用 iiscnfg /export。
匯出網站配置
下列命令將 Finance 網站的配置匯出到 C:FinanceFinance.xml 檔案。此命令使用 /sp 引數來指定網站的配置資料庫路徑 /lm/W3SVC/2,使用 /children 引數來匯出配置的所有子金鑰。它還使用 /inherited 引數來包括匯出檔案中的繼承屬性。這將確保網站配置保留這些屬性,即使它被匯入到不同的系統。
iiscnfg /export /f c:financefinance.xml /sp /lm/w3svc/2 /children /inherited
作為響應,Iiscnfg.vbs 顯示以下成功訊息:
Configuration exported from /lm/w3svc/2 to file c:financefinance.xml
結果檔案將包括 /lm/w3svc/2 路徑內的所有金鑰和子金鑰。它還包括包含了所有繼承屬性的值的 IisInheritedProperties 金鑰。
匯出本地計算機的整個 IIS 配置
下列命令將本地計算機的 IIS 配置匯出到 D:IIStestConfig.xml 檔案。它使用 /f 引數來指定檔名和位置,使用 /sp 引數來指定配置資料庫的根金鑰 (/)。/children 引數將根金鑰的所有子金鑰以遞迴方式新增到匯出檔案。(如果沒有 /children 引數,則只匯出根金鑰。) 最後,該命令使用 /d 引數和密碼來加密匯出檔案。
iiscnfg /export /f d:iistestconfig.xml /sp / /children /d p@sswoRd61
作為響應,Iiscnfg.vbs 顯示以下成功訊息:
Path / has been exported to d:iistestconfig.xml
請注意即使完整匯出該配置也與系統的 Metabase.xml 檔案不同。會話金鑰、訪問控制列表 (ACL) 和密碼都不同。
另外,僅通過檢視該匯出檔案無法判別是否加密。不過,如果比較同一檔案的加密版和未加密版,將能發現加密版本中的安全屬性的值已發生更改。因此,如果沒有密碼,則該檔案將無法用於 import 命令。
iiscnfg /import
將 XML 配置資料庫匯出檔案的配置設定新增到 IIS 伺服器的配置資料庫。
語法
iiscnfg[.vbs] /import /f [Path]FileName /sp SourcePath /dp DestinationPath [/d EncryptingPassword] [/children] [/inherited] [/merge] [/s Computer [/u [Domain]User [/p Password]]]
引數
/f [Path]FileName
必需。指定 XML 原始檔的路徑和檔名。
檔案路徑必須是本地路徑。將檔案匯入到遠端計算機時,/f 引數是指遠端計算機上的某個路徑。
/sp SourcePath
必需。指定正在匯入的金鑰在 XML 檔案中的位置。當金鑰在 XML 檔案中出現時,輸入其配置資料庫路徑。要匯入原始檔中的所有金鑰,請輸入根金鑰的配置資料庫路徑。
/dp DestinationPath
必需。指定在配置資料庫中放置匯入金鑰的位置。輸入配置資料庫路徑。
如果指定的路徑在配置資料庫中已經存在,則匯入金鑰將覆蓋和替換當前在該配置資料庫路徑中的金鑰而沒有任何警告。
/d EncryptingPassword
指定用於加密配置資料的密碼。
加密配置檔案時需要此引數。如果沒有提供加密檔案的密碼,或者如果提供了不正確的密碼,則此命令將失敗。
/children
以遞迴方式匯入指定金鑰的子金鑰。
/inherited
匯入金鑰的繼承屬性。只有當原始檔包括繼承屬性時,此引數才有效。
/merge
將 XML 檔案中的金鑰與現有配置資料庫金鑰合併。如果沒有此引數,則 XML 檔案中的金鑰將替換同一配置資料庫路徑中的現有金鑰。
/merge 引數將僅在 XML 檔案中出現的金鑰新增到配置資料庫、將不在 XML 檔案中的金鑰保留在配置資料庫中,並在 XML 檔案和配置資料庫中都出現金鑰時應用 XML 檔案中的值。
/s Computer
在指定的遠端計算機上執行指令碼。鍵入計算機名或 IP 地址(不帶反斜槓)。預設情況下,將在本地計算機上執行指令碼。
/u [Domain]User
使用特定使用者帳戶的許可權執行指令碼。該帳戶必須是遠端計算機上 Administrators 組成員。預設情況下,指令碼使用本地計算機上當前使用者的許可權執行。
/p Password
指定在 /u 引數中指定的使用者帳戶的密碼。如果忽略該引數,指令碼將提示您輸入密碼並隱藏鍵入的文字。
/?
在命令提示符下顯示幫助。
註釋
■要執行該過程,您必須是本地計算機 Administrators 組的成員,或者您必須被委派適當的許可權。如果將計算機加入域,Domain Admins 組的成員可能也可以執行這個過程。作為安全性的最佳操作,可以考慮使用執行方式來執行這個過程。
■使用引號括起包含空格的配置資料庫路徑元素。僅括起帶空格的元素,不包括整個路徑。例如,應鍵入 "Default FTP Site"/IISAdmin,而非 "Default FTP Site/IISAdmin"。
■匯入的金鑰必須是配置資料庫路徑中新位置中的預期型別。如果金鑰是非預期型別,則配置將無法正常執行。例如,不要將事件日誌記錄配置 (/LM/Logging) 匯入到網站配置路徑,如 /LM/W3SVC/3。
■使用 Iiscnfg.vbs 所做的更改可立即生效。當檔案更新(每 5 秒鐘或每 50 次更改)時,這些更改將反映在 MetaBase.xml 檔案中。
示例
下列示例將顯示如何在特定的情況下使用 iiscnfg /import。
從匯出檔案中匯入網站
下列命令將 NewSite 網站配置從 C:Config.xml 檔案匯入到配置資料庫。
該命令使用 /f 引數指定原始檔的名稱和位置。它使用 /sp(源路徑)引數來指明要匯入的金鑰在 Config.xml 檔案中的位置。此時,NewSite 配置將位於 Config.xml 檔案的 /lm/w3svc/5 路徑中。然後,它將使用 /dp(目標路徑)引數來指定應該放置該匯入金鑰的配置資料庫位置。此時,應該將 NewSite 配置金鑰匯入到配置資料庫中的 /lm/w3svc/3 位置中。最後,它將在匯入操作中使用 /children 引數包含 /lm/w3svc/5 的子金鑰。如果沒有 /children 引數,則只匯入網站根目錄。
請記住 /import 操作進行覆蓋時沒有警告。如果配置資料庫在 /lm/w3svc/3 位置已經具有金鑰,則這些金鑰將被匯入金鑰所替換。
iiscnfg.vbs /import /f c:config.xml /sp /lm/w3svc/5/Root/NewSite /dp /lm/w3svc/3 /children
作為響應,Iiscnfg.vbs 顯示以下成功訊息:
Configuration imported from /lm/w3svc/5 in c:config.xml to /lm/w3svc/3 in the Metabase.
使用此命令後,NewSite 配置將出現在第三個網站的 IIS 中,其配置資料庫路徑為 /lm/W3SVC/3。
將日誌記錄配置匯入到遠端計算機
下列過程將 C:IISLogging.xml 中的自定義日誌記錄配置匯入到遠端計算機的 IIS 配置資料庫中。可使用該方法或該方法的擴充套件將配置傳播到一組伺服器。
將日誌記錄配置匯入到遠端計算機的步驟分為兩步:
1.將原始檔複製到遠端計算機。(Iiscnfg.vbs 不允許 /f 引數中有遠端路徑。)
2.將配置匯入到 IIS。
第一個命令將 Iislogging.xml 檔案複製到遠端伺服器 Svr126:
copy IISLogging.xml Svr126c$
第二個命令將 Iislogging.xml 匯入到 Svr126 的 IIS 配置中。它使用 /f 引數來標識原始檔,使用 /sp 引數來指定要匯入的 /LM/Logging/Custom Logging 配置資料庫路徑,使用 /dp 引數來將匯入金鑰放在目標配置的同一位置 /LM/Logging/Custom Logging。(使用引號括起包含空格的路徑元素。) 它使用 /children 引數來匯入日誌記錄金鑰的所有子金鑰。
為了在 Svr126 上操作,它使用 /s 引數指定遠端計算機,使用 /u 和 /p 引數執行具有遠端計算機上的使用者管理員帳戶許可權的指令碼。
iiscnfg /import /f C:IISLogging.xml /sp "/lm/logging/custom logging" /dp "/lm/logging/custom logging" /children /s Svr126 /u Svr126Administrator /p p@ssword1#
作為響應,Iiscnfg.vbs 顯示以下成功訊息:
正在連線到伺服器...已完成。 Configuration imported from /lm/logging/custom logging in file C:IISLogging.xml to /lm/logging/custom logging in the Metabase. [喝小酒的網摘]http://blog.const.net.cn/a/615.htm結果,/LM/Logging/Custom Logging 金鑰及其子金鑰從本地配置資料庫複製到 Svr126 的配置資料庫中。
將虛擬目錄與網站合併
此示例通過將標準的 import 操作與使用 /merge 引數的 import 操作進行比較,闡明瞭 /merge 引數的工作原理。
兩個命令都使用同一匯入檔案 Invest_vdir.xml 來更新網站的 Investments 虛擬目錄的屬性。
下面的示例顯示在執行任何 import 操作之前 Investments 配置資料庫金鑰的情況。(此示例是從使用 Iisback.vbs 建立的配置資料庫的備份副本中獲得的)。
匯入前的配置資料庫
<IIsWebVirtualDir Location ="/LM/W3SVC/1509060625/root/Investments" AccessFlags="AccessRead | AccessScript" AppFriendlyName="Investments" AppIsolated="2" AppRoot="/LM/W3SVC/1509060625/Root/Investments" DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate | EnableDefaultDoc" Path="E:publicDownload" > </IIsWebVirtualDir> 下面的示例顯示了將在 import 操作中使用的 Invest_vdir.xml 檔案的內容。(此示例通過匯出 Investments 配置資料庫金鑰然後編輯匯出檔案來建立。)
請注意 Investments 金鑰的下列屬性在 XML 檔案中已發生更改:
■AccessFlags 屬性的值已更改。
■新增了 AuthFlags 屬性。
■省略了 DirBrowseFlags 屬性。
匯入檔案內容
<IIsWebVirtualDir Location ="/LM/W3SVC/1509060625/root/Investments" AccessFlags="AccessRead" AuthFlags="AuthAnonymous | AuthNTLM" AppFriendlyName="Investments" AppIsolated="2" AppRoot="/LM/W3SVC/1509060625/Root/Investments" Path="E:publicDownload" > </IIsWebVirtualDir> 命令 1:標準匯入
下列命令在不使用 /merge 引數的情況下將 Invest_vdir.xml 檔案匯入到配置資料庫。該命令指示 IIS 使用 XML 檔案中 Investments 的金鑰來替換配置資料庫中的 Investments 金鑰。
該命令使用 /f 引數來指定匯入檔案,並使用源路徑 (/sp) 和目標路徑 (/dp) 引數中的同一配置資料庫路徑。
iiscnfg /import /f e:iistestInvest_vdir.xml /sp /LM/W3SVC/1509060625/root/Investments /dp /LM/W3SVC/1509060625/root/Investments
使用此命令後,配置資料庫中的 Investments 金鑰將與 Invest_vdir.xml 匯入檔案中的 Investments 金鑰相同。
命令 2:匯入和合並
下列命令將 Invest_vdir.xml 檔案中的 Investments 金鑰合併到配置資料庫。/merge 引數將指示 IIS 將新的屬性從匯入檔案新增到配置資料庫、使不在匯入檔案中的配置資料庫屬性保持不變,而且當屬性同時出現在匯入檔案和配置資料庫中時應用匯入檔案值。
該命令除了新增了 /merge 引數外,其他都與命令 1 相同。
iiscnfg /import /f e:iistestInvest_vdir.xml /sp /LM/W3SVC/1509060625/root/Investments /dp /LM/W3SVC/1509060625/root/Investments /merge
使用該命令後,配置資料庫中的 Investments 金鑰的內容是其源的組合,如下例所示。
請注意配置資料庫中的 Investments 金鑰的下列屬性已發生更改:
■在配置資料庫和 XML 檔案中顯示的 AccessFlags 屬性的值已更改。XML 檔案中的值現在出現在配置資料庫中。
■已新增僅在 XML 檔案中顯示的 AuthFlags 屬性。
■僅在配置資料庫中顯示的 DirBrowseFlags 屬性沒有更改。
<IIsWebVirtualDir Location ="/LM/W3SVC/1509060625/root/Investments" AccessFlags="AccessRead" AppFriendlyName="Investments" AppIsolated="2" AppRoot="/LM/W3SVC/1509060625/Root/Investments" AuthFlags="AuthAnonymous | AuthNTLM" DirBrowseFlags="DirBrowseShowDate
| DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate | EnableDefaultDoc" Path="E:publicDownload" > </IIsWebVirtualDir> iiscnfg /copy
將 IIS 配置資料庫和架構從一臺計算機複製到另一臺計算機。
語法
iiscnfg[.vbs] /copy /ts TargetComputer /tu TargetUser /tp TargetPassword [/s Computer [/u [Domain]User [/p Password]]]
引數
/ts TargetComputer
必需。將 IIS 配置資料庫複製到指定的計算機。鍵入 IP 地址或計算機名(不帶反斜槓)。
/tu TargetUser
必需。指定用於連線到目標計算機的帳戶。以 [Domain]User 格式鍵入使用者帳戶。該帳戶必須是目標計算機上 Administrators 組的成員。
此引數是必需的,即使本地計算機的當前使用者是目標計算機的管理員。
/tp TargetPassword
必需。指定 /tu 引數所指定的帳戶的密碼。
/s Computer
將指定的遠端計算機上的 IIS 配置資料庫複製到目標計算機。該引數將執行遠端計算機上的指令碼。鍵入遠端計算機名稱或 IP 地址(不帶反斜槓)。該預設值是本地計算機。
/u [Domain]User
使用特定使用者帳戶的許可權執行指令碼。預設值為本地計算機上的當前使用者。如果當前使用者不是遠端計算機的管理員,則必須使用該引數。
/p Password
指定在 /u 引數中指定的使用者帳戶的密碼。如果忽略該引數,IISCnfg 將提示您輸入密碼並隱藏鍵入的文字。
/?
在命令提示符下顯示幫助。
註釋
■要執行該過程,您必須是本地計算機 Administrators 組的成員,或者您必須被委派適當的許可權。如果將計算機加入域,Domain Admins 組的成員可能也可以執行這個過程。作為安全性的最佳操作,可以考慮使用執行方式來執行這個過程。
■預設情況下,IISCnfg 將本地計算機的配置資料庫複製到 /ts 引數所指定的目標計算機中。不過,可使用 /s 引數來將另一臺計算機的配置資料庫複製到目標計算機。
■複製操作使用 IISBack.vbs 來建立源配置資料庫和架構的備份副本。然後它將該備份副本檔案(.MDX 和 .SCX)複製到目標計算機,通過 IISBack.vbs 使用該備份副本來替換目標計算機的配置資料庫和架構。儘管可手動完成這些操作,IISCnfg 複製操作將提供比較方便的一步方法來複制 IIS 配置。
■該複製操作不復制與 IIS 配置相關的伺服器內容,如網頁和 FTP 檔案。
■複製操作將更改配置資料庫中計算機特定和系統特定的屬性,以便這些屬性在目標計算機中有效。不過,它不調整目錄或檔案路徑。這樣該配置中的路徑可能在目標計算機中無效。
示例
下面的示例顯示瞭如何在特定的情況下使用 iiscnfg /copy。
複製本地計算機的 IIS 配置
下列命令將本地計算機的 IIS 配置複製到 SVR01 伺服器。該命令使用 /ts 引數來標識目標伺服器,使用 /tu 和 tp 引數來提供使用者在 SVR01 伺服器上的管理員帳戶和密碼。
iiscnfg /copy /ts SVR01 /tu SVR01Admin06 /tp P@ssWord6
作為響應,Iiscnfg.vbs 顯示以下成功訊息。
Backing up server 127.0.0.1 Backup complete. IP 地址 127.0.0.1 是環回地址,一般情況下指本地計算機。只有當複製本地計算機的配置時才使用該地址。
複製遠端計算機的 IIS 配置
下列命令將遠端計算機 SRV06 的IIS 配置複製到 MAINBKP 伺服器。此命令使用 /s 命令來標識遠端計算機,使用 /u 引數來提供使用者在 SRV06 計算機上的管理員密碼。它還使用 /ts 引數來標識目標伺服器,使用 /tu 和 tp 引數來提供使用者在 MAINBKP 伺服器上的管理員帳戶和密碼。
與可選的 /p 引數不同,/tp 引數是必需的。如果省略此引數,此命令將失敗。
iiscnfg /copy /s SRV06 /u Domain01Admin01 /ts MAINBKP /tu MAINBKPAdmin01 /tp P@ssWord6
作為響應,Iiscnfg.vbs 將提示輸入由 /u 引數指定的帳戶密碼。(它不回顯鍵入的密碼字元。) 然後,確認密碼後,它將複製該配置並顯示覆制操作已成功完成的訊息。
輸入密碼: Processing... Backing up server SRV06 Backup complete. iiscnfg /save
將 IIS 配置資料庫和架構儲存到磁碟。
語法
iiscnfg[.vbs] /save [/s Computer [/u [Domain]User [/p Password]]]
引數
/s Computer
將指定的遠端計算機上的 IIS 配置資料庫複製到目標計算機。該引數將執行遠端計算機上的指令碼。鍵入遠端計算機名稱或 IP 地址(不帶反斜槓)。該預設值是本地計算機。
/u [Domain]User
使用特定使用者帳戶的許可權執行指令碼。預設值為本地計算機上的當前使用者。如果當前使用者不是遠端計算機的管理員,則必須使用該引數。
/p Password
指定在 /u 引數中指定的使用者帳戶的密碼。如果忽略該引數,IISCnfg 將提示您輸入密碼並隱藏鍵入的文字。
/?
在命令提示符下顯示幫助。
註釋
■要執行該過程,您必須是本地計算機 Administrators 組的成員,或者您必須被委派適當的許可權。如果將計算機加入域,Domain Admins 組的成員可能也可以執行這個過程。作為安全性的最佳操作,可以考慮使用執行方式來執行這個過程。
■使用指令碼或 IIS 管理器對配置資料庫所做的任何更改都將首先寫入到記憶體,然後在下一個計劃更新(可能在幾分鐘後發生)進行時寫入到磁碟。這樣管理員可以對配置資料庫進行更改,然後僅開啟 metabase.xml 以檢視是否未反映所作的更改。iiscnfg.vbs 中的 /save 命令通過將更改立即儲存到磁碟來解決該問題。
示例
下面的示例顯示在特定情況下如何使用 iiscnfg /save。
儲存本地計算機的 IIS 配置
如下命令將 IIS 配置儲存到本地計算機上的磁碟。
iiscnfg /save
作為響應,Iiscnfg.vbs 顯示以下成功訊息。
Backup complete. 儲存遠端計算機的 IIS 配置
如下命令將 IIS 配置儲存到本地計算機上的磁碟。
iiscnfg /save /s SourceServer /u Administrator /p Kj30W
作為響應,iiscnfg.vbs 顯示下列訊息。
Configuration saved 註釋
■IISCnfg.vbs 匯入和匯出由 IIS 儲存在 IIS 伺服器的配置資料庫中的所有或部分配置資訊。/copy 操作將 IIS 伺服器的整個配置資料庫和架構複製到目標計算機。/save 操作將 IIS 伺服器的整個配置資料庫和架構複製到目標計算機的磁碟上。
■Iisback.vbs 即 IIS 備份管理指令碼,還儲存和恢復 IIS 配置。不過,Iisback.vbs 將備份整個配置資料庫和架構。無法使用它來儲存或恢復配置的選定元素。
■IISCnfg 複製操作 (/copy) 將替換以前在 Windows 中包括的 IISSync.vbs 和 IISRepl.vbs 工具的功能。
■Iiscnfg 要求
■發出命令的計算機必須正在執行 Windows XP 或 Windows Server 2003 作業系統。使用者必須是命令所影響的計算機上的 Administrators 組成員。
■命令所影響的計算機必須正在執行整合了 Internet 資訊服務 (IIS) 6.0 的 Windows Server 2003。
■IIS 伺服器的配置資料庫包括系統特定和計算機特定的屬性。不要在未加修改的情況下將一臺 IIS 伺服器的配置匯入到另一臺 IIS 伺服器。相反,使用 IISBack.vbs 或 IISCnfg 複製操作 (/copy),這將替代系統特定和計算機特定的屬性,從而使該配置在目標計算機上有效。有關匯入和匯出 IIS 配置資料庫的資訊,請搜尋 IIS 6.0 幫助中的“配置資料庫匯入/匯出”。有關如何訪問 IIS 6.0 幫助的詳細資訊,請參閱檢視 Internet 資訊服務 (IIS) 6.0 幫助。
■連線到指定計算機上的 IIS 服務時,Iiscfng.vbs 將顯示“連線到伺服器”訊息。每次使用 Iiscnfg.vbs 時,不管是在本地或遠端計算機,都會出現該訊息。
■Iiscnfg.vbs 將提供包括匯出檔案中的繼承屬性的選項。如果選擇此選項,則 Iiscnfg.vbs 會將匯出金鑰的繼承屬性新增到匯出檔案中的 IIsInheritedProperties 金鑰。從該檔案中匯入金鑰時,可選擇匯入金鑰的繼承屬性。
在匯入繼承屬性時,匯入金鑰將保留匯出配置中所繼承的屬性。如果沒有匯入繼承屬性,則金鑰將繼承匯入配置的屬性。
■為了防止對匯出檔案的未經授權的使用,IISCnfg.vbs 使您通過密碼來加密匯出檔案。該密碼將對會話金鑰加密,後者反過來對已設定安全屬性的所有屬性進行加密。
您可讀取加密的匯出檔案(只加密了會話金鑰和安全屬性),並可刪除該檔案。不過無法在 /import 操作中使用匯出檔案,除非提供了加密密碼。另外,無法從匯出檔案刪除密碼加密,也無法更改加密密碼。
如果無法使用密碼加密,則會話金鑰和安全屬性通過空白密碼來加密,這可防止被讀取,不過允許 Administrators 組的任何成員從匯出檔案匯入配置資料庫。IIS 5.1 和 6.0 都不支援匯出檔案的計算機金鑰加密。
另附:win2003 vbs打包(iis管理指令碼集合)
都是win2003系統下,必備的一些vbs檔案。
列表如下:
clusweb.vbs
eventquery.vbs
iisapp.vbs
iisback.vbs
IIsCnfg.vbs
iisext.vbs
IIsFtp.vbs
IIsFtpdr.vbs
iisvdir.vbs
iisweb.vbs
iis_switch.vbs
ll.txt
pagefileconfig.vbs
prncnfg.vbs
prndrvr.vbs
prnjobs.vbs
prnmngr.vbs
prnport.vbs
prnqctl.vbs
pubprn.vbs
IIS網站遷移的必備工具和指令碼
Web網站遷移主要涉及到以下3類資料的遷移(變更程度較小的資料,排在前面,優先遷移)
1、Web網站配置資料。包括虛擬站點、虛擬目錄、目錄許可權、應用池等等,必備工具是iismt和webdeploy
.iismt主要用於IIS4.0、IIS5.0、IIS6.0之間的配置資料和Web檔案資料的遷移
.webdeploy主要用於IIS6.0、IIS7.0、IIS7.5之間的配置資料和Web檔案資料的遷移
不建議降級遷移資料,如從IIS7.0向IIS6.0遷移。相同版本IIS之間可以遷移配置資料。
2、Web檔案資料。包括網站物理路徑下的Web檔案資料,由於資料量較大,推薦使用的工具是FastCopy,另外為了使新的Web伺服器的虛擬目錄對應的物理路徑能與源伺服器相同,在規劃新Web伺服器的物理硬碟分割槽時,碟符和盤的數量要儘可能保持一致,如舊Web伺服器虛擬站點的虛擬目錄分別在D:、E:、F:、G:盤,那麼新Web伺服器也要劃出這4個分割槽,相同碟符進行資料拷貝,這樣才可以保證在遷移後路徑指向的正確性
3、Web網站資料庫資料。通常包括Web DB資料庫,以及DB中的帳號及對應密碼和許可權的遷移。DB的遷移可以利用資料庫自帶的備份/還原、分離/附加、停止服務/拷貝附加、資料映象等方法,在專案中我主要使用了備份/還原的方式。而DB的帳號連同密碼、相關許可權的遷移,主要用到的工具指令碼是sp_help_revlogin
上述提到的4個工具都是免費的,它們的下載地址和說明參見以下URL:
IIS 6.0 Migration Tool
http://www.microsoft.com/downloads/details.aspx?FamilyID=2aefc3e4-ce97-4f25-ace6-127f933a6cd2&displaylang=en&displaylang=en
Web Deploy 1.1
http://www.iis.net/download/webdeploy
FastCopy:
http://www.duote.com/soft/259.html
sp_help_revlogin
http://support.microsoft.com/kb/246133/zh-cn
下面給出資料遷移示範
1、Web網站配置資料的遷移。由於webdeploy工具不能支援從IIS5.0(Windows 2000)直接遷移到IIS7.5(Windows 2008 R2),因此只能使用IIS6.0(Windows 2003)進行中轉(我使用的是虛擬機器),先使用iismt工具將IIS5.0的配置匯入到IIS6.0,再使用webdeploy將IIS6.0的配置匯入到IIS7.5,操作步驟如下:
先在中轉用的Windows 2003上安裝IIS6.0(將asp選上),並同時安裝iismt和webdeploy工具,安裝webdeploy時如果提示需要先安裝.Net 2.0 SP1
其下載地址:
http://www.microsoft.com/downloads/details.aspx?familyid=79BC3B77-E02C-4AD3-AACF-A7633F706BA5&displaylang=zh-cn
在開始/程式選單中執行iismt命令列視窗,輸入以下命令將源伺服器節點的IIS5.0的資料直接匯入IIS6.0
192.168.121.111,是源伺服器節點,即IIS5.0所在的web伺服器IP地址
w3svc/1,是目標伺服器節點中IIS6.0的第1個網站(通常就叫"預設Web站點"),如果是匯入到第2個網站就填w3svc/2,依此類推
/user administrator,是提交給源伺服器進行操作的許可權,這裡使用管理員帳號
/password xxxxx,是提交給源伺服器認證administrator帳號的口令
/configonly,只匯入配置,不匯入Web檔案。這個引數很重要,因為作為中轉的Windows 2003沒有足夠的空間來儲存IIS5.0網站的WEB檔案,所以配置資料與WEB檔案分開遷移,配置資料通過IIS5.0-->IIS6.0-->IIS7.5的過程遷移,Web檔案直接IIS5.0-->IIS7.5過程,這樣就把配置與檔案最終遷移到IIS7.5,並避免了龐大的WEB檔案遷移2次的問題。
上述命令執行後,對比IIS5.0和IIS6.0,發現除系統環境有關的如IISAdmin、IISHelp等虛擬目錄未遷移外,其餘的使用者配置都完全一致,遷移OK:
接下來我們使用Webdeploy將IIS6.0的配置移往IIS7.5。在中轉的Windows 2003上,通過開始/程式,開啟Web Deploy命令列,輸入下列命令將IIS6.0的配置先匯入到一個歸檔目錄c:\archivedir中:
-verb:sync,同步Web配置及資料(我沒有看到類似configonly只導配置的引數),由於前邊用iismt的/configonly只導了配置資料,所以就沒有Web檔案資料,這正是我想要的結果!
-source:metakey=lm/w3svc/2,將IIS6.0本地的第2個虛擬站點的配置匯出
-dest:archivedir=c:\archivedir,將IIS6.0匯出的配置先歸檔到c:\archivedir中
我們拿先前一個即帶有WEB配置又帶有WEB檔案內容的c:\archivedir來分析一下
很顯然,除了虛擬目錄的層次結構外,還匯入了虛擬目錄指向的物理路徑下的WEB檔案,所以,如果要歸檔內容的話,要準備好在本機擁有足夠的剩餘空間。不過,Webdeploy還支援遠端直接遷移Web檔案資料,只是如果網路太慢或者不穩定,恐怕就不好搞了。而後面介紹FastCopy所支援的斷點拷貝特性,對付網路不穩定,那是相當棒的!
接下來我們要注意一個事項,如果IIS5.0伺服器定義了多個應用池,那麼在IIS6.0通過iismt匯入過來時就可能由於IIS6.0沒有預先定義這些應用池,而將所有的配置指向到IP_Pooled,在使用Webdeploy歸檔後,我們要及時全部替換掉,可以替換成IIS7.5的DefaultAppPool,後面再參照IIS5.0的配置在IIS7.5上手動配過。找到歸檔的archive.xml
進行替換並儲存。
接下來我們就可以把c:\archivedir下的內容拷貝到Windows 2008 R2,然後安裝Webdeploy x64版本(需要先安裝OS自帶的.NET3.5),再次使用webdeploy命令匯入Web配置,這樣,就完成了Web配置從IIS5.0-->IIS6.0-->IIS7.5的整個過程。
webdeploy有個好用的-whatif引數,可以在不真實執行操作的情況下對操作過程進行測試,相當於SQL中的除錯功能,如果測試沒有任何錯誤資訊(紅字標明),就可以去掉該引數,執行操作。操作過程中出現一些黃色警告,操作仍可繼續,但如果是紅色錯誤,則操作會中止,必須完全解決錯誤才能再次執行。比如遇到下列錯誤資訊:
必須填加一個encryptPassword引數才能執行正確
上述命令中-source:webserver60中指遷移整個主機節點上的網站,如果主機WEB伺服器的版本是IIS6.0,就必須指定webserver60作為引數值。
2、Web檔案資料的遷移。使用FastCopy進行,正如本文篇首所示,使用FastCopy幾乎可以達到網路卡利用率的極限,使用過程中,網路傳輸速率也達到了乙太網理論速度的極限,即100MB網路達到60、70MB的速度,除以10左右,傳輸速度顯示為6MB/秒、7MB/秒的總速率。設定中主要調整的引數是快取值的調整,如果記憶體足夠大,可以執行多個程式,並把記憶體儘可能的分配出去,以達到高速傳輸的目的
當然,如果實際使用過程中速度不高,不要忘了,點到點的傳輸,取決於中間經過的所有節點的傳輸速度,這可能包括節點主機、交換機、路由器、防火牆....總的速度總是等於速度最低的那個裝置的速度,哥你是知道的。
另外,吳SIR告訴我這款軟體是小日本開發的(從幫助手冊全是日文也可以看得出來),這麼好的軟體,微軟為什麼不收購一下呢?如果再配之以現在WIN7/WIN2008的SMB2網路多執行緒技術,這網路上的芳鄰的速度那叫一個HIGH啊!
3、Web網站資料庫資料。主要示範一下DB帳號的遷移,包括帳號對應的密碼、系統許可權、資料庫許可權一塊遷移。
注:在遷移帳號前必須先把各個資料庫遷移過來,否則資料庫許可權對不上會執行出錯。
將下面這段程式碼存成accountexport.sql指令碼(該指令碼也可以在上述URL中下載),並放到源Windows 2000伺服器的MSSQL2000 Master資料庫中執行:
----- Begin Script, Create sp_help_revlogin procedure -----
USE master
GO
IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
DROP PROCEDURE sp_hexadecimal
GO
CREATE PROCEDURE sp_hexadecimal
@binvalue varbinary(256),
@hexvalue varchar(256) OUTPUT
AS
DECLARE @charvalue varchar(256)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = '0x'
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = '0123456789ABCDEF'
WHILE (@i <= @length)
BEGIN
DECLARE @tempint int
DECLARE @firstint int
DECLARE @secondint int
SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
SELECT @firstint = FLOOR(@tempint/16)
SELECT @secondint = @tempint - (@firstint*16)
SELECT @charvalue = @charvalue +
SUBSTRING(@hexstring, @firstint+1, 1) +
SUBSTRING(@hexstring, @secondint+1, 1)
SELECT @i = @i + 1
END
SELECT @hexvalue = @charvalue
GO
IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
DROP PROCEDURE sp_help_revlogin
GO
CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
DECLARE @name sysname
DECLARE @xstatus int
DECLARE @binpwd varbinary (256)
DECLARE @txtpwd sysname
DECLARE @tmpstr varchar (256)
DECLARE @SID_varbinary varbinary(85)
DECLARE @SID_string varchar(256)
IF (@login_name IS NULL)
DECLARE login_curs CURSOR FOR
SELECT sid, name, xstatus, password FROM master..sysxlogins
WHERE srvid IS NULL AND name <> 'sa'
ELSE
DECLARE login_curs CURSOR FOR
SELECT sid, name, xstatus, password FROM master..sysxlogins
WHERE srvid IS NULL AND name = @login_name
OPEN login_curs
FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
IF (@@fetch_status = -1)
BEGIN
PRINT 'No login(s) found.'
CLOSE login_curs
DEALLOCATE login_curs
RETURN -1
END
SET @tmpstr = ''
PRINT @tmpstr
PRINT ''
PRINT 'DECLARE @pwd sysname'
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
PRINT ''
SET @tmpstr = '-- Login: ' + @name
PRINT @tmpstr
IF (@xstatus & 4) = 4
BEGIN -- NT authenticated account/group
IF (@xstatus & 1) = 1
BEGIN -- NT login is denied access
SET @tmpstr = 'EXEC master..sp_denylogin ''' + @name + ''''
PRINT @tmpstr
END
ELSE BEGIN -- NT login has access
SET @tmpstr = 'EXEC master..sp_grantlogin ''' + @name + ''''
PRINT @tmpstr
END
END
ELSE BEGIN -- SQL Server authentication
IF (@binpwd IS NOT NULL)
BEGIN -- Non-null password
EXEC sp_hexadecimal @binpwd, @txtpwd OUT
IF (@xstatus & 2048) = 2048
SET @tmpstr = 'SET @pwd = CONVERT (varchar(256), ' + @txtpwd + ')'
ELSE
SET @tmpstr = 'SET @pwd = CONVERT (varbinary(256), ' + @txtpwd + ')'
PRINT @tmpstr
EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
+ ''', @pwd, @sid = ' + @SID_string + ', @encryptopt = '
END
ELSE BEGIN
-- Null password
EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
+ ''', NULL, @sid = ' + @SID_string + ', @encryptopt = '
END
IF (@xstatus & 2048) = 2048
-- login upgraded from 6.5
SET @tmpstr = @tmpstr + '''skip_encryption_old'''
ELSE
SET @tmpstr = @tmpstr + '''skip_encryption'''
PRINT @tmpstr
END
END
FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
END
CLOSE login_curs
DEALLOCATE login_curs
RETURN 0
GO
----- End Script -----
執行的結果將生成2個儲存過程,我們按下列命令再次執行生成的sp_help_revlogin,就得到了源DB中的所有使用者帳號的資訊,包括密碼的HASH,可能為了安全起見,沒有匯出sa帳號,以免覆蓋目標資料庫的sa
將上述輸出的結果存成一個accountimport.sql指令碼,並注意修改目標伺服器上授予登入許可權的帳號名,比較輸出內容和下圖,我已將
-- Login:NBW_SERVER\Administrator
修改為目標伺服器等同許可權的下述帳號
-- Login:NBWCLUSTER\Administrator
在目標伺服器Windows 2008 R2的MSSQL 2008 R2上執行OK,帳號自動建立完畢
檢視已建立帳號的資料庫許可權,與源資料庫完全一致,最後,還需要將各個使用者登入的預設資料庫手動修改一下
搞定!
網站管理助手:使用西數iis遷移工具實現網站搬家
網站管理助手v3.0這個版本,具有iis遷移工具這個功能,對於網站搬家過程中iis站點的備份和恢復,起到了更加快捷有效的作用。
點一下iis遷移工具後會看到以下四個按鈕“備份iis”“恢復iis”“重建賬號”“重置許可權”
IIS遷移工具的適用場景
備份iis
恢復iis
重建賬戶
相關文章
- IIS8應用池重啟指令碼指令碼
- 使用shell生成orabbix自動化配置指令碼指令碼
- 配置IIS的負載均衡負載
- IIS WebDAV安全配置Web
- ORACLE RMAN備份的指令碼配置Oracle指令碼
- gdb的指令碼使用 -- gdbinit指令碼
- 自動配置php、mysql、nginx的指令碼PHPMySqlNginx指令碼
- IIS7上配置FTP7使用IIS管理憑據方式進行驗證FTP
- win10家庭版iis配置步驟_win10iis配置的詳細教程Win10
- wrk(2)- Lua 指令碼的使用指令碼
- 使用rman備份的指令碼指令碼
- 使用dbstart指令碼的設定指令碼
- Oracle安裝前的環境配置指令碼Oracle指令碼
- 使用shell指令碼生成只讀許可權的sql指令碼指令碼SQL
- IIS配置問題總結
- IIS配置多域名跨域跨域
- 指令碼+批處理打造IIS監控器『羅斌原創』薦指令碼
- IIS的安裝和詳細配置--【ITOO】
- 讓IIS支援PHP的配置步驟薦PHP
- Redis使用Lua指令碼Redis指令碼
- .net中 使用指令碼指令碼
- mystat指令碼以及使用指令碼
- Ubuntu自動啟動配置指令碼Ubuntu指令碼
- 一鍵RAC環境配置指令碼指令碼
- groovy之動態指令碼的使用指令碼
- 關於Solidity指令碼相關環境配置及指令碼資料的查詢Solid指令碼
- LINUX 自動執行指令碼的命令配置Linux指令碼
- 【DataGuarad】獲取standby 庫的配置資訊的指令碼指令碼
- 使用批處理指令碼或SHELL配合SQL指令碼指令碼SQL
- 怎樣在IIS下配置PHPPHP
- 解剖Nginx·自動指令碼篇(1)解析配置選項指令碼 auto/optionsNginx指令碼
- IIS7/IIS8環境下全站https訪問的配置方法HTTP
- 在Linux中,如何使用指令碼進行系統配置和部署?Linux指令碼
- IIS下PHP的三種配置方式比較PHP
- nmap指令碼使用總結指令碼
- 使用go指令碼代替makefileGo指令碼
- 使用指令碼重簽名指令碼
- 使用sql生成sql指令碼SQL指令碼