可使用命令行脚本 iiscnfg.vbs(存储在 systemroot\System32 中)将配置设置从可扩展标记语言 (XML) 配置数据库导出文件添加到 IIS 服务器的配置数据库中。
发出该命令的计算机必须运行 Microsoft Windows XP 或 Windows Server 2003 家族的成员。受到该命令影响的计算机必须运行带有 IIS 6.0 的 Windows Server 2003 家族的成员。
要点 您必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能运行脚本和可执行文件。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行脚本或可执行文件。在命令提示符下,键入 runas /user:administrative_accountname "script or executable command"。
本主题包括下列信息:
IIS 服务器的配置数据库包括系统特定的属性和计算机特定的属性。如果未经修改,不要将一个 IIS 服务器的配置导出到另一个 IIS 服务器。相反,使用 iisback.vbs 或 iiscnfg.vbs/copy 操作,二者均替换系统特定的属性和计算机特定的属性,使得配置在目标计算机上有效。
通过使用 iiscnfg.vbs 进行的更改直接生效,但是在更新 MetaBase.xml 文件之前(更新间隔为 5 分钟或 50 次更改),它们不在该文件中反映出来。使用 iiscnfg /save 立即查看所做更改。
iiscnfg /import /f [Path\]FileName.xml /sp SourcePath /dp DestiniationPath[/d EncryptingPassword] [/inherited] [/children] [/merge][/s Computer [/u [Domain\]User [/p Password]]]
注意 导入项必须采用在配置数据库路径中的新位置的预期类型。如果项类型不是预期类型,则配置将无法正确运行。例如,不要将事件日志配置 (/
示例 1:
下面的命令将网站 NewSite 的配置从文件 C:\Config.xml 导入到配置数据库中。该命令使用 /f 参数指定源文件的名称和位置。接着,它使用 /sp 参数指出配置位于文件 Config.xml 中的 /lm/w3svc/5/Root/NewSite 路径中。最后,它使用 /dp 参数指定应当将项放在配置数据库中的 /lm/w3svc/1/Root/401KApp 位置中。
iiscnfg.vbs /import /f c:\config.xml /sp /lm/w3svc/5/Root/NewSite /dp /lm/w3svc/1/Root/401KApp
作为响应,iiscnfg 显示以下成功消息:
Configuration imported from /lm/w3svc/5/Root/NewSite in c:\config.xml to /lm/w3svc/1/Root/401KApp in the Metabase.
作为该命令的结果,NewSite 的配置现在作为第一个网站出现在 IIS 中,其配置数据库路径为 W3SVC/1。
示例 2:
下面的示例分两步,它将自定义的日志配置从 C:\IISLogging.xml 导入到远程计算机的 IIS 配置数据库中。会使用该方法或者该方法的扩展将配置传播到一组服务器中。
第一个命令将 IIsLogging.xml 文件复制到远程服务器 Svr126 中。
copy IIsLogging.xml \\Svr126\c$
第二个命令将 IIsLogging.xml 导入到 Svr126 的 IIS 配置中。它使用 /f 参数标识源文件,使用 /sp 参数指定要导入的 /
作为响应,iiscnfg 显示以下成功消息:
正在连接到服务器...已完成。 Configuration imported from /lm/logging/custom logging in file C:\IISLogging.xml to /lm/logging/custom logging in the Metabase.
因此,/
示例 3:
该示例通过对标准的 import 操作与使用 /merge 参数的 import 操作进行比较来演示 /merge 参数如何工作。该示例中的这两个命令通过使用同一个导入文件 Invest_vdir.xml 更新网站的虚拟目录 Investments 的属性。
下面的示例显示在运行任何导入操作之前的 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:\public\Download" > </IIsWebVirtualDir >
下面的示例显示将用于 /import 操作中的 Invest_vdir.xml 文件的内容。(该示例是通过导出 Investments 配置数据库项然后编辑该导出文件来创建的。)请注意,Investments 项的下列属性在 XML 文件中发生变化:
<IIsWebVirtualDir Location="/LM /W3SVC /1509060625/root/Investments"AccessFlags ="AccessRead"AuthFlags ="AuthAnonymous | AuthNTLM"AppFriendlyName ="Investments"AppIsolated ="2"AppRoot ="/LM /W3SVC /1509060625/Root/Investments" Path="E:\public\Download" > </IIsWebVirtualDir >
命令 1:标准导入
下面的命令在不使用 /merge 参数的情况下将 Invest_vdir.xml 文件导入到配置数据库中。该命令指示 IIS 将配置数据库中的 Investments 项替换为 XML 文件中的 Investments 项。该命令使用 /f 参数指定导入文件,并在源路径 (/sp) 和目标路径 (/dp) 参数中使用相同的配置数据库路径。
iiscnfg /import /f e:\iistest\Invest_vdir.xml /sp /
作为该命令的结果,配置数据库中的 Investments 项与 Invest_vdir.xml 导入文件中的 Investments 项完全相同。
命令 2:导入并合并
下面的命令将 Invest_vdir.xml 文件中的 Investments 项合并到配置数据库中。/merge 参数命令 IIS 将导入文件中的新属性添加到配置数据库中,使不在导入文件中的配置数据库属性保持不变,当属性同时出现在导入文件和配置数据库中时应用导入文件中的值。除了添加了 /merge 参数以外,该命令与命令 1 相同。
iiscnfg /import /f e:\iistest\Invest_vdir.xml /sp /
作为该命令的结果,配置数据库中 Investments 项的内容成了它的多个源的组合,如下面的示例所示。请注意,配置数据库中 Investments 项的下列属性发生了变化。
<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:\public\Download" > </IIsWebVirtualDir >