创建所有配置文件的公共定制 VBScript 收集器

创建公共定制 VBScript 收集器时,文件名必须包含先决条件属性的名称,且文件必须存储在 /lib 子目录中。 此收集器包含用于获取先决条件属性的实际值的代码。 另外,在有需要时,它还可以使用通用函数和子例程来获取该值。

开始之前

在创建收集器之前,请务必查看下列附录中的预定义函数及子例程集合。 请确定能否使用其中的任何函数及子例程来获取实际值: 确定收集器是否必须检查该先决条件属性是否存在,以及必须进行此检查时还需收集的其他信息。 无论属性是否存在,每次检查都必须返回一个值。 例如:
  • 检查是否存在环境变量,例如产品的主目录。 示例为 Tivoli® Common ReportingTCR_HOME
  • 检查环境变量是否包含 JAR 文件、二进制文件或路径,例如 PATH 环境变量中的 JRE 路径。
  • 检查环境变量的实际值,例如产品的主目录。 示例为 Tivoli Common ReportingTCR_HOME
  • 检查是否已安装某个产品。
  • 检查已安装的产品版本。

过程

  1. 创建 VBScript 文件。 通过使用以下文件命名约定的变体,将此文件保存在 ips_root/lib 目录中:
    [prefix_identifier.]property_name.vbs
    其中:
    • prefix_identifier表 1 中概述的先决条件属性预定义类别的相应前缀标识。
    • property_name 是先决条件属性名,并且在收集器名称中使用。
    例如,mssqlVersion.vbs 包含用于在 Windows 机器上获取 MS SQL Server 先决条件属性的实际值的代码。
  2. 通过使用 VBScript 编辑器,添加用于获取先决条件属性的值的代码。 使用 VBScript COM 和函数来访问 Windows 环境的元素,并在 Windows 脚本宿主环境中运行。 请确保此检查返回了如下标准输出:
    WScript.Echo "property_name=" & var_for_value
    • property_name 表示在配置文件中编写的先决条件属性,例如 env.tcrhome
    • var_for_value,即收集器针对先决条件属性获取的实际值的 VBScript 变量。
    要检查 TCR_HOME 环境是否存在并返回实际值(先决条件属性名为 env.tcrhome):
    set wshShell = WScript.CreateObject("WScript.Shell")
    tcr_home=WshShell.ExpandEnvironmentStrings("%TCR_HOME%")
    WScript.Echo "env.tcrhome=" & tcr_home
    要检查是否在 PATH 变量中设置了 JRE(先决条件属性名为 env.path.jre):
    Set wshShell = WScript.CreateObject("WScript.Shell")
    path = WshShell.ExpandEnvironmentStrings("%PATH%")
    Set objRegEx = new RegExp
    objRegEx.Pattern = "(^|([:;\\/]))(C:\Program Files\IBM\Java60\jre\bin)($|[:;])"
    objRegEx.IgnoreCase = True
    objRegEx.Global = True
    Set matches = objRegEx.Execute(path)
    WScript.Echo "env.path.jre=" & (matches.Count > 0)
    要检查已安装的 Tivoli Directory Integrator 版本(先决条件属性名为 installedSoftware.TDI.version):
    strComputer = "."
    strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    regDisName = "DisplayName"
    regDisVer = "DisplayVersion"
    
    Set oReg = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" &
            		strComputer & "\root\default:StdRegProv")
    
    Set sftReg = new RegExp
    sftReg.pattern = "Tivoli Directory Integrator"
    sftReg.Global=False
    oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
    For Each subkey In arrSubKeys
        searchkey = strKeyPath & "\" & subkey
        oReg.GetStringValue HKEY_LOCAL_MACHINE, searchkey, regDisName, strName
        oReg.GetStringValue HKEY_LOCAL_MACHINE, searchkey, regDisVer, strVersion
        If Not IsNull(strName) Then
           Set matches = sftReg.Execute(strName)
           If matches.Count > 0 Then
               Wscript.Echo "installedSoftware.TDI.version=" & strVersion
           End If
        End If      
    Next
  3. 运行 VBScript 收集器以确保不存在运行时错误,必要时进行调试。
  4. 仅当标准比较函数无法对实际值与期望值进行比较时,才需要创建定制评估程序。