导入和导出本地或远程计算机上 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&amp;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迁移工具的适用场景

1. 更换服务器时,IIS中的站点配置和ServU的FTP帐号信息需要批量导入新服务器,避免在新服务器上要手工重建的麻烦。
2. 服务器重装后,IIS中的站点配置和ServU的FTP帐号信息批量恢复。
3. 支持win2003/2008/2012的IIS备份与恢复。 FTP支持ServU 6.X。
 
使用流程
1.更换服务器或重装系统之前,先点“备份IIS”将IIS和servU的配置备份到一个指定的目录。
2.如果是更换服务器,请将所有站点的数据打包后放到新服务器上,必须保持目录结构和原服务器一致。备份的iis配置文件复制到新服务器上备用。
3.在新服务器配置好环境,数据都复制过来以后,点“恢复IIS”,指定配置文件的路径后,点“确定恢复”,系统将开始批量重建。
4.重建完成IIS后,点“重建帐号”,程序将扫描IIS中以独立账号运行的站点、应用程序、池,并创建Windows账号,密码重新随机设置;该账号非FTP账号。

备份iis

恢复iis

重建账户


 
程序将扫描IIS中以独立账号运行的站点、应用程序、池,并创建Windows账号,密码重新随机设置;该账号非FTP账号。
 

重置权限

您也可以通过站点同步的功能,但只适合个别处理。程序将扫描IIS中以独立账号运行的站点,重置其主目录及所有文件权限为:FTP名称、ServU、Administrator 这三个账号,其servu账号为ftp服务的启动账号。如果站点数量多,则需要很长时间,请耐心等待执行完。。

Iiscnfg.vbs IIS 配置脚本的使用相关推荐

  1. IIS配置跨服务器迁移

    这几天,因为服务器要重装,要将此服务器的IIS网站搬到别一台服务器,因运行在此服务器上的站点有200多,不可能手动去重新设置,在网上找了一些迁移的工具,效果不理想,仔细研究IIS后,终天找到了一个比较 ...

  2. iis配置js支持读取json文件配置

    默认情况下,iis不支持解析.json文件,这就需要我们自己在iis下配置 方法一:iis配置 1.点击开始菜单选择控制面板: 2.控制面板内点击管理工具,选择Internet信息服务(IIS)管理器 ...

  3. Win10下IIS配置

    1.找到控制面板:[开始]菜单鼠标右击,打开[控制面板] 2.打开控制面板,点击[程序],点击[启用或关闭Windows功能] 下一步,点击[启用虎关闭Windows功能] 3. 开始修改IIS了,我 ...

  4. xp iis mysql php,XP下IIS配置PHP 和MySQL

    XP下IIS配置PHP 和MySQL 第一步: 下载和安装PHP php版本: php-5.2.10-Win32.zip 1.解压php文件到 c:\php 2.将php文件夹下 php.ini-di ...

  5. window 7 IIS配置方法 win7 Internet信息服务配置方法详解

    出处:http://www.huacolor.com/article/23431.html window 7 IIS配置方法 win7 Internet信息服务配置方法详解   1.依次打开 控制面板 ...

  6. ASP Win7旗舰版中的IIS配置asp.net的运行环境

    以前弄过好多次,都没有成功,昨天晚上不知怎么地就成功了,借用我同学的一句话,这叫"灵光一闪",废话不多说了,这个成功是有图有视频有真相地哈! 这篇博文发表都三个月了,我自认为算是很 ...

  7. hp服务器ilo批量配置脚本

    hp 服务器ilo批量配置脚本 hp的ilo是一个非常方便的带外管理工具,在平时使用的时候,经常有大量的hp服务器需要配置ilo,下面是我下的一个脚本,可以批量的完成hp服务器ilo配置. 脚本功能: ...

  8. lvs中dr模式配置脚本

    1 dr模式介绍 1.1 lvs的安装 安装具体解释:http://blog.csdn.net/CleverCode/article/details/50586957. 1.2 lvs模式 lvs有三 ...

  9. “IIS配置401错误”完美解决方案

    "IIS配置401错误"完美解决方案   1.错误号401.1 症状:HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝. 分析: 由于用户匿名访问使用的账号(默认是 ...

最新文章

  1. 算法学习:计算几何旋转卡壳
  2. 金融专有云数据安全实践
  3. /bin/sh -c的必要性
  4. 陆奇最新投资方向:机器人、生物科技、远程工作、云计算技术、新材料、新消费娱乐等,奇绩创坛春季创业营线上开营
  5. Java WebService使用简单教程
  6. 稳压二极管 参数说明
  7. sai笔记6-sai2版本新增的功能
  8. OpenStack网络QoS
  9. 流程管理体系实施策略
  10. HashSet线程不安全,1、 使用JUC中的CopyOnWriteArraySet底层还是使用CopyOnWriteArrayList进行实例化 2、使用工具类中的Collections.synch
  11. CANOE使用三:不用diva也能自动化测试UDS(创建TestModule-搭配Panel界面及使用Capl识别配置文件TXT编写基于14229的UDS自动化测试流程)
  12. kubernetes的DevOps业务(七):Jenkins,GitLab,Harbor,Tekton,GitOps
  13. website for all kinds of courses
  14. u盘插linux电脑不好使,u盘插电脑没反应怎么办的几种真正解决方式
  15. 图像类的分类模型假阳性(FP)高的解决思路
  16. 【自然语言处理】【检索】GENER:自回归实体检索
  17. Unity镜头跟踪的四种方法
  18. 顺丰速运——深圳二面(19分钟)
  19. 80核处理器_80多岁仍奋战一线,龙芯巾帼英雄黄令仪获CCF夏培肃奖
  20. 决策树算法实现:泰坦尼克号乘客生存预测 (python实现)

热门文章

  1. 13、《Libevent中文帮助文档》学习笔记13:Linux下集成、运行libevent
  2. 错误解决:site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN2at5sliceERK
  3. 晨曦记账本,管理收入支出
  4. 练字格子纸模板pdf_a4田字格练字纸打印版-练字标准田字格模板-a4打印版下载最新免费excel版-西西软件下载...
  5. 带有时滞反应扩散方程代码(纽曼条件的)
  6. 去了一趟宝马4S店,遇到一个数据分析转行卖车的销售顾问
  7. Stata: 断点回归 (RDD) 中的平滑性检验
  8. 测试一下Wengo的wengovisio
  9. java中测试计算能力_CPU运算性能测试、JAVA性能创纪录_三星 I728_手机其它OS-中关村在线...
  10. creator 跳跃弧线_(转)CocosCreator零基础制作游戏《极限跳跃》七、制作游戏结束场景并实现场景切换...