Objeto SWbemLastError

Os métodos e as propriedades do objeto SWbemLastError contêm e manipulam objetos de erro. Os métodos e as propriedades desse objeto são exatamente iguais aos do objeto SWbemObject, mas são usados para conter informações de erro em vez de informações de classe do WMI. Esse objeto pode ser criado pela chamada CreateObject do VBScript.

Você pode criar um objeto de erro SWbemLastError para inspecionar as informações de erro estendidas associadas a uma chamada de método anterior. Se as informações de erro não estiverem disponíveis, uma tentativa de criar um objeto de erro falhará. Se a chamada for bem-sucedida e um objeto de erro for retornado, o status do objeto será redefinido. Novas tentativas de recuperar um objeto de erro falharão até que ocorra um novo erro. Se você fizer uma chamada assíncrona que falhe, um objeto SWbemLastError poderá ser retornado a você pelo evento SWbemSink.OnCompleted no parâmetro objWbemErrorObject.

Membros

O objeto SWbemLastError tem estes tipos de membros:

Métodos

O objeto SWbemLastError tem esses métodos.

Método Descrição
Associators_ Não usado. O objeto SWbemObject fornece o mesmo método.
AssociatorsAsync_ Não usado. O objeto SWbemObject fornece o mesmo método.
Clone_ Cria uma nova cópia do objeto atual.
CompareTo_ Testa dois objetos quanto à igualdade.
Delete_ Não usado. O objeto SWbemObject fornece o mesmo método.
DeleteAsync_ Não usado. O objeto SWbemObject fornece o mesmo método.
ExecMethod_ Não usado. O objeto SWbemObject fornece o mesmo método.
ExecMethodAsync_ Não usado. O objeto SWbemObject fornece o mesmo método.
GetObjectText_ Recupera a representação textual do objeto escrito com a sintaxe MOF.
Instances_ Não usado. O objeto SWbemObject fornece o mesmo método.
InstancesAsync_ Não usado. O objeto SWbemObject fornece o mesmo método.
Put_ Não usado. O objeto SWbemObject fornece o mesmo método.
PutAsync_ Não usado. O objeto SWbemObject fornece o mesmo método.
References_ Não usado. O objeto SWbemObject fornece o mesmo método.
ReferencesAsync_ Não usado. O objeto SWbemObject fornece o mesmo método.
SpawnDerivedClass_ Não usado. O objeto SWbemObject fornece o mesmo método.
SpawnInstance_ Não usado. O objeto SWbemObject fornece o mesmo método.
Subclasses_ Não usado. O objeto SWbemObject fornece o mesmo método.
SubclassesAsync_ Não usado. O objeto SWbemObject fornece o mesmo método.

Propriedades

O objeto SWbemLastError tem estas propriedades.

Propriedade Tipo de acesso Descrição
Derivation_
Somente leitura
Não usado. O objeto SWbemObject fornece o mesmo método.
Methods_
Somente leitura
Não usado. O objeto SWbemObject fornece o mesmo método.
Path_
Somente leitura
Contém um objeto SWbemObjectPath que representa o caminho do objeto da classe ou da instância atual.
Properties_
Somente leitura
Representa a coleção de propriedades do objeto SWbemLastError. Essa propriedade é um objeto SWbemPropertySet.
Qualifiers_
Somente leitura
Não usado. O objeto SWbemObject fornece o mesmo método.
Security_
Somente leitura
Não usado. O objeto SWbemObject fornece o mesmo método.

Exemplos

O exemplo de VBScript a seguir demonstra como inspecionar erro e informações de objeto de erro.

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

O exemplo de Perl a seguir demonstra como inspecionar erro e informações de objeto de erro.

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 Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Cabeçalho
Wbemdisp.h
Biblioteca de tipos
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemLastError
IID
IID_ISWbemLastError

Confira também

Criar script de objetos de API