Tworząc niestandardowe wspólne kolektory VBScript, należy pamiętać o tym, że nazwa pliku musi zawierać nazwę właściwości wymagania wstępnego, a plik musi być zapisany w podkatalogu /lib. Kolektor zawiera kod umożliwiający uzyskanie rzeczywistej wartości właściwości wymagania wstępnego. Do uzyskania wartości może on także używać funkcji i procedur, jeśli jest to wymagane.
Zanim rozpoczniesz
Przed rozpoczęciem tworzenia kolektorów należy przejrzeć zestaw predefiniowanych funkcji i procedur dostępnych w następujących dodatkach.
Należy stwierdzić, czy można ich użyć do uzyskania wartości rzeczywistych:
Określ, czy kolektor musi sprawdzać, czy właściwość wymagania wstępnego istnieje, a jeśli tak, to jakie inne informacje muszą być zbierane.
Każde sprawdzenie musi zwracać wartość, bez względu na to, czy istnieje. Na przykład:
- Sprawdź, czy istnieje zmienna środowiskowa, na przykład katalog główny produktu. Przykład: TCR_HOME dla produktu Tivoli Common Reporting.
- Sprawdź, czy zmienna środowiskowa zawiera plik JAR, plik binarny lub ścieżkę, np. ścieżkę do środowiska JRE w zmiennej środowiskowej PATH.
- Sprawdź wartość rzeczywistą zmiennej środowiskowej, na przykład katalog główny produktu. Przykład: TCR_HOME dla produktu Tivoli Common Reporting.
- Sprawdź, czy produkt jest zainstalowany.
- Sprawdź, która wersja produktu jest zainstalowana.
Procedura
- Utwórz plik skryptu VBScript. Zapisz ten plik w katalogu ips_root/lib, stosując następujący wariant nazwy pliku:
[prefix_identifier.]property_name.vbs
gdzie:
- prefix_identifier to identyfikator przedrostka predefiniowanej kategorii właściwości wymagań wstępnych, jak to przedstawia Tabela 1.
- property_name oznacza nazwę właściwości wymagania wstępnego i jest używana w nazwie kolektora.
Na przykład mssqlVersion.vbs zawiera kod do uzyskania wartości rzeczywistej dla właściwości wymagania wstępnego MS SQL Server na komputerze z systemem Windows.
- Za pomocą edytora kodu VBScript dodaj kod, aby uzyskać wartość właściwości wymagania wstępnego. Użyj modelu i funkcji VBScript, aby uzyskać dostęp do elementów środowiska systemu Windows i uruchomić w środowisku hosta skryptów systemu Windows. Upewnij się, że sprawdzenie zwraca wyjście standardowe:
WScript.Echo "property_name=" & var_for_value
- property_name, która reprezentuje właściwość wymagania wstępnego w postaci zapisanej w pliku konfiguracyjnym, na przykład env.tcrhome.
- var_for_value, tj. zmienna
VBScript dla wartości rzeczywistej, którą kolektor uzyskuje dla właściwości wymagania wstępnego.
Aby sprawdzić, czy środowisko TCR_HOME istnieje, i zwrócić wartość rzeczywistą, gdzie nazwa właściwości wymagania wstępnego to env.tcrhome:
set wshShell = WScript.CreateObject("WScript.Shell")
tcr_home=WshShell.ExpandEnvironmentStrings("%TCR_HOME%")
WScript.Echo "env.tcrhome=" & tcr_home
Aby sprawdzić, czy środowisko JRE jest ustawione w zmiennej PATH, gdzie nazwa właściwości wymagania wstępnego to 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)
Aby sprawdzić wersję zainstalowanego programu Tivoli Directory Integrator, gdzie nazwa właściwości wymagania wstępnego to 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
- Uruchom kolektor VBScript, aby upewnić się, że nie występują błędy w czasie wykonywania, a w razie potrzeby przeprowadź debugowanie.
- Utwórz ewaluator niestandardowy tylko wtedy, gdy standardowe funkcje porównywania nie mogą porównać wartości rzeczywistych i oczekiwanych.