Гид по технологиям

Установка WMIC на Linux

6 min read Администрирование Обновлено 06 Dec 2025
Установка WMIC на Linux и примеры использования
Установка WMIC на Linux и примеры использования

Иллюстрация установки WMIC в Linux

При мониторинге Windows‑машины (сервер или рабочая станция) часто важно не устанавливать стороннее программное обеспечение на управляемую систему. Современные администраторы обычно разворачивают агента и управляют им централизованно, но без агента задача усложняется.

WMIC помогает в таких сценариях: это «белый» инструмент, работающий по WMI, который позволяет собирать информацию и выполнять действия на удалённой Windows‑системе через командную строку.

Что такое WMIC и зачем он нужен

WMIC (Windows Management Instrumentation Command‑line) — это клиент, использующий протокол WMI для управления Windows‑машинами. По сути, Microsoft объединила идеи Web‑Based Enterprise Management (WBEM) и Common Information Model (CIM) в модели управления объектами системы.

Коротко: WMIC позволяет отправлять запросы к WMI и получать структуру и свойства компонентов Windows, а также выполнять некоторые операции удалённо. Это полезно, когда нельзя или нежелательно ставить агент на целевую систему.

Пример: клиент WMIC на Linux с ограниченным набором запросов

Важно помнить: Linux‑клиент WMIC обычно обладает ограниченным набором возможностей по сравнению с нативным Windows‑инструментом, но для базового инвентаря и ряда операций этого достаточно.

Установка WMIC в Linux

Ниже — пример последовательности команд для установки WMIC из исходников. Команды выполняются от имени пользователя с правами sudo и судя по примеру предполагают, что у вас есть доступ к /data/tools/ и установлен wget, bzip2, make и компилятор gcc.

sudo aptitude install autoconf

cd /data/tools/
wget http://www.openvas.org/download/wmi/wmi-1.3.14.tar.bz2
bzip2 -cd wmi-1.3.14.tar.bz2 | tar xf -
cd wmi-1.3.14/
sudo make "CPP=gcc -E -ffreestanding"
sudo cp Samba/source/bin/wmic /usr/local/bin/

После установки бинарник wmic должен появиться в /usr/local/bin и быть доступен для запуска.

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

Общий синтаксис и параметры

Общий формат запуска WMIC:

wmic -U user%password //host "query"

Ниже — переведённая таблица основных опций клиента WMIC (короткие объяснения параметров).

ПеременнаяОписание
-?, –helpПоказать подсказку по использованию
-A, –authentication-file=FILEПолучать учётные данные из файла

| –delimiter=STRING | Разделитель при выводе нескольких значений, по умолчанию ‘|’ | | -d, –debuglevel=DEBUGLEVEL | Установить уровень отладки | | –debug-stderr | Отправлять отладочный вывод в STDERR | | -i, –scope=SCOPE | Использовать заданный NetBIOS scope | | -k, –kerberos=STRING | Использовать Kerberos | | -l, –log-basename=LOGFILEBASE | Базовое имя для лог/файлов отладки | | –leak-report | Включить отчёт о утечках talloc при выходе | | –leak-report-full | Включить подробный отчёт о talloc при выходе | | -m, –maxprotocol=MAXPROTOCOL | Установить максимальный уровень протокола | | –namespace=STRING | Пространство имён WMI, по умолчанию root\cimv2 | | -N, –no-pass | Не запрашивать пароль | | -n, –netbiosname=NETBIOSNAME | Основное NetBIOS‑имя | | –option=name=value | Установить опцию smb.conf из командной строки | | -O, –socket-options=SOCKETOPTIONS | Опции сокета | | –password=STRING | Пароль | | -P, –machine-pass | Использовать сохранённый пароль учётной записи машины (подразумевается -k) | | –realm=REALM | Имя realm для Kerberos | | -R, –name-resolve=NAME-RESOLVE-ORDER | Использовать только эти сервисы разрешения имён | | –simple-bind-dn=STRING | DN для простого bind | | -S, –signing=on|off|required | Установить состояние подписи клиента | | -s, –configfile=CONFIGFILE | Использовать альтернативный файл конфигурации | | –usage | Показать краткое сообщение об использовании | | –use-security-mechanisms=STRING | Ограничить набор механизмов аутентификации | | -U, –user=[DOMAIN]USERNAME[%PASSWORD] | Сетевое имя пользователя | | -W, –workgroup=WORKGROUP | Имя рабочей группы |

Примеры использования WMIC

WMIC позволяет быстро собрать информацию о системе и процессах удалённой машины. Несколько полезных примеров.

Получить информацию о системе:

wmic -U unknown //192.168.1.12 "select * from Win32_ComputerSystem"

Получить список запущенных процессов (колонки: caption, name, parentprocessid, processid):

