Поделиться через


Объект SWbemObjectPath

Используйте методы и свойства объекта SWbemObjectPath для создания и проверки пути к объекту. Этот объект можно создать с помощью вызова CreateObject VBScript.

Элементы

Объект SWbemObjectPath имеет следующие типы элементов:

Методы

Объект SWbemObjectPath содержит следующие методы.

Метод Описание
SetAsClass Принудительно задает путь для обращения к классу WMI.
SetAsSingleton Принудительно задает путь для обращения к одноэлементным экземплярам WMI.

Свойства

Объект SWbemObjectPath имеет следующие свойства.

Свойство Тип доступа Описание
Authority
Чтение/запись
Строка, определяющая компонент Authority пути к объекту.
Класс
Чтение/запись
Имя класса, который является частью пути к объекту.
DisplayName
Чтение/запись
Строка, содержащая путь в форме, которую можно использовать в качестве отображаемого имени моникера. См. статью Создание приложения или скрипта WMI.
IsClass
Только для чтения
Логическое значение, указывающее, представляет ли этот путь класс. Это аналогично свойству __Genus в COM API.
Иссинглтон
Только для чтения
Логическое значение, указывающее, представляет ли этот путь одноэлементный экземпляр.
Ключи
Только для чтения
Объект SWbemNamedValueSet , содержащий привязки значения ключа.
Локаль
Чтение/запись
Строка, содержащая языковой стандарт для этого пути к объекту.
Пространства имен
Чтение/запись
Имя пространства имен, которое является частью пути к объекту. Это то же самое, что и свойство __Namespace в COM API.
ParentNamespace
Только для чтения
Имя родительского объекта пространства имен, которое является частью пути к объекту.
Путь
Чтение/запись
Содержит абсолютный путь. Это то же самое, что и системное свойство __Path в COM API. Это свойство этого объекта по умолчанию.
Relpath
Чтение/запись
Содержит относительный путь. Это то же, что и системное свойство __Relpath в COM API.
Безопасности_
Только для чтения
Используется для чтения или изменения параметров безопасности.
Сервера
Чтение/запись
Имя сервера. Это то же, что и системное свойство __Server в COM API.

Примеры

В следующем примере кода 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
Заголовок
Wbemdisp.h
Библиотека типов
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectPath
IID
IID_ISWbemObjectPath

См. также раздел

Создание скриптов для объектов API