Создание моникерной строки
Формат строки моникера аналогичен стандартному пути объекта 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 запрещает использование этого вызова по соображениям безопасности.