Systems Management Server (SMS) is een produkt van microsoft wat bedoeld is om een aantal beheersfuncties voor uw netwerk aan te bieden. Zoals echter wel meer gebeurt bevat het natuurlijk
net niet alle functionaliteit die u zou wensen. Voor elk probleem is een oplossing en wel in de vorm van een aantal derde partijen die add-ons aanbiedt om ontbrekende functionaliteit aan te vullen of onvolledigheden weg te poetsen.
Al deze add-ons hebben een groot nadeel: ze kosten geld. Geld wat u natuurlijk beter kunt gebruiken. Vooropgesteld dat u wat handig ingesteld bent zijn er echter ook mogelijkheden om zelf meer of minder complexe add-ons voor SMS
te maken. SMS biedt hier namelijk gewoon, een helaas wat slecht gedocumenteerde, interface voor en wel in de vorm van MIF (management information form).
Dit woord komt ook terug in de MIF editor die door Microsoft bij SMS wordt
meegeleverd. Echt leuke dingen kunt u daar echter niet mee doen. Daarvoor moeten we met het serieuzere scriptwerk aan de gang.
Wat is die MIF interface nu precies?
MIF files zijn niets anders dan gewoon tekstfiles die
met bepaalde coderingen informatie doorgeven aan de SMS server. Als we informatie aan willen leveren bij SMS, kunnen we dat op 2 manieren: als een NoidMIF en als een ISVMIF. (Independent Software Vendors MIF.)
Een NoidMIF bevat
geen informatie over de gegevensarchitectuur waar de data in geplaatst moet worden en wordt gebruikt om hardware en software informatie door te geven van pc's die door SMS worden geïnventariseerd. SMS weet dan zelf voor welke
architectuur de gegevens bestemd zijn. Door zo'n MIF te plaatsen in de SMS/noidMIFs directory op het werkstation kunnen we gegevens doorspelen. De gegevens worden dan in de inventory van het werkstation opgenomen.
Veel mooier
is echter de ISVMIF. Hiermee kunnen we onze eigen gegevenstructuren in SMS creëren en zo waardevolle informatie toevoegen.
Een praktijkvoorbeeld.
Stel je hebt een groot bedrijf met veel servers en die servers hebben veel printers aan zich gebonden. Nou zou het handig zijn als we de printerinformatie uit de registry van de servers
konden halen en die aan de SMS database toevoegen zodat we een actueel overzicht van ons printerbestand hebben.
Om dit te bereiken moeten we het volgende doen:
1. De registry uitlezen op zoek naar printerinformatie.
2. Deze informatie aan een MIF file toevoegen.
3. De MIF file doorsturen naar SMS.
1. Het uitlezen.
Hiervoor kunt u natuurlijk uw favoriete script voor gebruiken. Bijvoorbeeld kixtart, perl of XLNT.
Elke
taal heeft wel zo zijn mogelijkheden om specifieke key's uit de registry uit te lezen en deze vervolgens naar een file te exporteren. In ons voorbeeld maken we gebruik van kixtart. Een scripttaal die onder meer met de
resourcekit wordt meegeleverd.
2. informatie toevoegen aan een MIF
Het volgende deel van het script schrijft voor elke gevonden printer een MIF file. Om de printer informatie makkelijk bereikbaar te maken wordt
een SMS architectuur gecreëerd die lijkt op die van normale pc's waardoor de printers in dezelfde overzichten komen. Er wordt echter wel een nieuw systemtype gedefinieerd om onderscheid mogelijk te maken.
Vervolgens wordt de relevante info in MIF-formaat weggeschreven.
3. Het doorgeven van de informatie.
De MIFfile kan aan SMS worden doorgegeven door deze in de ISVMIF directory van een SMS logonserver (een centrale
server waar SMS clients mee communiceren) te plaatsen. Deze info is op elk werkstation in de SMS.INI terug te vinden dus deze kan makkelijk door het script achterhaald worden.
Zodra de informatie in de ISVMIF directory is gearriveerd zal SMS deze oppakken en verwerken. Het uiteindelijk resultaat ziet er dan zo uit: