Table of Contents

WMI-Abfragen

Informationen

  • Kategorien: Kernel | Klassenformeln
  • Version: 16.0.0.4166
  • Veröffentlichungsdatum: Montag, 15. Oktober 2012
  • Entwickler: Schulze
  • Benötigt Datenbankänderung: Nein
  • Betreff: Funktion für WQL-Abfragen auf Windows Management Instrumentation (WMI)

Beschreibung

Für das Abfragen von Eigenschaften des lokalen Rechners wurde die Funktion WMISelect implementiert. Mit dieser können alle WMI-Klassen wie z.B. Win32_DiscDrive, Win32_OperatingSystem oder Win32_ComputerSystem abgefragt werden.

Zum vorherigen Testen der WMI-Abfragen kann man z.B. den WMI Explorer von Advanced Network Software benutzen (http://www.ks-soft.net).

Beispielcode

// Seriennummer der eingebauten IDE-Festplatte auslesen
//

var string $arrResult[]; 
var string $sIterator;
var string $sResult;
var string $sDeviceID;
var string $sSerialNumber;

// DeviceID in Win32_DiskDrive abfragen
// die SerialNumber steht unter XP nicht in dieser WMI-Klasse, deshalb 2 Abfragen
//
if ( !WMISelect( "DeviceID", "Win32_DiskDrive", "InterfaceType=\"IDE\" AND MediaType=\"fixed hard disk media\"", $arrResult ))
{
			   MessageBox( "Fehler bei WMI-Abfrage: " + $arrResult[0] );
			   return;
}

if ( GetSize( $arrResult ) == 0 )
{
			   $sResult = "Es wurden keine Datensätze zurückgegeben.";
			   return;
}

// SerialNumber in Win32_PhysicalMedia abfragen
// die SerialNumber steht unter XP nur in dieser WMI-Klasse, deshalb 2 Abfragen
//
$sDeviceID = StrReplaceAll( $arrResult[0], "\\", "\\\\" );
ReSize( $arrResult, 0 );

if ( !WMISelect( "SerialNumber", "Win32_PhysicalMedia", "Tag=\"" + $sDeviceID + "\"", $arrResult ))
{
			   MessageBox( "Fehler bei WMI-Abfrage: " + $arrResult[0] );
			   return;
}

if ( GetSize( $arrResult ) == 0 )
{
			   $sResult = "Es wurden keine Datensätze zurückgegeben.";
			   return;
}

$sSerialNumber = $arrResult[0];

MessageBox( $sSerialNumber );