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 |
|
Biblioteca de tipos |
|
Archivo DLL |
|
CLSID |
CLSID_SWbemLastError |
IID |
IID_ISWbemLastError |