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


Объект SWbemLocator

Методы объекта SWbemLocator можно использовать для получения объекта SWbemServices , представляющего подключение к пространству имен на локальном или удаленном хост-компьютере. Затем можно использовать методы объекта SWbemServices для доступа к WMI. Этот объект можно создать с помощью вызова CreateObject VBScript.

Элементы

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

Методы

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

Метод Описание
ConnectServer Подключается к WMI на указанном компьютере.

Свойства

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

Свойство Тип доступа Описание
Безопасности_
Только для чтения
Используется для чтения или изменения параметров безопасности.

Комментарии

В верхней части объектной модели библиотеки скриптов WMI находится объект SWbemLocator. SWbemLocator используется для установки аутентифицированного подключения к пространству имен WMI, так же как функция GetObject VBScript и моникер WMI "winmgmts:" используются для установки аутентифицированного подключения к WMI. Однако SWbemLocator предназначен для решения двух конкретных сценариев, которые невозможно выполнить с помощью GetObject и моникера WMI. Чтобы выполнить следующие действия, необходимо использовать SWbemLocator.

  • Укажите учетные данные пользователя и пароля для подключения к WMI на удаленном компьютере. Моникер WMI, используемый с функцией GetObject, не включает механизм указания учетных данных. Для большинства действий WMI (включая все действия, выполняемые на удаленных компьютерах) требуются права администратора. Если вы обычно выполняете вход с помощью обычной учетной записи пользователя, а не учетной записи администратора, вы не сможете выполнить большинство задач WMI, если не запустить скрипт с альтернативными учетными данными.
  • Подключитесь к WMI, если вы запускаете скрипт WMI на веб-странице. Функцию GetObject нельзя использовать при выполнении скриптов, внедренных в HTML-страницу, так как интернет-Обозреватель запрещает использование GetObject по соображениям безопасности.

Кроме того, может потребоваться использовать SWbemLocator для подключения к WMI, если строка подключения WMI, используемая с GetObject, запутана или затруднена.

Для создания ссылки на SWbemLocator используется CreateObject, а не GetObject. Чтобы создать ссылку, необходимо передать функции CreateObject программный идентификатор SWbemLocator (ProgID) WbemScripting.SWbemLocator, как показано в строке 2 в следующем примере скрипта. После получения ссылки на объект SWbemLocator вызывается метод ConnectServer для подключения к WMI и получения ссылки на объект SWbemServices. Это показано в строке 3 следующего сценария.

strComputer = "."
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Name: " & objSWbemObject.Name
Next

Чтобы запустить скрипт с альтернативными учетными данными, добавьте имя пользователя и пароль в качестве дополнительных параметров, передаваемых в ConnectServer. Например, этот скрипт выполняется под учетными данными пользователя kenmyer с паролем homerj.

strComputer = "atl-dc-01"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
    (strComputer, "root\cimv2", "kenmyer", "homerj")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Name: " & objSWbemObject.Name
Next

Вы также можете использовать формат Домен\Имя пользователя, чтобы указать имя пользователя. Пример:

" fabrikam\kenmyer"

Примеры

В следующем примере PowerShell используется SWbemLocator для подключения к серверу.

$NameSpace = 'root\ccm'
$ComputerName = 'sccm.company.com'
$WbemLocator = New-Object -ComObject "WbemScripting.SWbemLocator"
$WbemServices = $WbemLocator.ConnectServer($ComputerName, $Namespace)
$WbemClasses = $WbemServices.SubclassesOf()
$WbemClasses

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Заголовок
Wbemdisp.h
Библиотека типов
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemLocator
IID
IID_ISWbemLocator

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

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