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


Задачи WMI: подключение к службе WMI

Чтобы получить данные из WMI на локальном компьютере или с удаленного компьютера, необходимо подключиться к службе WMI, подключив к определенному пространству имен. В большинстве случаев используйте либо сокращенное соединение моникера , либо подключение указателя . Другие примеры см. в центре сценариев TechNet по адресу https://www.microsoft.com/technet.

Для удаленных подключений требуются соответствующие параметры брандмауэра Windows и DCOM. Дополнительные сведения см. в разделах Подключение к WMI на удаленном компьютере и Подключение через брандмауэр Windows. Начиная с Windows Vista контроль учетных записей (UAC) может повлиять на доступ к WMI. Дополнительные сведения см. в разделе Контроль учетных записей пользователей и WMI.

Примеры скриптов, показанные в этом разделе, получают данные только с локального компьютера. Дополнительные сведения о том, как использовать скрипт для получения данных с удаленных компьютеров, см. в статье Подключение к WMI на удаленном компьютере.

В следующей процедуре описывается выполнение скрипта.

Запуск сценария

  1. Скопируйте код и сохраните его в файл с расширением VBS, например filename.vbs. Убедитесь, что текстовый редактор не добавляет в файл расширение .txt.
  2. Откройте окно командной строки и перейдите в каталог, в котором сохранен файл.
  3. Введите cscript filename.vbs в командной строке.
  4. Если вы не можете получить доступ к журналу событий, проверка, чтобы узнать, выполняется ли вы из командной строки с повышенными привилегиями. Некоторые журналы событий, например журнал событий безопасности, могут быть защищены средствами управления доступом пользователей (UAC).

Примечание

По умолчанию cscript отображает выходные данные скрипта в окне командной строки. Так как скрипты WMI могут создавать большие объемы выходных данных, может потребоваться перенаправить выходные данные в файл. Введите cscript filename.vbs > outfile.txt в командной строке, чтобы перенаправить выходные данные скриптаfilename.vbs наoutfile.txt.

В следующей таблице перечислены примеры скриптов, которые можно использовать для получения различных типов данных с локального компьютера.

Часто выполняемые действия в новом интерфейсе Классы или методы WMI
... подключиться к удаленному компьютеру с помощью WMI? Укажите один из следующих элементов в строке подключения к моникеру :
  • Имя компьютера NetBIOS, например atl-dc-01.
  • Полное доменное имя, например "atl-dc-01.fabrikam.com".
  • IPv4-адрес, например "192.168.1.1".
  • Начиная с Windows Vista, можно указать IPv6-адрес, если на целевом компьютере и компьютере, с которого выполняется подключение, выполняется протокол IPv6.
Дополнительные сведения см. в разделах Подключение к WMI на удаленном компьютере и Поддержка IPv6 и IPv4 в WMI.
VB
strComputer = "atl-dc-01"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process")
For Each objProcess in colProcessList
    Wscript.Echo "Process Name: " & objProcess.Name 
Next
PowerShell
strComputer = "atl-dc-01"
Get-WmiObject -Class Win32_Process -ComputerName $strComputer -Namespace "root\cimv2" | format-list -Property Name
... Запустить скрипт WMI с альтернативными учетными данными?

Используйте метод SWbemLocator.ConnectServer или IWbemLocator::ConnectServer в C++, включив соответствующее имя пользователя и пароль. Невозможно изменить учетные данные при подключении к локальному компьютеру. Дополнительные сведения см. в разделах Создание скрипта WMI и Подключение к WMI на удаленном компьютере.

VB
strComputer = "atl-dc-01"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer (strComputer, "root\cimv2", "fabrikam\administrator", "password")
Set colProcessList = objSWbemServices.ExecQuery("Select * From Win32_Process")
For Each objProcess in colProcessList
    Wscript.Echo "Process Name: " & objProcess.Name 
Next
PowerShell
$StrComputer = "atl-dc-01"
$strCredentials = "FABRIKAM\administrator"
Get-WmiObject -Class Win32_Process -ComputerName $strComputer -Namespace "root\cimv2" -credential $strCredentials `
   -Impersonation Impersonate | format-list -Property Name

Задачи WMI для сценариев и приложений

Примеры приложений WMI C++

Центр сценариев TechNet

`