可使用命令行脚本 iiscnfg.vbs(存储在 systemroot\System32 中)将 IIS 配置数据库的全部或部分复制到加密或未加密形式的 XML 文件中。该 XML 文件可在 /import 操作中用于将全部或部分配置数据库复制到另一个 IIS 配置中。
发出该命令的计算机必须运行 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 提供一个用于将继承属性包括在导出文件中的选项。
为防止未经授权即使用导出文件,iiscnfg.vbs 允许您用密码加密导出文件。密码加密会话密钥,而会话密钥加密设置了安全属性的所有属性。
您可以读取加密的导出文件(只对会话密钥和安全属性进行加密),并且可以删除文件。但是,除非您提供加密密码,否则不能在 /import 操作中使用导出文件。同样,您不能从导出文件中删除密码加密,也不能更改加密密码。
/copy 操作更改配置数据库中计算机特定的属性和系统特定的属性以便它们在目标计算机上有效。但是,它不调整目录或文件路径。因此,配置中的路径在目标计算机上可能无效。
iiscnfg /export /f [Path\]FileName.xml /sp SourcePath [/d EncryptingPassword] [/inherited] [/children] [/s Computer [/u [Domain\]User [/p Password]]]
如果忽略该参数或者忽略密码参数,则导出文件将用空密码加密。因此,只加密安全属性,且任何管理员都可以使用导出文件来导入配置数据库配置。
注意 当导入继承属性时,导入项保持它们在导出配置中继承的属性。如果未导入继承属性,则项继承导入配置的属性。
示例 1:
下面的示例将网站 Finance 的配置导出到文件 C:\Finance\Finance.xml 中。该命令使用 /sp 参数指定网站的配置数据库路径(即,/lm/W3SVC/2),使用 /children 参数导出该配置的所有子项。它还使用 /inherited 参数将继承属性包括在导出文件中。这确保网站的配置即使在导入到其他系统中时也保留这些属性。
iiscnfg /export /f c:\finance\finance.xml /sp /lm/w3svc/2 /children /inherited
作为响应,iiscnfg 显示以下成功消息:
Configuration exported from /lm/w3svc/2 to file c:\finance\finance.xml
得到的文件将包括 /lm/w3svc/2 路径中的所有项和子项。它还包括 IisInheritedProperties 项,其中包含所有继承属性的值。
示例 2:
下面的示例将本地计算机的 IIS 配置导出到文件 D:\IIStest\Config.xml 中。它使用 /f 参数指定配置数据库的文件名和位置,使用 /sp 参数指定配置数据库的根项 (/)。/children 参数将根项的所有子项递归添加到导出文件中。(如果没有 /children 参数,则只导出根目录项。)最后,该命令使用 /d 参数和密码加密导出文件。
iiscnfg /export /f d:\iistest\config.xml /sp / /children /d p@sswoRd61
作为响应,iiscnfg 显示以下成功消息:
Configuration / has been exported to d:\iistest\config.xml
即便完整地导出配置,导出文件也并非与系统的 MetaBase.xml 完全相同。会话密钥、访问控制列表 (ACL) 和密码会有所不同。
您无法通过查看加密的导出文件来辨别这种区别。但是,如果您对同一个文件的加密和非加密版本进行比较,则可以看到安全属性的值在加密版本中发生了变化。因此,如果没有密码,则该文件不能用于导入命令中。