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

Установка 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
Автор
Редакция

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

Как устроить идеальную вечеринку для просмотра ТВ
Развлечения

Как устроить идеальную вечеринку для просмотра ТВ

Как распаковать несколько RAR‑файлов сразу
Инструменты

Как распаковать несколько RAR‑файлов сразу

Приватный просмотр в Linux: как и зачем
Приватность

Приватный просмотр в Linux: как и зачем

Windows 11 не видит iPod — способы исправить
Руководство

Windows 11 не видит iPod — способы исправить

PS5: как настроить игровые пресеты
Консоли

PS5: как настроить игровые пресеты

Как переключить камеру в Omegle на iPhone и Android
Руководство

Как переключить камеру в Omegle на iPhone и Android