Создание пользовательских сборщиков VBScript для всех файлов конфигурации

Если вы создаете пользовательские общие сборщики VBScript, имя файла должно содержать имя свойства предварительного требования в подкаталоге /lib. Сборщик содержит код, который получает фактическое значение свойства предварительного требования. Кроме того, при необходимости он может использовать общие функции и подпрограммы для получения этих значений.

Прежде чем начать

Прежде чем создавать сборщики, просмотрите набор предварительно определенных функций и подпрограмм в следующих приложениях. Выясните, можно ли использовать какие-то из них для получения фактических значений: Выясните, должен ли сборщик проверить, что свойство предварительного требования существует, и, если оно существует, какую дополнительную информацию нужно собрать. Каждая проверка должна возвращать значение, даже если свойство не существует. Например:
  • Проверить, существует ли переменная среды, например, домашний каталог некоторого продукта. Пример - TCR_HOME для Tivoli Common Reporting
  • Проверить, содержит ли переменная среды файл JAR, двоичные данные или путь, например, путь к JRE в переменной среды PATH.
  • Проверить фактическое значение переменной среды, например, домашний каталог продукта. Пример - TCR_HOME для Tivoli Common Reporting.
  • Проверить, установлен ли продукт.
  • Проверить, какая версия продукта установлена.

Процедура

  1. Создайте файл VBScript. Сохраните файл в каталоге ips_root/lib, соблюдая некоторую версию следующих правил именования файлов:
    [prefix_identifier.]property_name.vbs
    Где:
    • prefix_identifier - это префиксный идентификатор для предварительно определенной категории свойств предварительных требований, как описано в разделе Табл. 1.
    • property_name - это имя свойства предварительных требований, используется в имени сборщика.
    Например, mssqlVersion.vbs содержит код, который получает фактическое значение свойства предварительного требования сервера MS SQL на компьютере Windows.
  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
    Чтобы проверить, что среда JRE задана в переменной PATH, где имя свойства предварительного требования - 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. Создайте пользовательский оценщик, только если стандартные функции сравнения не могут сравнить фактическое и ожидаемое значения.