Thursday, January 10, 2013

Zugriff auf die Hard und Softwarekonfiguration über WMI mittels Lotus Script

Unter Windows gibt es mit dem Windows Management Instrumentation ein sehr mächtiges Werkzeug mit dem man auf diverse Hardware und Software Informationen in Windows zugreifen, bzw mit dem man auch administrative Dinge erledigen kann. Normalerweise verwendet man WMI aus einem vb oder aus einem Powershell script.

Heute möchte ich aber zeigen, dass man den selben Mechanismus auch bequem von Lotus script für die Beschaffung von diversen Infos verwenden kann. Als Beispiel möchte ich einen Agenten anführen, der z.B. die derzeitige Bildschirmauflösung ausliest. Eventuell will man ja in einem Notesscript je nach verwendeter Bildschirmauflösung verschiedene Framesets anzeigen.


Sub Initialize
 Dim objWMIService As Variant
 Dim colItems as Variant
 Dim strComputer As String
 strComputer="."
 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DesktopMonitor",,48) 
 Forall objItem In colItems 
  print "Monitor Höhe:" & objItem.ScreenHeight
  Print "Monitor Breite:" & objItem.ScreenWidth 
 End forall
End Sub


02-04  die verwendeten Variablen werden definiert.
05 Mit WMI kann man auch auf Remotecomputer zugreifen. Im Normalfall will man jedoch auf seinen eigenen Computer zugreifen, was man durch den Punkt erreichen kann.
06  Das WMI Service Objekte wird instantiert.
07 WMI stellt die Informationen in einer Datenbank ähnlichen Struktur zur Verfügung die mit einer an SQL angelehnten Syntax abgefragt werden kann. Ich komme dann noch später dazu wie man auf diese SQL Kommandos kommt.
08-11 Mittels einer Forall Schleife werden alle Sätze gelesen. Normalerweise sollte hier nur ein Satz zurückgegeben werden, ausser der Benutzer hat mehrere Monitore;-)

Obiges Gerüst kann man natürlich nicht nur für den obigen Zweck verwenden sondern mit den richtigen WMI SQL's kann man praktisch auf jede Info die in Windows gespeichert ist zugreifen. Um den Querystring zusammenzubauen kann man entweder die Doku in der MSDN durcharbeiten oder besser auf den genialen WMI Code Creator  zurückgreifen.


Mit dem kann man sich bequem die Informationen zusammenklicken und bekommt dann den Code in vbscript angezeigt. Mittels diesen Infos kann man dann oben angeführtes Lotus Script Beispiel überarbeiten und auf die gewünschten Infos zugreifen.


No comments:

Post a Comment

ad