Toon posts:

VBscript - WbemClass HIS problemen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dames en heren,

Ik ben bezig met het schrijven van een script waarin ik de configuratie van Microsoft Host Integration Server (HIS) kan aanpassen. Bij de installatie van HIS op een server worden specifieke WMI classes t.b.v. HIS geïnstalleerd op de machine. Deze WMI classes stellen je in staat om HIS te beheren in bijna elk aspect.

Hoewel er documentatie beschikbaar is van de HIS WMI classes op MSDN en Technet, is het mij niet duidelijk hoe ik sommige van deze classes moet gebruiken in mijn script. Om een voorbeeld te geven, ik heb een voorbeeld gevonden waarin een WMI class wordt gebruikt om een Display LU aan te maken binnen HIS. Ik heb de code hieronder geplakt, en deze code werkt overigens prima.

---- Begin code ---
Set WmiLocator = CreateObject("WbemScripting.SWBemLocator")
Set WmiHisNameSpace = WmiLocator.ConnectServer("","root\MicrosoftHIS")
Set WmiObj = WmiHisNameSpace.Get("MsSna_LuDisplay")
WmiObj.Security_.impersonationLevel = 3
Set NewWmiObj = WmiObj.SpawnInstance_
NewWmiObj.Name = strLU
NewWmiObj.Comment = ""
NewWmiObj.Compression = "false"
NewWmiObj.Model = 0
NewWmiObj.ModelOverride = "true"
NewWmiObj.PoolName = ""
NewWmiObj.UserWksSecure = "false"
NewWmiObj.Number = strLUTAA
NewWmiObj.ConnectionName = strPU
NewWmiObj.Put_ wbemFlagReturnWhenComplete
--- Einde Code ---

Nu is het probleem dat ik naast het aanmaken ook moet kunnen verwijderen. Waarschijnlijk moet ik daarbij dezelfde WMI class gebruiken, maar ik weet niet hoe. Verder vermoed ik dat de manier waarop je de WMI class methods moet gebruiken niet direct specifiek zijn voor de HIS WMI classes, maar dat er een soort algemene aanpak is waarop je dit soort exotische classes moet gebruiken.

Weet iemand hoe ik dit probleem kan aanpakken? Is er een generieke manier op dit soort WMI classes te gebruiken? Wellicht andere tips, of links naar online documentatie die ik via Google niet heb gevonden.

Alvast bedankt.

Acties:
  • 0 Henk 'm!

  • WaSteiL
  • Registratie: Juli 2003
  • Laatst online: 22-09 14:21
Ik ben even gaan kijken omdat ik dit in de toekomst mogelijk ook wel even wil gebruiken. Daar kwam ik het volgende tegen. Nog niet geprobeerd en weet dus ook niet of het daadwerkelijk werkt.

VBScript:
1
2
3
Set objWMIService = GetObject("winmgmts:" & 
"{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2") 
objWMIService.Delete("The_Class_XYZ")


Edit: dit zou specifiek zijn voor het verwijderen van een class natuurljik,maar dat is wel duidelijk lijkt mij.

[ Voor 13% gewijzigd door WaSteiL op 08-06-2007 11:04 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
WaSteiL schreef op vrijdag 08 juni 2007 @ 11:02:
Ik ben even gaan kijken omdat ik dit in de toekomst mogelijk ook wel even wil gebruiken. Daar kwam ik het volgende tegen. Nog niet geprobeerd en weet dus ook niet of het daadwerkelijk werkt.

VBScript:
1
2
3
Set objWMIService = GetObject("winmgmts:" & 
"{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2") 
objWMIService.Delete("The_Class_XYZ")


Edit: dit zou specifiek zijn voor het verwijderen van een class natuurljik,maar dat is wel duidelijk lijkt mij.
Ik neem aan dat je hiermee het verwijderen van de class bedoelt? Dat is mijn geval niet de bedoeling. De class zelf moet uiteraard gewoon blijven bestaan. Echter moet een LU (een object binnen een HIS configuratie) worden verwijderd, waarbij ik gebruik maak van de betreffende class.

Het is punt is een beetje, zoals ik al eerder aangaf, dat er vast een generieke manier is om deze WMI classes te gebruiken. Zoals je in het stukje code kunt zien worden er een "spawninstance_" en een "put" statement gedaan. Ik kan me voorstellen dat het ook mogelijk moet zijn om in plaats van een "put" ook een delete te doen. Je zou dan bijvoorbeeld eerst het specifieke object wat je wilt verwijderen via WMI in een object moeten stoppen, en vervolgens een method uit te voeren waarmee je het object verwijderd. Ik heb daar enigszins mee geëxpirimenteerd, maar nog niet werkend kunnen krijgen.