SWbemObjectPath 对象
使用 SWbemObjectPath 对象的方法和属性来构造和验证对象路径。 该对象可以通过 VBScript CreateObject 调用创建。
成员
SWbemObjectPath 对象具有以下类型的成员:
方法
SWbemObjectPath 对象包含以下方法。
方法 | 说明 |
---|---|
SetAsClass | 强制路径寻址 WMI 类。 |
SetAsSingleton | 强制路径寻址单一实例 WMI 实例。 |
属性
SWbemObjectPath 对象具有以下属性。
属性 | 访问类型 | 说明 |
---|---|---|
颁发机构 |
读取/写入 |
定义对象路径的 Authority 组件的字符串。 |
类 |
读取/写入 |
属于对象路径的类的名称。 |
DisplayName |
读取/写入 |
包含可用作名字对象显示名称的形式的路径的字符串。 请参阅创建 WMI 应用程序或脚本。 |
IsClass |
只读 |
指示此路径是否表示类的布尔值。 这类似于 COM API 中的 __Genus 属性。 |
IsSingleton |
只读 |
指示此路径是否表示单一实例的布尔值。 |
键 |
只读 |
包含键值绑定的 SWbemNamedValueSet 对象。 |
Locale |
读取/写入 |
包含此对象路径的区域设置的字符串。 |
命名空间 |
读取/写入 |
属于对象路径的命名空间的名称。 这与 COM API 中的 __Namespace 属性相同。 |
ParentNamespace |
只读 |
属于对象路径的命名空间的父级的名称。 |
Path |
读取/写入 |
包含绝对路径。 这与 COM API 中的 __Path 系统属性相同。 这是该对象的默认属性。 |
Relpath |
读取/写入 |
包含相对路径。 这与 COM API 中的 __Relpath 系统属性相同。 |
Security_ |
只读 |
用于读取或更改安全设置。 |
Server |
读取/写入 |
服务器的名称。 这与 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 |