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
Wbemdisp.h
タイプ ライブラリ
Wbemdisp.tlb
[DLL]
Wbemdisp.dll
CLSID
CLSID_SWbemObjectPath
IID
IID_ISWbemObjectPath

関連項目

スクリプト API オブジェクト