SWbemLastError-Objekt

Die Methoden und Eigenschaften des SWbemLastError-Objekts enthalten Fehlerobjekte und bearbeiten sie. Die Methoden und Eigenschaften dieses Objekts sind identisch mit denen des SWbemObject-Objekts, werden jedoch verwendet, um Fehlerinformationen anstelle von WMI-Klasseninformationen zu enthalten. Dieses Objekt kann durch den VBScript-CreateObject-Aufruf erstellt werden.

Sie können ein SWbemLastError-Fehlerobjekt erstellen, um die erweiterten Fehlerinformationen zu überprüfen, die einem vorherigen Methodenaufruf zugeordnet sind. Wenn keine Fehlerinformationen verfügbar sind, schlägt der Versuch fehl, ein Fehlerobjekt zu erstellen. Wenn der Aufruf erfolgreich ist und ein Fehlerobjekt zurückgegeben wird, wird der Status des Objekts zurückgesetzt. Weitere Versuche, ein Fehlerobjekt abzurufen, schlagen fehl, bis ein neuer Fehler auftritt. Wenn Sie einen asynchronen Aufruf vornehmen, bei dem ein Fehler auftritt, wird ihnen möglicherweise vom SWbemSink.OnCompleted-Ereignis im objWbemErrorObject-Parameter ein SWbemLastError-Objekt zurückgegeben.

Members

Das SWbemLastError-Objekt verfügt über diese Typen von Membern:

Methoden

Das SWbemLastError-Objekt verfügt über diese Methoden.

Methode BESCHREIBUNG
Associators_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
AssociatorsAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
Klon_ Erstellt eine Kopie des aktuellen -Objekts.
Compareto_ Testet zwei -Objekte auf Gleichheit.
Löschen_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
DeleteAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
ExecMethod_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
ExecMethodAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
GetObjectText_ Ruft die Textdarstellung des Mit MOF-Syntax geschriebenen Objekts ab.
Instanzen_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
InstancesAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
Put_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
PutAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
Literatur_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
ReferencesAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
SpawnDerivedClass_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
SpawnInstance_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
Unterklassen von werden erstellt._ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
UnterklassenAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.

Eigenschaften

Das SWbemLastError-Objekt verfügt über diese Eigenschaften.

Eigenschaft Zugriffstyp BESCHREIBUNG
Ableitung_
Schreibgeschützt
Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
Methoden_
Schreibgeschützt
Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
Pfad_
Schreibgeschützt
Enthält ein SWbemObjectPath-Objekt, das den Objektpfad der aktuellen Klasse oder Instanz darstellt.
Eigenschaften_
Schreibgeschützt
Stellt die Auflistung der Eigenschaften des SWbemLastError-Objekts dar. Diese Eigenschaft ist ein SWbemPropertySet-Objekt.
Qualifikation_
Schreibgeschützt
Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.
Sicherheit_
Schreibgeschützt
Wird nicht verwendet. Das SWbemObject-Objekt stellt die gleiche Methode bereit.

Beispiele

Im folgenden VBScript-Beispiel wird veranschaulicht, wie Fehler- und Fehlerobjektinformationen überprüft werden.

On Error Resume Next

'Ask for non-existent class to force error

Set t_Service = GetObject("winmgmts://./root/default")
Set t_Object = t_Service.Get("Nosuchclass000")

if Err = 0 Then
 WScript.Echo "Got a class"
Else
 WScript.Echo ""
 WScript.Echo "Err Information:"
 WScript.Echo ""
 WScript.Echo "  Source:", Err.Source
 WScript.Echo "  Description:", Err.Description
 WScript.Echo "  Number", "0x" & Hex(Err.Number)

 'Create the last error object
 set t_Object = CreateObject("WbemScripting.SWbemLastError")
 WScript.Echo ""
 WScript.Echo "WMI Last Error Information:"
 WScript.Echo ""
 WScript.Echo " Operation:", t_Object.Operation
 WScript.Echo " Provider:", t_Object.ProviderName

 strDescr = t_Object.Description
 strPInfo = t_Object.ParameterInfo
 strCode = t_Object.StatusCode

 if (strDescr <> nothing) Then
  WScript.Echo " Description:", strDescr  
 end if

 if (strPInfo <> nothing) Then
  WScript.Echo " Parameter Info:", strPInfo  
 end if

 if (strCode <> nothing) Then
  WScript.Echo " Status:", strCode  
 end if

 WScript.Echo ""
 Err.Clear
 set t_Object2 = CreateObject("WbemScripting.SWbemLastError")
 if Err = 0 Then
    WScript.Echo "Got the error object again - this shouldn't have happened!" 
 Else
    Err.Clear
    WScript.Echo "Couldn't get last error again - as expected"
 End if
End If

Im folgenden Perl-Beispiel wird veranschaulicht, wie Fehler- und Fehlerobjektinformationen überprüft werden.

use strict;
use Win32::OLE;

my ( $t_Service, $t_Object, $t_Object2, $strDescr, $strPInfo, $strCode );

# Close STDERR file handle to eliminate redundant error message
close(STDERR);

# Ask for non-existent class to force error 
$t_Service = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default"); 
$t_Object = $t_Service->Get("Nosuchclass000");

if (defined $t_Object)
{
 print "Got a class\n"; 
}
else
{
 print "\nErr Information:\n\n";
 print Win32::OLE->LastError, "\n";

 # Create the last error object
 $t_Object = new Win32::OLE 'WbemScripting.SWbemLastError';
 print "\nWMI Last Error Information:\n\n";
 print " Operation: ", $t_Object->{Operation}, "\n";
 print " Provider: ", $t_Object->{ProviderName}, "\n";
 
 $strDescr = $t_Object->{Description};
 $strPInfo = $t_Object->{ParameterInfo};
 $strCode = $t_Object->{StatusCode};

 if (defined $strDescr)
 {
  print " Description: ", $strDescr, "\n";  
 }

 if (defined $strPInfo)
 {
  print " Parameter Info: ", $strPInfo, "\n";  
 }

 if (defined $strCode)
 {
  print " Status: ", $strCode, "\n";  
 }

 print "\n";

 $t_Object2 = new Win32::OLE 'WbemScripting.SWbemLastError';
 if (defined $t_Object2)
 {
  print "Got the error object again - this shouldn't have happened!\n";
 }
 else
 {
  print "Couldn't get last error again - as expected\n";
 }
}

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
Windows Server 2008
Header
Wbemdisp.h
Typbibliothek
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID _ SWbemLastError
IID
IID _ ISWbemLastError

Weitere Informationen

Skripterstellung für API-Objekte