Objeto SWbemLastError

Los métodos y propiedades del objeto SWbemLastError contienen y manipulan objetos de error. Los métodos y propiedades de este objeto son exactamente los mismos que los del objeto SWbemObject, pero se usan para contener información de error en lugar de información de clase WMI. La llamada CreateObject de VBScript puede crear este objeto.

El usuario puede crear un objeto de error SWbemLastError para inspeccionar la información de error extendida asociada a una llamada de método anterior. Si la información de error no está disponible, se producirá un error al intentar crear un objeto de error. Si la llamada se realiza correctamente y se devuelve un objeto de error, se restablece el estado del objeto. Se producirá un error en los intentos adicionales de recuperar un objeto de error hasta que se produzca un nuevo error. Si realiza una llamada asincrónica que produce un error, el evento SWbemLastError puede devolverle un objeto SWbemSink.OnCompleted en el parámetro objWbemErrorObject.

Miembros

El objeto SWbemLastError contiene estos tipos de miembros:

Métodos

El objeto SWbemLastError tiene estos métodos.

Método Descripción
Associators_ No se usa. El objeto SWbemObject proporciona el mismo método.
AssociatorsAsync_ No se usa. El objeto SWbemObject proporciona el mismo método.
Clone_ Realiza una copia del objeto actual.
CompareTo_ Comprueba si dos objetos son iguales.
Delete_ No se usa. El objeto SWbemObject proporciona el mismo método.
DeleteAsync_ No se usa. El objeto SWbemObject proporciona el mismo método.
ExecMethod_ No se usa. El objeto SWbemObject proporciona el mismo método.
ExecMethodAsync_ No se usa. El objeto SWbemObject proporciona el mismo método.
GetObjectText_ Recupera la representación textual del objeto escrito con la sintaxis MOF.
Instances_ No se usa. El objeto SWbemObject proporciona el mismo método.
InstancesAsync_ No se usa. El objeto SWbemObject proporciona el mismo método.
Put_ No se usa. El objeto SWbemObject proporciona el mismo método.
PutAsync_ No se usa. El objeto SWbemObject proporciona el mismo método.
References_ No se usa. El objeto SWbemObject proporciona el mismo método.
ReferencesAsync_ No se usa. El objeto SWbemObject proporciona el mismo método.
SpawnDerivedClass_ No se usa. El objeto SWbemObject proporciona el mismo método.
SpawnInstance_ No se usa. El objeto SWbemObject proporciona el mismo método.
Subclasses_ No se usa. El objeto SWbemObject proporciona el mismo método.
SubclassesAsync_ No se usa. El objeto SWbemObject proporciona el mismo método.

Propiedades

El objeto SWbemLastError tiene estas propiedades.

Propiedad Tipo de acceso Descripción
Derivation_
Solo lectura
No se usa. El objeto SWbemObject proporciona el mismo método.
Methods_
Solo lectura
No se usa. El objeto SWbemObject proporciona el mismo método.
Path_
Solo lectura
Contiene un objeto SWbemObjectPath que representa la ruta de acceso del objeto de la clase o instancia actual.
Properties_
Solo lectura
Representa la colección de propiedades del objeto SWbemLastError. Esta propiedad es un objeto SWbemPropertySet.
Qualifiers_
Solo lectura
No se usa. El objeto SWbemObject proporciona el mismo método.
Security_
Solo lectura
No se usa. El objeto SWbemObject proporciona el mismo método.

Ejemplos

En el siguiente ejemplo de VBScript se muestra cómo inspeccionar un error y la información del objeto de error.

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

En el ejemplo de Perl siguiente se muestra cómo inspeccionar un error y la información del objeto de error.

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

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Encabezado
Wbemdisp.h
Biblioteca de tipos
Wbemdisp.tlb
Archivo DLL
Wbemdisp.dll
CLSID
CLSID_SWbemLastError
IID
IID_ISWbemLastError

Consulte también

Objetos de API de scripting