SWbemLastError オブジェクト

SWbemLastError オブジェクトのメソッドとプロパティはエラー オブジェクトを保持しており、それらを操作対象とします。 このオブジェクトのメソッドとプロパティは 、SWbemObject オブジェクトのものとまったく同じですが、WMI クラス情報ではなくエラー情報を保持する目的で使用されます。 このオブジェクトは、VBScript の CreateObject を呼び出して作成できます。

SWbemLastError エラー オブジェクトを作成して、前のメソッド呼び出しに関連付けられている拡張エラー情報を調べることができます。 エラー情報が使用できない場合、エラー オブジェクトの作成は失敗します。 呼び出しが成功し、エラー オブジェクトが返された場合、オブジェクトの状態はリセットされます。 新たにエラーが発生するまでは、エラー オブジェクトをさらに取得しようとしても失敗します。 非同期呼び出しが失敗した場合、SWbemSink.OnCompleted イベントの objWbemErrorObject パラメーターで SWbemLastError オブジェクトが返されます。

メンバー

SWbemLastError オブジェクトには、これらの種類のメンバーがあります。

メソッド

SWbemLastError オブジェクトには、これらのメソッドがあります。

メソッド 説明
Associators_ 使用されていません。 SWbemObject オブジェクトにも同じメソッドがあります。
AssociatorsAsync_ 使用されていません。 SWbemObject オブジェクトにも同じメソッドがあります。
Clone_ 現在のオブジェクトのコピーを作成します。
CompareTo_ 2 つのオブジェクトが等しいかどうかをテストします。
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
Header
Wbemdisp.h
タイプ ライブラリ
Wbemdisp.tlb
[DLL]
Wbemdisp.dll
CLSID
CLSID_SWbemLastError
IID
IID_ISWbemLastError

関連項目

スクリプト API オブジェクト