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 |
|
Bibliothèque de types |
|
DLL |
|
CLSID |
CLSID_SWbemLastError |
IID |
IID_ISWbemLastError |