четверг, 10 сентября 2009 г.

Позвольте WMI сделать за вас всю работу по получению системной информации

Это перевод Let WMI do the heavy lifting of determining system information. Автор: Реймонд Чен.

Windows Management Instrumentation - это интерфейс к конфигурационной информации, который поддерживает скрипты. Он может сэкономить вам на решении проблем по получению этой информации самостоятельно.

Например, вот простая программа, которая перечисляет все процессоры в вашей системе и печатает немного информации о каждом.

var locator = WScript.CreateObject("WbemScripting.SWbemLocator");
var services = locator.ConnectServer();
var cpus = new Enumerator(services.ExecQuery("SELECT * FROM Win32_Processor"));
while (!cpus.atEnd())
{
var cpu = cpus.item();
WScript.StdOut.WriteLine("cpu.ProcessorType=" + cpu.ProcessorType);
WScript.StdOut.WriteLine("cpu.CurrentClockSpeed=" + cpu.CurrentClockSpeed);
WScript.StdOut.WriteLine("cpu.MaxClockSpeed=" + cpu.MaxClockSpeed);
WScript.StdOut.WriteLine("cpu.Manufacturer=" + cpu.Manufacturer);
WScript.StdOut.WriteLine();
cpus.moveNext();
}

Просто сохраните эту программу в файл cpus.js and и запустите его как "cscript cpus.js".

В WMI храниться куча другой информации. Вы можете запросто потеряться среди обилия всех существующих WMI классов. У Scripting Guys есть их собственная утилита, называемая WMI Scriptomatic, которая позволяет вам прогуливаться по пространству имён WMI (Scripting Guys также написали Tweakomatic, к которой есть также оживлённая документация).

P.S. Кажется, люди не поняли смысл этого поста. Идея не в том, чтобы показать, как вывести результаты на экран (я сделал это, чтобы показать, что это вообще работает). А смысл в том, что вы можете позволить WMI сделать за вас всю грязную работу по сбору информации, и не гоняться за ней самому. Хотите информацию о BIOS? Попробуйте Win32_BIOS. Измените запрос на "SELECT * FROM Win32_BIOS" и вы получите производителя из свойства Manufacturer. В MSDN есть куча других примеров.

2 комментария:

  1. Почему решил не оформлять код, там вроде есть подсветка JS?

    ОтветитьУдалить
  2. Лениво смотреть название brush...

    ОтветитьУдалить

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.