第 4 课:导出和导入配置数据库节点

服务器管理员常常需要获取一部分 IIS 配置,并在另一台服务器上进行复制。在 IIS 6.0 之前,需要手动来完成此项工作,或者必须复制整个配置。现在,使用 IIsComputer (WMI) 对象的两个方法,可以将 IIS 配置中的各个部分保存到一个文件,并可以将它们导入到另一个 IIS 6.0 Web 服务器。在尝试下面的代码示例之前,请了解 IIsComputer.Export (WMI)IIsComputer.Import (WMI) 方法。与前面一样,以 IIS 6.0 服务器的名称替换 MyMachine,并验证其他变量。

VBScript
Const EXPORT_CHILDREN = 0 ' 将子项的属性添加到导出文件。
Const EXPORT_CHILDREN = 1 ' 将已导出项的继承属性添加到导出文件。
Const EXPORT_NODE_ONLY = 2 ' 请不要将指定项的子项添加到导出文件。
Dim strPassword, strFilePath, strMetabasePath, intFlags
strPassword = "ExportingPassw0rd"  ' 请使用相同的密码导入配置。
strFilePath = "C:\exported.xml"
strMetabasePath = "/lm/logging/custom logging" ' 如在 metabase.xml 文件中所表示的那样。
intFlags = EXPORT_NODE_ONLY OR EXPORT_INHERITED ' 仅显示带有继承属性的节点。
' 建立与 WMI、MyMachine 上的 IIS 名称空间以及 IIsComputer 对象的连接。
set locatorObj = CreateObject("WbemScripting.SWbemLocator")
set providerObj = locatorObj.ConnectServer("MyMachine", "root/MicrosoftIISv2")
Set computerObj = providerObj.get("IIsComputer='LM'")
' 从计算机对象中调用导出方法。
computerObj.Export strPassword, strFilePath, strMetabasePath, intFlags
' 打印结果。
WScript.Echo "Exported the node at " & strMetabasePath & " to " & strFilePath
JScript
var EXPORT_CHILDREN = 0; // 将子项的属性添加到导出文件。
var EXPORT_INHERITED = 1; // 将已导出项的继承属性添加到导出文件。
var EXPORT_NODE_ONLY = 2; // 请不要将指定项的子项添加到导出文件。
var strPassword = "ExportingPassw0rd";
var strFilePath = "C:\\exported.xml";
var strMetabasePath = "/lm/logging/custom logging"; // 如在 metabase.xml 文件中所表示的那样。
var intFlags = EXPORT_NODE_ONLY | EXPORT_INHERITED; // 仅显示带有继承属性的节点。
// 建立与 WMI、MyMachine 上的 IIS 名称空间以及 IIsComputer 对象的连接。
var locatorObj = new ActiveXObject("WbemScripting.SWbemLocator");
var providerObj = locatorObj.ConnectServer("MyMachine", "root/MicrosoftIISv2");
var computerObj = providerObj.get("IIsComputer='LM'");
// 从计算机对象中调用导出方法。
computerObj.Export(strPassword, strFilePath, strMetabasePath, intFlags);
// 打印结果。
WScript.Echo("Exported the node at " + strMetabasePath + " to " + strFilePath)

要导入已导出的项,请使用下面的代码。这些示例使用了配置数据库的 custom logging 项,该项占一个位置,因此必须将导出的信息导入到目标服务器上的相同位置。然而,如果您导出的是虚拟目录,则可以将其导入到目标服务器上的任何站点。

VBScript
Const IMPORT_CHILDREN = 0 ' 递归地导入指定项的子项。
Const IMPORT_INHERITED = 1 ' 导入项的继承属性。
Const IMPORT_NODE_ONLY = 2 ' 请不要从指定的文件中导入子项。
Const IMPORT_MERGE = 4 ' 将导入的项合并到现有的配置中,而不是完全覆盖原来的配置。
Dim strPassword, strFilePath, strMetabasePath, intFlags
strPassword = "ExportingPassw0rd"
strFilePath = "C:\exported.xml"
strSourceMetabasePath = "/lm/logging/custom logging" ' 如在 metabase.xml 文件中所表示的那样。
strDestinationMetabasePath = "/lm/logging/custom logging" ' 可以不同于源文件。
intFlags = IMPORT_NODE_ONLY OR IMPORT_INHERITED ' 仅导入带有继承属性的节点。
' 建立与 WMI、MyMachine 上的 IIS 名称空间以及 IIsComputer 对象的连接。
set locatorObj = CreateObject("WbemScripting.SWbemLocator")
set providerObj = locatorObj.ConnectServer("MyMachine", "root/MicrosoftIISv2")
Set computerObj = providerObj.get("IIsComputer='LM'")
' 从计算机对象中调用导出方法。
computerObj.Import strPassword, strFilePath, strSourceMetabasePath, strDestinationMetabasePath, intFlags
' 打印结果。
WScript.Echo "Imported the node in " & strFilePath & " to " & strDestinationMetabasePath
JScript
var IMPORT_CHILDREN = 0; // 递归地导入指定项的子项。
var IMPORT_INHERITED = 1; // 导入项的继承属性。
var IMPORT_NODE_ONLY = 2; // 请不要从指定的文件中导入子项。
var IMPORT_MERGE = 4; // 将导入的项合并到现有的配置中,而不是完全覆盖原来的配置。
var strPassword = "ExportingPassw0rd";
var strFilePath = "C:\\exported.xml";
var strSourceMetabasePath = "/lm/logging/custom logging"; // 如在 metabase.xml 文件中所表示的那样。
var strDestinationMetabasePath = "/lm/logging/custom logging"; // 可以不同于源文件。
var intFlags = IMPORT_NODE_ONLY | IMPORT_INHERITED; // 仅导入带有继承属性的节点。
// 建立与 WMI、MyMachine 上的 IIS 名称空间以及 IIsComputer 对象的连接。
var locatorObj = new ActiveXObject("WbemScripting.SWbemLocator");
var providerObj = locatorObj.ConnectServer("MyMachine", "root/MicrosoftIISv2");
var computerObj = providerObj.get("IIsComputer='LM'");
// 从计算机对象中调用导出方法。
computerObj.Import(strPassword, strFilePath, strSourceMetabasePath, strDestinationMetabasePath, intFlags);
// 打印结果。
WScript.Echo("Imported the node in " + strFilePath + " to " + strDestinationMetabasePath);
相关主题

© 1997-2003 Microsoft Corporation。保留所有权利