Iiscnfg.vbs IIS 配置脚本
导入和导出本地或远程计算机上Internet信息服务(IIS)配置数据库的所有或选定元素,或者将整个IIS配置(配置数据库和架构)复制到另一台计算机以复制配置。Iiscnfg执行下列功能:
若要查看该命令语法,请单击以下命令:
iiscnfg/export
以加密或未加密格式将所有或部分IIS配置数据库复制到XML文件。然后可在导入操作中使用XML文件来将所有或部分配置数据库复制到其他IIS配置。
语法
iiscnfg[.vbs]/export/f[Path]FileName.xml/spMetabasePath[/dEncryptingPassword][/inherited][/children][/sComputer[/u[Domain]User[/pPassword]]]
参数
/f[Path]FileName.xml
必需。指定导出文件的唯一名称和位置。如果指定现有的文件或者如果指定的路径中的目录不存在,则此命令将失败。
文件路径必须是本地路径。如果从远程计算机导出文件,则/f参数是指远程计算机上的某个路径。
/spMetabasePath
必需。指定要导出的配置数据库密钥。输入配置数据库路径以标识选定的密钥。
/dEncryptingPassword
使用指定的密码加密导出文件。可以使用任何字符串作为密码。
/d参数可通过使用指定的密码来加密会话密钥和安全属性,创建安全的导出文件。必须提供密码才能在“导入”操作中使用此文件。
如果省略了此参数或密码参数,则导出文件通过空白密码来加密。这样只有安全属性才被加密,而且任何管理员都可使用该导出文件来导入配置数据库配置。
/inherited
将已导出密钥的继承属性添加到导出文件。如果没有此参数,则导出文件不包括从更高级别的密钥所继承的属性。
/children
将指定密钥的子密钥递归添加到导出文件。
/sComputer
在指定的远程计算机上运行脚本。键入计算机名或IP地址(不带反斜杠)。默认情况下,将在本地计算机上运行脚本。
/u[Domain]User
使用特定用户帐户的权限运行脚本。该帐户必须是远程计算机上Administrators组成员。默认情况下,脚本使用本地计算机上当前用户的权限运行。
/pPassword
指定在/u参数中指定的用户帐户的密码。如果忽略该参数,脚本将提示您输入密码并隐藏键入的文本。
/?
在命令提示符下显示帮助。
注释
■要执行该过程,您必须是本地计算机Administrators组的成员,或者您必须被委派适当的权限。如果将计算机加入域,DomainAdmins组的成员可能也可以执行这个过程。作为安全性的最佳操作,可以考虑使用运行方式来执行这个过程。
■使用引号括起包含空格的配置数据库路径元素。仅括起带空格的元素,不包括整个路径。例如,应键入"DefaultFTPSite"/IISAdmin,而非"DefaultFTPSite/IISAdmin"。
示例
下面的示例显示了如何在特定的情况下使用iiscnfg/export。
导出网站配置
下列命令将Finance网站的配置导出到C:FinanceFinance.xml文件。此命令使用/sp参数来指定网站的配置数据库路径/lm/W3SVC/2,使用/children参数来导出配置的所有子密钥。它还使用/inherited参数来包括导出文件中的继承属性。这将确保网站配置保留这些属性,即使它被导入到不同的系统。
iiscnfg/export/fc:financefinance.xml/sp/lm/w3svc/2/children/inherited
作为响应,Iiscnfg.vbs显示以下成功消息:
Configurationexportedfrom/lm/w3svc/2tofilec:financefinance.xml
结果文件将包括/lm/w3svc/2路径内的所有密钥和子密钥。它还包括包含了所有继承属性的值的IisInheritedProperties密钥。
导出本地计算机的整个IIS配置
下列命令将本地计算机的IIS配置导出到D:IIStestConfig.xml文件。它使用/f参数来指定文件名和位置,使用/sp参数来指定配置数据库的根密钥(/)。/children参数将根密钥的所有子密钥以递归方式添加到导出文件。(如果没有/children参数,则只导出根密钥。)最后,该命令使用/d参数和密码来加密导出文件。
iiscnfg/export/fd:iistestconfig.xml/sp//children/dp@sswoRd61
作为响应,Iiscnfg.vbs显示以下成功消息:
Path/hasbeenexportedtod:iistestconfig.xml
请注意即使完整导出该配置也与系统的Metabase.xml文件不同。会话密钥、访问控制列表(ACL)和密码都不同。
另外,仅通过查看该导出文件无法判别是否加密。不过,如果比较同一文件的加密版和未加密版,将能发现加密版本中的安全属性的值已发生更改。因此,如果没有密码,则该文件将无法用于import命令。
iiscnfg/import
将XML配置数据库导出文件的配置设置添加到IIS服务器的配置数据库。
语法
iiscnfg[.vbs]/import/f[Path]FileName/spSourcePath/dpDestinationPath[/dEncryptingPassword][/children][/inherited][/merge][/sComputer[/u[Domain]User[/pPassword]]]
参数
/f[Path]FileName
必需。指定XML源文件的路径和文件名。
文件路径必须是本地路径。将文件导入到远程计算机时,/f参数是指远程计算机上的某个路径。
/spSourcePath
必需。指定正在导入的密钥在XML文件中的位置。当密钥在XML文件中出现时,输入其配置数据库路径。要导入源文件中的所有密钥,请输入根密钥的配置数据库路径。
/dpDestinationPath
必需。指定在配置数据库中放置导入密钥的位置。输入配置数据库路径。
如果指定的路径在配置数据库中已经存在,则导入密钥将覆盖和替换当前在该配置数据库路径中的密钥而没有任何警告。
/dEncryptingPassword
指定用于加密配置数据的密码。
加密配置文件时需要此参数。如果没有提供加密文件的密码,或者如果提供了不正确的密码,则此命令将失败。
/children
以递归方式导入指定密钥的子密钥。
/inherited
导入密钥的继承属性。只有当源文件包括继承属性时,此参数才有效。
/merge
将XML文件中的密钥与现有配置数据库密钥合并。如果没有此参数,则XML文件中的密钥将替换同一配置数据库路径中的现有密钥。
/merge参数将仅在XML文件中出现的密钥添加到配置数据库、将不在XML文件中的密钥保留在配置数据库中,并在XML文件和配置数据库中都出现密钥时应用XML文件中的值。
/sComputer
在指定的远程计算机上运行脚本。键入计算机名或IP地址(不带反斜杠)。默认情况下,将在本地计算机上运行脚本。
/u[Domain]User
使用特定用户帐户的权限运行脚本。该帐户必须是远程计算机上Administrators组成员。默认情况下,脚本使用本地计算机上当前用户的权限运行。
/pPassword
指定在/u参数中指定的用户帐户的密码。如果忽略该参数,脚本将提示您输入密码并隐藏键入的文本。
/?
在命令提示符下显示帮助。
注释
■要执行该过程,您必须是本地计算机Administrators组的成员,或者您必须被委派适当的权限。如果将计算机加入域,DomainAdmins组的成员可能也可以执行这个过程。作为安全性的最佳操作,可以考虑使用运行方式来执行这个过程。
■使用引号括起包含空格的配置数据库路径元素。仅括起带空格的元素,不包括整个路径。例如,应键入"DefaultFTPSite"/IISAdmin,而非"DefaultFTPSite/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/fc:config.xml/sp/lm/w3svc/5/Root/NewSite/dp/lm/w3svc/3/children
作为响应,Iiscnfg.vbs显示以下成功消息:
Configurationimportedfrom/lm/w3svc/5inc:config.xmlto/lm/w3svc/3intheMetabase.
使用此命令后,NewSite配置将出现在第三个网站的IIS中,其配置数据库路径为/lm/W3SVC/3。
将日志记录配置导入到远程计算机
下列过程将C:IISLogging.xml中的自定义日志记录配置导入到远程计算机的IIS配置数据库中。可使用该方法或该方法的扩展将配置传播到一组服务器。
将日志记录配置导入到远程计算机的步骤分为两步:
1.将源文件复制到远程计算机。(Iiscnfg.vbs不允许/f参数中有远程路径。)
2.将配置导入到IIS。
第一个命令将Iislogging.xml文件复制到远程服务器Svr126:
copyIISLogging.xml\Svr126c$
第二个命令将Iislogging.xml导入到Svr126的IIS配置中。它使用/f参数来标识源文件,使用/sp参数来指定要导入的/LM/Logging/CustomLogging配置数据库路径,使用/dp参数来将导入密钥放在目标配置的同一位置/LM/Logging/CustomLogging。(使用引号括起包含空格的路径元素。)它使用/children参数来导入日志记录密钥的所有子密钥。
为了在Svr126上操作,它使用/s参数指定远程计算机,使用/u和/p参数运行具有远程计算机上的用户管理员帐户权限的脚本。
iiscnfg/import/fC:IISLogging.xml/sp"/lm/logging/customlogging"/dp"/lm/logging/customlogging"/children/sSvr126/uSvr126Administrator/pp@ssword1#
作为响应,Iiscnfg.vbs显示以下成功消息:
正在连接到服务器...已完成。Configurationimportedfrom/lm/logging/customlogginginfileC:IISLogging.xmlto /lm/logging/customloggingintheMetabase.[喝小酒的网摘]http://blog.const.net.cn/a/615.htm结果,/LM/Logging/CustomLogging密钥及其子密钥从本地配置数据库复制到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/fe: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/fe: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/tsTargetComputer/tuTargetUser/tpTargetPassword[/sComputer[/u[Domain]User[/pPassword]]]
参数
/tsTargetComputer
必需。将IIS配置数据库复制到指定的计算机。键入IP地址或计算机名(不带反斜杠)。
/tuTargetUser
必需。指定用于连接到目标计算机的帐户。以[Domain]User格式键入用户帐户。该帐户必须是目标计算机上Administrators组的成员。
此参数是必需的,即使本地计算机的当前用户是目标计算机的管理员。
/tpTargetPassword
必需。指定/tu参数所指定的帐户的密码。
/sComputer
将指定的远程计算机上的IIS配置数据库复制到目标计算机。该参数将运行远程计算机上的脚本。键入远程计算机名称或IP地址(不带反斜杠)。该默认值是本地计算机。
/u[Domain]User
使用特定用户帐户的权限运行脚本。默认值为本地计算机上的当前用户。如果当前用户不是远程计算机的管理员,则必须使用该参数。
/pPassword
指定在/u参数中指定的用户帐户的密码。如果忽略该参数,IISCnfg将提示您输入密码并隐藏键入的文本。
/?
在命令提示符下显示帮助。
注释
■要执行该过程,您必须是本地计算机Administrators组的成员,或者您必须被委派适当的权限。如果将计算机加入域,DomainAdmins组的成员可能也可以执行这个过程。作为安全性的最佳操作,可以考虑使用运行方式来执行这个过程。
■默认情况下,IISCnfg将本地计算机的配置数据库复制到/ts参数所指定的目标计算机中。不过,可使用/s参数来将另一台计算机的配置数据库复制到目标计算机。
■复制操作使用IISBack.vbs来创建源配置数据库和架构的备份副本。然后它将该备份副本文件(.MDX和.SCX)复制到目标计算机,通过IISBack.vbs使用该备份副本来替换目标计算机的配置数据库和架构。尽管可手动完成这些操作,IISCnfg复制操作将提供比较方便的一步方法来复制IIS配置。
■该复制操作不复制与IIS配置相关的服务器内容,如网页和FTP文件。
■复制操作将更改配置数据库中计算机特定和系统特定的属性,以便这些属性在目标计算机中有效。不过,它不调整目录或文件路径。这样该配置中的路径可能在目标计算机中无效。
示例
下面的示例显示了如何在特定的情况下使用iiscnfg/copy。
复制本地计算机的IIS配置
下列命令将本地计算机的IIS配置复制到SVR01服务器。该命令使用/ts参数来标识目标服务器,使用/tu和tp参数来提供用户在SVR01服务器上的管理员帐户和密码。
iiscnfg/copy/tsSVR01/tuSVR01Admin06/tpP@ssWord6
作为响应,Iiscnfg.vbs显示以下成功消息。
Backingupserver127.0.0.1Backupcomplete.IP地址127.0.0.1是环回地址,一般情况下指本地计算机。只有当复制本地计算机的配置时才使用该地址。
复制远程计算机的IIS配置
下列命令将远程计算机SRV06的IIS配置复制到MAINBKP服务器。此命令使用/s命令来标识远程计算机,使用/u参数来提供用户在SRV06计算机上的管理员密码。它还使用/ts参数来标识目标服务器,使用/tu和tp参数来提供用户在MAINBKP服务器上的管理员帐户和密码。
与可选的/p参数不同,/tp参数是必需的。如果省略此参数,此命令将失败。
iiscnfg/copy/sSRV06/uDomain01Admin01/tsMAINBKP/tuMAINBKPAdmin01/tpP@ssWord6
作为响应,Iiscnfg.vbs将提示输入由/u参数指定的帐户密码。(它不回显键入的密码字符。)然后,确认密码后,它将复制该配置并显示复制操作已成功完成的消息。
输入密码:Processing...BackingupserverSRV06Backupcomplete.iiscnfg/save
将IIS配置数据库和架构保存到磁盘。
语法
iiscnfg[.vbs]/save[/sComputer[/u[Domain]User[/pPassword]]]
参数
/sComputer
将指定的远程计算机上的IIS配置数据库复制到目标计算机。该参数将运行远程计算机上的脚本。键入远程计算机名称或IP地址(不带反斜杠)。该默认值是本地计算机。
/u[Domain]User
使用特定用户帐户的权限运行脚本。默认值为本地计算机上的当前用户。如果当前用户不是远程计算机的管理员,则必须使用该参数。
/pPassword
指定在/u参数中指定的用户帐户的密码。如果忽略该参数,IISCnfg将提示您输入密码并隐藏键入的文本。
/?
在命令提示符下显示帮助。
注释
■要执行该过程,您必须是本地计算机Administrators组的成员,或者您必须被委派适当的权限。如果将计算机加入域,DomainAdmins组的成员可能也可以执行这个过程。作为安全性的最佳操作,可以考虑使用运行方式来执行这个过程。
■使用脚本或IIS管理器对配置数据库所做的任何更改都将首先写入到内存,然后在下一个计划更新(可能在几分钟后发生)进行时写入到磁盘。这样管理员可以对配置数据库进行更改,然后仅打开metabase.xml以查看是否未反映所作的更改。iiscnfg.vbs中的/save命令通过将更改立即保存到磁盘来解决该问题。
示例
下面的示例显示在特定情况下如何使用iiscnfg/save。
保存本地计算机的IIS配置
如下命令将IIS配置保存到本地计算机上的磁盘。
iiscnfg/save
作为响应,Iiscnfg.vbs显示以下成功消息。
Backupcomplete.保存远程计算机的IIS配置
如下命令将IIS配置保存到本地计算机上的磁盘。
iiscnfg/save/sSourceServer/uAdministrator/pKj30W
作为响应,iiscnfg.vbs显示下列消息。
Configurationsaved注释
■IISCnfg.vbs导入和导出由IIS存储在IIS服务器的配置数据库中的所有或部分配置信息。/copy操作将IIS服务器的整个配置数据库和架构复制到目标计算机。/save操作将IIS服务器的整个配置数据库和架构复制到目标计算机的磁盘上。
■Iisback.vbs即IIS备份管理脚本,还保存和恢复IIS配置。不过,Iisback.vbs将备份整个配置数据库和架构。无法使用它来保存或恢复配置的选定元素。
■IISCnfg复制操作(/copy)将替换以前在Windows中包括的IISSync.vbs和IISRepl.vbs工具的功能。
■Iiscnfg要求
■发出命令的计算机必须正在运行WindowsXP或WindowsServer2003操作系统。用户必须是命令所影响的计算机上的Administrators组成员。
■命令所影响的计算机必须正在运行集成了Internet信息服务(IIS)6.0的WindowsServer2003。
■IIS服务器的配置数据库包括系统特定和计算机特定的属性。不要在未加修改的情况下将一台IIS服务器的配置导入到另一台IIS服务器。相反,使用IISBack.vbs或IISCnfg复制操作(/copy),这将替代系统特定和计算机特定的属性,从而使该配置在目标计算机上有效。有关导入和导出IIS配置数据库的信息,请搜索IIS6.0帮助中的“配置数据库导入/导出”。有关如何访问IIS6.0帮助的详细信息,请参阅查看Internet信息服务(IIS)6.0帮助。
■连接到指定计算机上的IIS服务时,Iiscfng.vbs将显示“连接到服务器”消息。每次使用Iiscnfg.vbs时,不管是在本地或远程计算机,都会出现该消息。
■Iiscnfg.vbs将提供包括导出文件中的继承属性的选项。如果选择此选项,则Iiscnfg.vbs会将导出密钥的继承属性添加到导出文件中的IIsInheritedProperties密钥。从该文件中导入密钥时,可选择导入密钥的继承属性。
在导入继承属性时,导入密钥将保留导出配置中所继承的属性。如果没有导入继承属性,则密钥将继承导入配置的属性。
■为了防止对导出文件的未经授权的使用,IISCnfg.vbs使您通过密码来加密导出文件。该密码将对会话密钥加密,后者反过来对已设置安全属性的所有属性进行加密。
您可读取加密的导出文件(只加密了会话密钥和安全属性),并可删除该文件。不过无法在/import操作中使用导出文件,除非提供了加密密码。另外,无法从导出文件删除密码加密,也无法更改加密密码。
如果无法使用密码加密,则会话密钥和安全属性通过空白密码来加密,这可防止被读取,不过允许Administrators组的任何成员从导出文件导入配置数据库。IIS5.1和6.0都不支持导出文件的计算机密钥加密。