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


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

Чтобы получить данные из WMI на локальном компьютере или с удаленного компьютера, необходимо подключиться к службе WMI путем подключения к определенному пространству имен . В большинстве случаев используйте либо короткое обозначение связь, либо связь указателя. Другие примеры можно найти в TechNet ScriptCenter в 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 ScriptCenter

`