다음을 통해 공유


SWbemLastError 개체

SWbemLastError 개체의 메서드 및 속성은 오류 개체를 포함하고 조작합니다. 이 개체의 메서드 및 속성은 SWbemObject 개체와 정확히 동일하지만 WMI 클래스 정보 대신 오류 정보를 포함하는 데 사용됩니다. 이 개체는 VBScript CreateObject 호출로 만들 수 있습니다.

SWbemLastError 오류 개체를 만들어 이전 메서드 호출과 연결된 확장 오류 정보를 검사할 수 있습니다. 오류 정보를 사용할 수 없는 경우 오류 개체를 만들려는 시도가 실패합니다. 호출이 성공하고 오류 개체가 반환되면 개체 상태가 다시 설정됩니다. 오류 개체를 검색하려는 추가 시도는 새 오류가 발생할 때까지 실패합니다. 실패한 비동기 호출을 수행하는 경우 objWbemErrorObject 매개 변수의 SWbemSink.OnCompleted 이벤트에 의해 SWbemLastError 개체가 반환될 수 있습니다.

멤버

SWbemLastError 개체에는 다음과 같은 형식의 멤버가 있습니다.

메서드

SWbemLastError 개체에는 다음과 같은 메서드가 있습니다.

메서드 설명
Associators_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
AssociatorsAsync_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
Clone_ 현재 개체의 복사본을 만듭니다.
CompareTo_ 두 개체가 같은지 테스트합니다.
Delete_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
DeleteAsync_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
ExecMethod_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
ExecMethodAsync_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
GetObjectText_ MOF 구문으로 작성된 개체의 텍스트 표현을 검색합니다.
Instances_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
InstancesAsync_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
Put_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
PutAsync_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
References_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
ReferencesAsync_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
SpawnDerivedClass_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
SpawnInstance_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
Subclasses_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
SubclassesAsync_ 사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.

속성

SWbemLastError 개체에는 다음과 같은 속성이 있습니다.

속성 액세스 유형 설명
Derivation_
읽기 전용
사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
Methods_
읽기 전용
사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
Path_
읽기 전용
현재 클래스 또는 인스턴스의 개체 경로를 나타내는 SWbemObjectPath 개체를 포함합니다.
Properties_
읽기 전용
SWbemLastError 개체의 속성 컬렉션을 나타냅니다. 이 속성은 SWbemPropertySet 개체입니다.
Qualifiers_
읽기 전용
사용되지 않습니다. SWbemObject 개체는 동일한 메서드를 제공합니다.
Security_
읽기 전용
사용되지 않습니다. 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 개체