1

Тема: Perl: Command Line WMI query tool

Ссылка, достойная быть в коллекции. К сожалению, найти соответствующего раздела не смог.

http://sourceforge.net/projects/clewmi/

То что мне всегда хотелось. То что я хотел реализовать, но так и не сделал. Утилита, полностью написанная на Perl. Предоставляет удобный (с точки зрения пользователя командной строки) интерфейс к WMI.

Несомненные достоинства программы - именно простой интерфейс командной строки; небольшой набор параметров для получения разнообразной информации.
Единственный недостаток, который может отпугнуть некоторых пользователей - утилита написана на Perl. Хотя этот недостаток можно исправить и переписать на нативных для системы языках.

Перечисление пространств имен

clewmi --listNameSpaces

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

clewmi --listClasses -n Root/Default

Перечисление свойств, методов и т.д. класса

clewmi -c Win32_Process --list

А также самое важное, на мой взгляд чистые WQL-запросы без избыточного программного кода, то что мне так не хватало в оконных приложениях типа WmiCodeCreator:

clewmi -w "SELECT Name FROM Win32_Service WHERE Name LIKE '%server%'"

Еще один плюс - различный формат вывода - (список. таблица, CSV)

clewmi -w "SELECT Name FROM Win32_Service WHERE Name LIKE '%server%'" -o tab
( 2 * b ) || ! ( 2 * b )

2

Re: Perl: Command Line WMI query tool

Rumata, по Вашему описанию я так и не понял в чём принципиальные отличия утилиты от «wmic.exe».

3

Re: Perl: Command Line WMI query tool

alexii
Коллега, а Вы считаете wmic удобной утилитой? Я нет.

alexii пишет:

в чём принципиальные отличия утилиты

По всем приведенным выше пунктам.

wmic оперирует непонятными алиасами, которые надо еще знать как соотнести с интересующим тебя классом.
Обычный wql-запрос нельзя использовать, вместо этого приходится конвертировать запрос в неудобные параметры.

Сравните:

clewmi -w "select name from Win32_Process where name = 'cmd.exe'"

куда проще и понятнее чем

wmic process where name='cmd.exe'
( 2 * b ) || ! ( 2 * b )

4

Re: Perl: Command Line WMI query tool

В том-то и дело, что кроме непосредственного WQL-синтаксиса я не вижу разницы. А насчёт псевдонимов — никто не мешает использовать обычные классы:

wmic.exe Path Win32_Process where "Name = 'cmd.exe'" get Name

5

Re: Perl: Command Line WMI query tool

Видимо, я не так часто использую wmic. И поэтому ее синтаксис мне кажется кривоубогим. Мне ближе по душе чистые выражения и понятные параметры и аргументы, чем сбивающие с толку алиасы и прочие прелести.

( 2 * b ) || ! ( 2 * b )

6

Re: Perl: Command Line WMI query tool

Rumata пишет:

Видимо, я не так часто использую wmic.

Я сам начал её пользовать не так давно — с момента перехода на XP. Поначалу большие трудности вызывало осознание корректного синтаксиса предложения WHERE (особенно, при использовании разбора результатов «wmic.exe» посредством «for /f …»).