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 |
|
タイプ ライブラリ |
|
[DLL] |
|
CLSID |
CLSID_SWbemLastError |
IID |
IID_ISWbemLastError |