SWbemObjectPath オブジェクト
SWbemObjectPath オブジェクトのメソッドとプロパティを使用して、オブジェクト パスを構築および検証します。 このオブジェクトは、VBScript の CreateObject を呼び出して作成できます。
メンバー
SWbemObjectPath オブジェクトには、次の種類のメンバーがあります。
メソッド
SWbemObjectPath オブジェクトには、次のメソッドがあります。
メソッド | 説明 |
---|---|
SetAsClass | WMI クラスをアドレス指定するパスを強制的に指定します。 |
SetAsSingleton | シングルトン WMI インスタンスをアドレス指定するパスを強制的に指定します。 |
プロパティ
SWbemObjectPath オブジェクトには、次のプロパティがあります。
プロパティ | アクセスの種類 | 説明 |
---|---|---|
Authority |
読み取り/書き込み |
オブジェクト パスの Authority コンポーネントを定義する文字列。 |
クラス |
読み取り/書き込み |
オブジェクト パスの一部であるクラスの名前。 |
DisplayName |
読み取り/書き込み |
モニカーの表示名として使用できるフォーム内のパスを含む文字列。 「WMI アプリケーションまたはスクリプトの作成」を参照してください。 |
IsClass |
読み取り専用 |
このパスがクラスを表すかどうかを示すブール値。 これは、COM API の __Genus プロパティに似ています。 |
IsSingleton |
読み取り専用 |
このパスがシングルトン インスタンスを表すかどうかを示すブール値。 |
キー |
読み取り専用 |
キー値のバインドを含む SWbemNamedValueSet オブジェクト。 |
Locale |
読み取り/書き込み |
このオブジェクト パスのロケールを含む文字列。 |
名前空間 |
読み取り/書き込み |
オブジェクト パスの一部である名前空間の名前。 これは、COM API の __Namespace プロパティと同じです。 |
ParentNamespace |
読み取り専用 |
オブジェクト パスの一部である名前空間の親の名前。 |
パス |
読み取り/書き込み |
絶対パスを格納します。 これは、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 |
Header |
|
タイプ ライブラリ |
|
[DLL] |
|
CLSID |
CLSID_SWbemObjectPath |
IID |
IID_ISWbemObjectPath |