Partager via


Objet SWbemLastError

Les méthodes et propriétés de l’objet SWbemLastError contiennent et manipulent des objets d’erreur. Les méthodes et propriétés de cet objet sont exactement les mêmes que celles de l’objet SWbemObject, mais elles sont utilisées pour contenir des informations d’erreur au lieu d’informations de classe WMI. Cet objet ne peut pas être créé par l’appel VBScript CreateObject.

Vous pouvez créer un objet d’erreur SWbemLastError pour inspecter les informations d’erreur étendues associées à un appel de méthode précédent. Si les informations d’erreur ne sont pas disponibles, une tentative de création d’un objet d’erreur échoue. Si l’appel réussit et qu’un objet d’erreur est retourné, la statut de l’objet est réinitialisée. D’autres tentatives de récupération d’un objet d’erreur échouent jusqu’à ce qu’une nouvelle erreur se produise. Si vous effectuez un appel asynchrone qui échoue, un objet SWbemLastError peut vous être retourné par l’événement SWbemSink.OnCompleted dans le paramètre objWbemErrorObject.

Membres

L’objet SWbemLastError présente les types de membres suivants :

Méthodes

L’objet SWbemLastError possède les méthodes suivantes.

Méthode Description
Associators_ Non utilisé. L’objet SWbemObject fournit la même méthode.
AssociatorsAsync_ Non utilisé. L’objet SWbemObject fournit la même méthode.
Clone_ Fait une copie de l'objet actuel.
CompareTo_ Teste si deux objets sont égaux.
Delete_ Non utilisé. L’objet SWbemObject fournit la même méthode.
DeleteAsync_ Non utilisé. L’objet SWbemObject fournit la même méthode.
ExecMethod_ Non utilisé. L’objet SWbemObject fournit la même méthode.
ExecMethodAsync_ Non utilisé. L’objet SWbemObject fournit la même méthode.
GetObjectText_ Récupère la représentation textuelle de l’objet écrit avec la syntaxe MOF.
Instances_ Non utilisé. L’objet SWbemObject fournit la même méthode.
InstancesAsync_ Non utilisé. L’objet SWbemObject fournit la même méthode.
Put_ Non utilisé. L’objet SWbemObject fournit la même méthode.
PutAsync_ Non utilisé. L’objet SWbemObject fournit la même méthode.
References_ Non utilisé. L’objet SWbemObject fournit la même méthode.
ReferencesAsync_ Non utilisé. L’objet SWbemObject fournit la même méthode.
SpawnDerivedClass_ Non utilisé. L’objet SWbemObject fournit la même méthode.
SpawnInstance_ Non utilisé. L’objet SWbemObject fournit la même méthode.
Subclasses_ Non utilisé. L’objet SWbemObject fournit la même méthode.
SubclassesAsync_ Non utilisé. L’objet SWbemObject fournit la même méthode.

Propriétés

L’objet SWbemLastError possède les méthodes suivantes.

Propriété Type d’accès Description
Derivation_
Lecture seule
Non utilisé. L’objet SWbemObject fournit la même méthode.
Methods_
Lecture seule
Non utilisé. L’objet SWbemObject fournit la même méthode.
Path_
Lecture seule
Contient un objet SWbemObjectPath qui représente le chemin d’accès de l’objet de la classe ou de l’instance actuelle.
Properties_
Lecture seule
Représente la collection de propriétés de l’objet SWbemLastError. Cette propriété est un objet SWbemPropertySet.
Qualifiers_
Lecture seule
Non utilisé. L’objet SWbemObject fournit la même méthode.
Security_
Lecture seule
Non utilisé. L’objet SWbemObject fournit la même méthode.

Exemples

L’exemple VBScript suivant montre comment inspecter les informations relatives aux erreurs et aux objets d’erreur.

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

L’exemple Perl suivant montre comment inspecter les informations relatives aux erreurs et aux objets d’erreur.

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";
 }
}

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
En-tête
Wbemdisp.h
Bibliothèque de types
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemLastError
IID
IID_ISWbemLastError

Voir aussi

Objets de l’API de script