SWbemObjectPath 物件
使用 SWbemObjectPath 物件的方法和屬性來建構及驗證物件路徑。 此物件可由 VBScript CreateObject 呼叫建立。
成員
SWbemObjectPath物件具有下列類型的成員:
方法
SWbemObjectPath物件具有這些方法。
方法 | 描述 |
---|---|
SetAsClass | 強制路徑定址 WMI 類別。 |
SetAsSingleton | 強制路徑定址單一 WMI 實例。 |
屬性
SWbemObjectPath物件具有這些屬性。
屬性 | 存取類型 | 描述 |
---|---|---|
授權單位 |
讀取/寫入 |
定義物件路徑授權單位元件的字串。 |
類別 |
讀取/寫入 |
屬於物件路徑一部分的類別名稱。 |
DisplayName |
讀取/寫入 |
字串,包含表單中可做為 Moniker 顯示名稱的路徑。 請參閱 建立 WMI 應用程式或腳本。 |
IsClass |
唯讀 |
布林值,指出這個路徑是否代表類別。 這類似于 COM API 中的 __Genus 屬性。 |
IsSingleton |
唯讀 |
布林值,指出這個路徑是否代表單一實例。 |
索引鍵 |
唯讀 |
包含索引鍵值系結的 SWbemNamedValueSet 物件。 |
現場 |
讀取/寫入 |
包含這個物件路徑地區設定的字串。 |
命名空間 |
讀取/寫入 |
屬於物件路徑一部分的命名空間名稱。 這與 COM API 中的 __Namespace 屬性相同。 |
ParentNamespace |
唯讀 |
屬於物件路徑一部分之命名空間的父系名稱。 |
路徑 |
讀取/寫入 |
包含絕對路徑。 這與 COM API 中的 __Path 系統屬性相同。 這是這個 物件的預設屬性。 |
Relpath |
讀取/寫入 |
包含相對路徑。 這與 COM API 中的 __Relpath 系統屬性相同。 |
安全_ |
唯讀 |
用來讀取或變更安全性設定。 |
伺服器 |
讀取/寫入 |
伺服器的名稱。 這與 COM API 中的 __Server 系統屬性相同。 |
範例
下列 VBScript 程式碼範例示範如何建置物件路徑。
on error resume next
Set ObjectPath = CreateObject("WbemScripting.SWbemObjectPath")
ObjectPath.Server = "dingle"
ObjectPath.Namespace = "root/default/something"
ObjectPath.Class = "ho"
ObjectPath.Keys.Add "fred1", 10
ObjectPath.Keys.Add "fred2", -34
ObjectPath.Keys.Add "fred3", 65234654
ObjectPath.Keys.Add "fred4", "Wahaay"
ObjectPath.Keys.Add "fred5", -786186777
if err <> 0 then
WScript.Echo err.number
end if
WScript.Echo "Pass 1:"
WScript.Echo ObjectPath.Path
WScript.Echo ObjectPath.DisplayName
WScript.Echo ""
ObjectPath.Security_.ImpersonationLevel = 3
WScript.Echo "Pass 2:"
WScript.Echo ObjectPath.Path
WScript.Echo ObjectPath.DisplayName
WScript.Echo ""
ObjectPath.Security_.AuthenticationLevel = 5
WScript.Echo "Pass 3:"
WScript.Echo ObjectPath.Path
WScript.Echo ObjectPath.DisplayName
WScript.Echo ""
Set Privileges = ObjectPath.Security_.Privileges
if err <> 0 then
WScript.Echo Hex(Err.Number), Err.Description
end if
Privileges.Add 8
Privileges.Add 20, false
WScript.Echo "Pass 4:"
WScript.Echo ObjectPath.Path
WScript.Echo ObjectPath.DisplayName
WScript.Echo ""
ObjectPath.DisplayName = "winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktprivacy,(Debug,!IncreaseQuota, CreatePagefile ) }!//fred/root/blah"
WScript.Echo "Pass 5:"
WScript.Echo ObjectPath.Path
WScript.Echo ObjectPath.DisplayName
WScript.Echo ""
下列 Perl 程式碼範例示範如何建置物件路徑。
use strict;
use Win32::OLE;
use constant FALSE=>"false";
my ( $ObjectPath, $Privileges );
eval { $ObjectPath = new Win32::OLE 'WbemScripting.SWbemObjectPath'; };
unless($@)
{
eval
{
$ObjectPath->{Server} = "dingle";
$ObjectPath->{Namespace} = "root/default/something";
$ObjectPath->{Class} = "ho";
$ObjectPath->{Keys}->Add("fred1", 10);
$ObjectPath->{Keys}->Add("fred2", -34);
$ObjectPath->{Keys}->Add("fred3", 65234654);
$ObjectPath->{Keys}->Add("fred4", "Wahaay");
$ObjectPath->{Keys}->Add("fred5", -786186777);
};
unless($@)
{
print "\n";
print "Pass 1:\n";
print $ObjectPath->{Path}, "\n";
print $ObjectPath->{DisplayName} , "\n\n";
$ObjectPath->{Security_}->{ImpersonationLevel} = 3 ;
print "Pass 2:\n";
print $ObjectPath->{Path}, "\n";
print $ObjectPath->{DisplayName} , "\n\n";
$ObjectPath->{Security_}->{AuthenticationLevel} = 5 ;
print "Pass 3:\n";
print $ObjectPath->{Path}, "\n";
print $ObjectPath->{DisplayName} , "\n\n";
eval { $Privileges = $ObjectPath->{Security_}->{Privileges}; };
unless($@)
{
$Privileges->Add(8);
$Privileges->Add(20,FALSE);
print "Pass 4:\n";
print $ObjectPath->{Path}, "\n";
print $ObjectPath->{DisplayName} , "\n\n";
$ObjectPath->{DisplayName} = "winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktprivacy,(Debug,!IncreaseQuota, CreatePagefile ) }!//fred/root/blah";
print "Pass 5:\n";
print $ObjectPath->{Path}, "\n";
print $ObjectPath->{DisplayName} , "\n";
}
else
{
print STDERR Win32::OLE->LastError, "\n";
}
}
else
{
print STDERR Win32::OLE->LastError, "\n";
}
}
else
{
print STDERR Win32::OLE->LastError, "\n";
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista |
最低支援的伺服器 |
Windows Server 2008 |
標頭 |
|
類型程式庫 |
|
DLL |
|
CLSID |
CLSID_SWbemObjectPath |
IID |
IID_ISWbemObjectPath |