wmic -U unknown%oopsoops //192.168.1.12 "select caption, name, parentprocessid, processid from win32_process"

Пример вывода списка процессов, полученного с помощью WMIC

После выполнения команд вы увидите таблицу с запущенными процессами. В примере на скриншоте вывод был получен из Windows Command Prompt, но формат WMIC в Linux будет схожим по смыслу.

Практические советы и подводные камни

  • Аутентификация: при использовании пароля в командной строке он может оказаться записан в истории shell. По возможности используйте файл аутентификации (-A) или токены Kerberos.
  • Сетевые порты: WMI обычно работает поверх RPC/DCOM — в ряде случаев потребуется открыть дополнительные порты или настроить прокси/SSH‑туннель.
  • Ограничения клиента: Linux‑версия может не поддерживать всех классов и методов WMI; для сложных операций лучше использовать нативные Windows‑инструменты.

Примечание: WMIC не заменяет полноценный агент мониторинга — он удобен для ad‑hoc запросов, инвентаризации и оперативных действий.

Когда WMIC не подходит

  • Требуются постоянные автозапуск и телеметрия с минимальной задержкой — агент лучше.
  • Необходима сложная удалённая конфигурация, включающая GUI‑взаимодействие или инсталляторы — WMIC ограничен.
  • Среды с жёсткими требованиями к аудиту и контролю доступа: использование учётных данных через командную строку может нарушать политики безопасности.

Альтернативные подходы

  • WinRM + PowerShell Remoting: более мощный и гибкий инструмент для удалённого управления Windows.
  • WMI через Python (pywinrm, wmi‑client): скрипты дают больше автоматизации и контроля ошибок.
  • Агентские решения (Prometheus node_exporter, Zabbix agent, Datadog): для постоянного мониторинга и оповещений.

Роль‑ориентированные чек‑листы

Администратор сети:

  • Проверить сетевую связность и открытые порты.
  • Подготовить учётные данные и, по возможности, Kerberos.
  • Проверить совместимость namespace (root\cimv2).

Инженер безопасности:

  • Использовать защищённые каналы (SSH‑туннель, VPN).
  • Минимизировать хранение паролей в открытом виде.
  • Логировать все операция и хранить логи в защищённом хранилище.

Разработчик автоматизации:

  • Инкапсулировать команды в скрипты с проверкой ошибок.
  • Тестировать ожидаемые схемы ответа на тестовой машине.
  • Обеспечить её идемпотентность (повторяемость).

Критерии приёмки

  • Установленный бинарник wmic доступен в PATH и запускается без ошибок.
  • Выполнение базового запроса Win32_ComputerSystem возвращает ожидаемые поля.
  • Логирование успешных/неуспешных попыток подключения настроено.
  • Политики безопасности соблюдены: пароли не хранятся в открытом виде.

Безопасность и рекомендации по жёсткой конфигурации

  • По возможности используйте Kerberos вместо передачи паролей.
  • Отключайте неиспользуемые сетевые сервисы и ограничивайте доступ по IP.
  • Включите аудит и централизованный сбор логов для всех операций WMIC.
  • Применяйте принцип наименьших привилегий к учётным записям, используемым для запросов.

Небольшой глоссарий

  • WMI: Windows Management Instrumentation — инфраструктура управления Windows.
  • WBEM: Web‑Based Enterprise Management — набор стандартов для управления системами.
  • CIM: Common Information Model — модель представления управляемых объектов.

Тест‑кейсы и приёмочные проверки

  1. Установка: бинарник копируется в /usr/local/bin и исполняемый (chmod +x).
  2. Подключение: wmic -U % //127.0.0.1 “select name from Win32_OperatingSystem” возвращает имя ОС.
  3. Безопасность: запуск скрипта без пароля не оставляет секретов в ~/.bash_history.
  4. Ошибки: при недоступности хоста клиент возвращает корректный код ошибки (не «успешно»).

Заключение

WMIC на Linux — удобный инструмент для быстрого доступа к WMI‑данным удалённых Windows‑машин без развёртывания агента. Он полезен для инвентаризации, диагностики и простых операций, но не предназначен для замены полноценной системы мониторинга. Следуйте рекомендациям по безопасности и тестируйте команды в контролируемой среде.

Если вы установили WMIC и использовали его в рабочем окружении — расскажите о своём опыте в комментариях. Также может быть полезна наша статья о различиях ядра Windows и ядра Linux для понимания архитектурных ограничений.

Краткая сводка:

  • WMIC позволяет делать ad‑hoc запросы к WMI с Linux.
  • Используйте Kerberos или файл аутентификации для безопасности.
  • Для постоянного мониторинга лучше выбрать агентские решения.

Спасибо за прочтение! Напишите, если хотите шаблоны скриптов или примеры автоматизации под ваш сценарий.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство