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


Создание моникерной строки

Формат строки моникера аналогичен стандартному пути объекта WMI. Дополнительные сведения см. в разделе Требования к пути к объекту WMI.

Моникер содержит следующие части:

  • Префикс WinMgmts: (обязательный). Префикс указывает Хосту сценариев Windows (WSH), что следующий код будет использовать объекты API сценариев.
  • Компонент параметров безопасности (необязательно)
  • Компонент пути к объекту WMI (необязательно)

Нельзя указать пароль в строке моникера WMI. Если необходимо изменить пароль (strPassword параметр) или тип проверки подлинности (strAuthority параметр) при подключении к WMI, а затем вызовите SWbemLocator.ConnectServer. Помните, что можно указать только пароль и полномочия в подключениях к удалённым компьютерам. Попытка задать их в скрипте, работающем на локальном компьютере, приводит к ошибке. Дополнительные сведения об использовании параметров безопасности и компонентов пути объекта см. в разделе Параметры безопасности WMI.

Следующий моникер указывает объект SWbemServices, представляющий корневое пространство имен root\default, с включенным режимом олицетворения и активированной привилегией wbemPrivilegeDebug (SeDebugPrivilege), но с отключенной привилегией wbemPrivilegeSecurity (SeSecurityPrivilege).

"winmgmts:{impersonationLevel=impersonate," & "(debug,!security)}!root\default"

Заметка

Все строковые литералы не учитывают регистр.

Префикс "!" в привилегии указывает, что привилегия должна быть отключена; Упущение этого префикса подразумевает, что привилегия должна быть включена.

Префикс "!" используется в имени компьютера или пространстве имен, если параметры безопасности указаны в скобках перед именем компьютера или пространством имен.

 

При указании пути к объекту разрешены следующие назначения по умолчанию:

  • Имя компьютера может быть опущено из пути к объекту, в этом случае подразумевается имя локального компьютера.

  • Пространство имен может быть опущено из пути объекта, в таком случае предполагается использование пространства имен по умолчанию.

    Это определяется значением раздела реестра HKEY_LOCAL_MACHINE\Software\Microsoft\WBEM\Scripting\Default Namespace, при этом значение по умолчанию — "Root\CIMv2".

  • Класс или экземпляр также можно указать, в этом случае возвращаемый объект является объектом WMI, а не объектом служб.

Заметка

Если указан класс или экземпляр, нельзя исключить пространство имен при указании имени компьютера.

 

Для справки по константам привилегий, используемым в строке моникера WMI, см. раздел Константы привилегийи дескрипторы "Краткие имена скриптов".

Допустимые строки Моникера

В следующих примерах показаны допустимые строки идентификатора.

Следующий моникер определяет пространство имен по умолчанию на локальном компьютере. Возвращается объект SWbemServices.

WinMgmts:

Следующий моникер определяет пространство имен по умолчанию на компьютере myServer. Возвращается объект SWbemServices.

"WinMgmts://myServer"

Следующий моникер определяет пространство имен root\cimv2 на компьютере myServer. Возвращается объект SWbemServices.

"WinMgmts://myServer/root/cimv2"

Следующий моникер определяет пространство имен root\cimv2 на локальном сервере. Возвращается объект SWbemServices.

"WinMgmts:root/cimv2"

Следующий моникер определяет класс Win32_LogicalDisk в пространстве имен root\cimv2 на сервере myServer. Возвращается объект SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" _
    & "!//myServer/root/cimv2:Win32_LogicalDisk"

Следующий моникер определяет класс Win32_LogicalDisk в пространстве имен root\cimv2 на локальном сервере. Возвращается объект SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk"

Следующий моникер определяет класс Win32_LogicalDisk в пространстве имен по умолчанию на локальном сервере. Возвращается объект SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk"

Следующий моникер определяет экземпляр Win32_LogicalDisk, соответствующий диску C: в пространстве имен сценариев по умолчанию на локальном сервере. Возвращается объект SWbemObject. Пространство имен по умолчанию для скриптов определяется параметром конфигурации пространства имен по умолчанию, как указано в элементе управления WMI. Дополнительные сведения см. в разделе Настройка безопасности пространства имен с помощьюэлемента управления WMI.

"WinMgmts::Win32_LogicalDisk='C:'"

Следующий моникер определяет экземпляр Win32_LogicalDisk, соответствующий диску C: в пространстве имен root\cimv2 на сервере myServer. Возвращается объект SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!//myServer/root/cimv2:Win32_LogicalDisk="C:""

Следующий моникер определяет экземпляр Win32_LogicalDisk, соответствующий диску C: в пространстве имен root\cimv2 на локальном сервере. Возвращается объект SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk="C:""

Следующий моникер определяет экземпляр Win32_LogicalDisk, соответствующий диску C: в пространстве имен по умолчанию на локальном сервере. Возвращается объект SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk="C:""

Следующий моникер задает уровень олицетворения для олицетворения и задает привилегию SE_DEBUG.

"WinMgmts:{impersonationLevel=impersonate, (Debug)}"

Следующий моникер задает уровень олицетворения для олицетворения и задает привилегию SE_DEBUG. Он также отменяет привилегию SE_SHUTDOWN.

"WinMgmts:{impersonate,(Debug,!Shutdown)}"

Следующий моникер извлекает локализованные описания американского английского языка для класса myclass из корневого пространства имен\wmi.

"WinMgmts:[locale=ms_409]!root/wmi:myclass"

Следующий идентификатор запрашивает проверку подлинности Kerberos с использованием учетной записи mydomain\server.

"Winmgmts:{impersonationLevel=delegate," _
    & "authority=kerberos:mydomain\server}" _
    & "!//myserver/root/default:__cimomidentification=@"

Следующий моникер запрашивает проверку подлинности NTLM с помощью домена mydomain.

"Winmgmts:{impersonationLevel=impersonate," & _
    "authority=ntlmdomain:mydomain} " & _
    "!//myserver/root/default:__cimomidentification=@

В следующем примере кода VBScript показано, как объединить параметры безопасности и языкового стандарта в моникере.

'*****************************************************************
'   Name    :  Moniker.vbs
'
'   Purpose :  This example shows how to set various 
'              parameters in a moniker. 
'****************************************************************

Set myobj = GetObject("WINMGMTS:" _
            & "{impersonationLevel=impersonate," _
            & "authenticationLevel=pktPrivacy," _
            & "authority=ntlmdomain:mydomain," _
            & "(Debug,!Shutdown)}" _
            & "[locale=ms_409]" _
            & "!\\User1\ROOT\CIMV2:Win32_LogicalDisk=""C:""")

wscript.echo "File system = " & myobj.filesystem

Заметка

Хотя моникеры обеспечивают более прямой доступ к объектам, в определенных обстоятельствах многократное использование моникеров может быть менее эффективным, чем эквивалентный код, который явно подключается к WMI. Если производительность приложения является соображением, рассмотрите возможность использования альтернативных механизмов.

Невозможно использовать функцию GetObject, предоставляемую VBScript для обновления или задания данных при выполнении скриптов, внедренных на HTML-страницу, так как Microsoft Internet Explorer запрещает использование этого вызова по соображениям безопасности.