Keď vytvárate vlastné spoločné kolektory VBScript, názov súboru musí obsahovať názov vlastnosti požiadavky a súbor musí byť uložený v podadresári /lib. Kolektor obsahuje kód na získanie aktuálnej hodnoty pre vlastnosť požiadavky. Podľa potreby tiež môže používať spoločné funkcie a podrutiny na získanie hodnoty.
Skôr ako začnete
Pred vytvorením kolektorov si pozrite množinu vopred definovaných funkcií a podrutín v nasledujúcich prílohách. Určite, či môžete niektoré z nich použiť na získanie skutočných hodnôt:
Určite, či musí kolektor kontrolovať existenciu vlastnosti požiadavky a ak áno, aké iné informácie musí zhromaždiť.
Každá kontrola musí vrátiť hodnotu aj v prípade neexistencie. Príklad:
- Kontrola, či existuje premenná prostredia, ako je domovský adresár produktu. Príklad je TCR_HOME pre Tivoli Common Reporting
- Kontrola, či premenná prostredia obsahuje súbor JAR, binárny súbor alebo cestu k JRE v premennej prostredia PATH.
- Kontrola aktuálnej premennej prostredia, ako je domovský adresár alebo produkt. Príklad je TCR_HOME pre Tivoli Common Reporting.
- Kontrola, či je nainštalovaný produkt.
- Skontrolujte verziu nainštalovaného produktu.
Procedúra
- Vytvorte súbor VBScript. Uložte súbor do adresára ips_root/lib s variantom nasledujúcej konvencie pomenúvania súborov:
[prefix_identifier.]property_name.vbs
Kde:
- prefix_identifier je identifikátor vopred definovanej kategórie vlastností požiadaviek, ako opisuje Tabuľka 1.
- property_name je názov vlastnosti požiadavky a používa sa v názve kolektora.
Napríklad mssqlVersion.vbs obsahuje kód na získanie aktuálnej hodnoty pre vlastnosť požiadavky MS SQL Server v počítači Windows.
- Pomocou editora VBScript pridajte kód na obsiahnutie hodnoty pre vlastnosť požiadavky. Použite model VBScript COM a funkcie na prístup k elementom prostredia Windows a spustenie v prostredí Windows Script
Host. Zaistite, aby kontrolovanie vrátilo štandardný výstup:
WScript.Echo "property_name=" & var_for_value
- property_name, ktoré reprezentuje vlastnosť požiadavky, ako je zapísaná v konfiguračnom súbore, napríklad env.tcrhome.
- var_for_value, t. j. premenná VBScript pre aktuálnu hodnotu, ktorú kolektor získa pre vlastnosť požiadavky.
Na kontrolu, či existuje prostredie TCR_HOME, a vrátenie aktuálnej hodnoty, kde názov vlastnosti požiadavky je env.tcrhome, použite toto:
set wshShell = WScript.CreateObject("WScript.Shell")
tcr_home=WshShell.ExpandEnvironmentStrings("%TCR_HOME%")
WScript.Echo "env.tcrhome=" & tcr_home
Na kontrolu, či je nastavené JRE v premennej PATH, kde názov vlastnosti požiadavky je env.path.jre, použite toto:
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)
Na kontrolu verzie nainštalovaného produktu Tivoli Directory Integrator, kde názov vlastnosti požiadavky je 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
- Spustite kolektor VBScript na overenie, že nenastanú žiadne chyby v čase vykonávania, a podľa potreby ho odlaďte.
- Vytvorte vlastný vyhodnocovač, iba ak štandardné funkcie porovnávania nemôžu porovnať aktuálne a očakávané hodnoty.