PowerShell и другие скрипты

22.12.2008

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

Рубрика: Learn, PowerShell, Practice, Scripting, Tips, VBScript — Xaegr @ 11:53

Следующий способ реализации этой популярной задачи о котором я хочу поведать – использование 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) »

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

    Комментарий от Bishop — 22.12.2008 @ 13:54

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

    Комментарий от Xaegr — 22.12.2008 @ 14:56

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

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

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

    Комментарий от Konstantin — 3.1.2009 @ 0:41

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

    Комментарий от Xaegr — 3.1.2009 @ 9:56

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

    Уведомление от Запуск процесса на удалённом компьютере – WinRM (WS-Management) « PowerShell и другие скрипты — 12.1.2009 @ 10:59

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

    Уведомление от Запуск процесса на удалённом компьютере - PsExec « PowerShell и другие скрипты — 12.1.2009 @ 11:03

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

    Комментарий от de10 — 21.4.2009 @ 10:24


RSS-лента комментариев к этой записи. URI для обратной ссылки

Оставить комментарий

Блог на WordPress.com.