Создание строки моникера
Формат строки моникера аналогичен формату стандартного пути к объекту WMI. Дополнительные сведения см. в разделе Требования к пути к объекту WMI.
Моникер состоит из следующих частей:
- Префикс WinMgmts: (обязательный). Префикс указывает на узел сценариев Windows (WSH), что следующий код будет использовать объекты API сценариев.
- Компонент параметров безопасности (необязательно)
- Компонент пути к объекту WMI (необязательно)
Невозможно указать пароль в строке моникера WMI. Если необходимо изменить пароль (параметр strPassword ) или тип проверки подлинности (параметр strAuthority ) при подключении к WMI, вызовите SWbemLocator.ConnectServer. Имейте в виду, что вы можете указать пароль и полномочия только в подключениях к удаленным компьютерам. Попытка задать их в скрипте, запущенном на локальном компьютере, приводит к ошибке. Дополнительные сведения об использовании параметров безопасности и компонентов пути к объектам см. в разделе Параметры безопасности WMI.
Следующий моникер указывает объект SWbemServices , представляющий корневое пространство имен\default, с олицетворением в и включенной привилегией wbemPrivilegeDebug (SeDebugPrivilege) и привилегией wbemPrivilegeSecurity (SeSecurityPrivilege) отключена.
"winmgmts:{impersonationLevel=impersonate," & "(debug,!security)}!root\default"
Примечание
Все строковые литералы не учитывают регистр.
Префикс "!" для привилегии указывает, что привилегия должна быть отключена; Пропуск этого префикса подразумевает, что привилегия должна быть включена.
Префикс "!" используется в имени компьютера или пространстве имен, если параметры безопасности указаны в квадратных скобках перед именем компьютера или пространством имен.
При указании пути к объекту разрешены следующие назначения по умолчанию:
Имя компьютера можно опустить в пути к объекту. В этом случае предполагается имя локального компьютера.
Пространство имен можно опустить в пути к объекту. В этом случае предполагается пространство имен по умолчанию.
Это определяется значением раздела реестра HKEY_LOCAL_MACHINE\программного пространства\ именmicrosoft\WBEM\Scripting\Default, значение по умолчанию — Root\CIMv2.
Можно также указать класс или экземпляр. В этом случае возвращаемый объект является объектом WMI, а не объектом services.
Примечание
Если указан класс или экземпляр, пространство имен нельзя опустить при указании имени компьютера.
Сведения о константах привилегий, используемых в строке моникера 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 на американском английском языке из пространства имен root\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 Обозреватель запрещает использование этого вызова по соображениям безопасности.