SWbemLastError-Objekt

Die Methoden und Eigenschaften des SWbemLastError-Objekts enthalten und bearbeiten Fehlerobjekte. Die Methoden und Eigenschaften dieses Objekts sind identisch mit denen des SWbemObject-Objekts, enthalten jedoch Fehlerinformationen anstelle von WMI-Klasseninformationen. Dieses Objekt kann durch den VBScript-Aufruf CreateObject 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, scheitert der Versuch, 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, sind erst dann erfolgreich, wenn ein neuer Fehler auftritt. Wenn Sie einen asynchronen Aufruf durchführen, bei dem ein Fehler auftritt, kann vom SWbemSink.OnCompleted-Ereignis im objWbemErrorObject-Parameter ein SWbemLastError-Objekt an Sie zurückgegeben werden.

Member

Das SWbemLastError-Objekt weist die folgenden Typen von Membern auf:

Methoden

Das SWbemLastError-Objekt verfügt über die folgenden Methoden.

Methode BESCHREIBUNG
Associators_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
AssociatorsAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
Clone_ Erstellt eine Kopie des aktuellen Objekts.
CompareTo_ Überprüft zwei Objekte auf Gleichheit.
Delete_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
DeleteAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
ExecMethod_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
ExecMethodAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
GetObjectText_ Ruft die Textdarstellung des Objekts ab, das mit MOF-Syntax geschrieben wurde.
Instances_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
InstancesAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
Put_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
PutAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
References_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
ReferencesAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
SpawnDerivedClass_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
SpawnInstance_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
Subclasses_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
SubclassesAsync_ Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.

Eigenschaften

Das SWbemLastError-Objekt verfügt über die folgenden Eigenschaften.

Eigenschaft Zugriffstyp BESCHREIBUNG
Derivation_
Schreibgeschützt
Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
Methods_
Schreibgeschützt
Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
Path_
Schreibgeschützt
Enthält ein SWbemObjectPath-Objekt, das den Objektpfad der aktuellen Klasse oder Instanz repräsentiert.
Properties_
Schreibgeschützt
Stellt die Sammlung der Eigenschaften des SWbemLastError-Objekts dar. Diese Eigenschaft ist ein SWbemPropertySet-Objekt.
Qualifiers_
Schreibgeschützt
Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe Methode bereit.
Security_
Schreibgeschützt
Wird nicht verwendet. Das SWbemObject-Objekt stellt dieselbe 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";
 }
}

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

Objekte für die Skripterstellungs-API