SWbemLastError物件的方法和屬性包含及操作錯誤物件。 這個物件的方法和屬性與 SWbemObject 物件的方法和屬性完全相同,但用來包含錯誤資訊,而不是 WMI 類別資訊。 此物件可由 VBScript CreateObject 呼叫建立。
您可以建立 SWbemLastError 錯誤物件,以檢查與先前的方法呼叫相關聯的擴充錯誤資訊。 如果錯誤資訊無法使用,嘗試建立錯誤物件將會失敗。 如果呼叫成功且錯誤物件傳回,則會重設物件的狀態。 進一步嘗試擷取錯誤物件將會失敗,直到發生新的錯誤為止。 如果您進行失敗的非同步呼叫,SWbemLastError物件可能會由objWbemErrorObject參數中的SWbemSink.OnCompleted事件傳回給您。
成員
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 |
| 標頭 |
|
| 類型程式庫 |
|
| DLL |
|
| CLSID |
CLSID_SWbemLastError |
| IID |
IID_ISWbemLastError |