Запуск процесса на удалённом компьютере – WMI

Следующий способ реализации этой популярной задачи о котором я хочу поведать – использование Windows Management Infrastracture (WMI). WMI присутствует на всех компьютерах начиная с Windows 2000 (если не путаю), а на 9х его можно доустановить. WMI включён по умолчанию, и не требует дополнительной настройки, для его использования достаточно административных прав, и разрешенного на брандмауэре протокола DCOM.

Конкретно для запуска процессов нам потребуется метод Create класса Win32_Process. Использовать его тоже достаточно несложно, хотя и “неочевидно”😉 В PowerShell это делается следующим образом:

([wmiclass]"\\scenic11\root\cimv2:Win32_Process").create("Calc")

Как можно догадаться тут мы запускаем процесс Calc на компьютере Scenic11. Метод Create не дожидается завершения процесса, но зато сообщает нам его идентификатор – ProcessID.

WMI можно использовать не только с помощью PowerShell. Начиная с Windows XP в комплекте с Windows идёт утилита wmic.exe которая предоставляет достаточно удобный интерфейс для WMI из командной строки:

image

Ну и еще можно WMI доступен через Windows Script Host, но об этом я писать не буду – слишком уж это сложно для таких простых вещей🙂 Впрочем если есть желание – можно почитать например здесь.

Дополнительно по теме WMI рекомендую прочитать статью Константина Леонтьева (кстати единственный в России MCM😉 ) — “Вы всё ещё не используете WMI?”: Часть 1, Часть 2.

Другие способы выполнения команд на удалённом компьютере: PsExec.exe, WinRM.

комментариев 7 to “Запуск процесса на удалённом компьютере – WMI”

  1. Bishop Says:

    Тут надо заметить, что этим способом нельзя запустить процесс интерактивным.

  2. Xaegr Says:

    2 Bishop: Ага. Но что интересно — на локальном компьютере он всегда запускается интерактивно🙂

  3. Konstantin Says:

    Есть еще одна моя статья из 2-х частей на тему WMI.

    http://www.samag.ru/art/03.2006/03.2006_05.html

    http://www.samag.ru/art/05.2006/05.2006_07.html

  4. Xaegr Says:

    2 Konstantin: Спасибо!
    Кстати я уже опечатку нашел🙂
    «Помимо штатного резервного копирования и восстановления, выполнение которого доступно через консоль wmimgmt.msc. Существует еще ряд средств диагностики и восстановления WMI.» это должно быть одним предложением🙂

  5. Запуск процесса на удалённом компьютере – WinRM (WS-Management) « PowerShell и другие скрипты Says:

    […] Другие способы выполнения команд на удалённом компьютере: PsExec.exe, WMI. […]

  6. Запуск процесса на удалённом компьютере - PsExec « PowerShell и другие скрипты Says:

    […] способы выполнения команд на удалённом компьютере: WMI, […]

  7. de10 Says:

    симпатично, но, как запустить на удаленном пк приложение, размещенное на сетевом ресурсе? вместо «calc» «\\server\dir\file.exe» ?


Обсуждение закрыто.

%d такие блоггеры, как: