Поделиться через


Объект SWbemLastError

Методы и свойства объекта SWbemLastError содержат объекты ошибок и управляют ими. Методы и свойства этого объекта в точности совпадают с методами объекта SWbemObject , но используются для хранения сведений об ошибке, а не сведений о классе WMI. Этот объект можно создать с помощью вызова CreateObject VBScript.

Вы можете создать объект ошибки SWbemLastError для проверки расширенных сведений об ошибке, связанных с предыдущим вызовом метода. Если сведения об ошибке недоступны, попытка создать объект ошибки завершится ошибкой. Если вызов завершается успешно и возвращается объект ошибки, состояние объекта сбрасывается. Дальнейшие попытки получить объект ошибки завершаются ошибкой, пока не возникнет новая ошибка. При сбое асинхронного вызова объект SWbemLastError может быть возвращен событием SWbemSink.OnCompleted в параметре objWbemErrorObject .

Элементы

Объект SWbemLastError имеет следующие типы элементов:

Методы

Объект SWbemLastError имеет следующие методы.

Метод Описание
Associators_ Не используется. Объект SWbemObject предоставляет тот же метод.
AssociatorsAsync_ Не используется. Объект SWbemObject предоставляет тот же метод.
Клон_ Создает копию текущего объекта.
Compareto_ Проверяет два объекта на равенство.
Удалить_ Не используется. Объект SWbemObject предоставляет тот же метод.
DeleteAsync_ Не используется. Объект SWbemObject предоставляет тот же метод.
ExecMethod_ Не используется. Объект SWbemObject предоставляет тот же метод.
ExecMethodAsync_ Не используется. Объект SWbemObject предоставляет тот же метод.
GetObjectText_ Извлекает текстовое представление объекта, написанного с помощью синтаксиса MOF.
Экземпляров_ Не используется. Объект SWbemObject предоставляет тот же метод.
InstancesAsync_ Не используется. Объект SWbemObject предоставляет тот же метод.
Положить_ Не используется. Объект SWbemObject предоставляет тот же метод.
PutAsync_ Не используется. Объект SWbemObject предоставляет тот же метод.
Ссылки_ Не используется. Объект SWbemObject предоставляет тот же метод.
ReferencesAsync_ Не используется. Объект SWbemObject предоставляет тот же метод.
SpawnDerivedClass_ Не используется. Объект SWbemObject предоставляет тот же метод.
SpawnInstance_ Не используется. Объект SWbemObject предоставляет тот же метод.
Подклассы_ Не используется. Объект SWbemObject предоставляет тот же метод.
SubclassesAsync_ Не используется. Объект SWbemObject предоставляет тот же метод.

Свойства

Объект SWbemLastError имеет следующие свойства.

Свойство Тип доступа Описание
Вывод_
Только для чтения
Не используется. Объект SWbemObject предоставляет тот же метод.
Методы_
Только для чтения
Не используется. Объект SWbemObject предоставляет тот же метод.
Путь_
Только для чтения
Содержит объект SWbemObjectPath , представляющий путь к объекту текущего класса или экземпляра.
Вариантов размещения_
Только для чтения
Представляет коллекцию свойств объекта SWbemLastError . Это свойство является объектом SWbemPropertySet .
Квалификаторы_
Только для чтения
Не используется. Объект SWbemObject предоставляет тот же метод.
Безопасности_
Только для чтения
Не используется. Объект SWbemObject предоставляет тот же метод.

Примеры

В следующем примере VBScript показано, как проверить сведения об ошибках и объектах ошибок.

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

В следующем примере Perl показано, как проверить сведения об ошибке и объекте ошибки.

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

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Заголовок
Wbemdisp.h
Библиотека типов
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemLastError
IID
IID_ISWbemLastError

См. также раздел

Создание скриптов для объектов API