Сегодня речь пойдет об интерфейсе WMI. Что же это такое? Windows Management Instrumentation - это единый интерфейс, предоставляющий информацию о всей системе. Благодаря WMI можно собирать абсолютно любую информацию о системе: количество дисководов, текущую загруженность компьютера, данные BIOS и многое другое. Причем это можно сделать не только на локальном компьютере, но и на удаленном (если у есть необходимые права). Доступ к WMI может осуществляться из любых скриптовых языков VBScript, JScript и других, что, на ряду с другими преимуществами, дает нам возможность использовать WMI в шаблонах наших электронных писем.
К интерфейсу WMI подключено большое количество сервисов операционной системы, поэтому чтобы получить необходимую информацию нужно знать где она находится. Принцип обращения к интерфейсу показан на рисунке.
Для более глубокого понимания структуры WMI следует почитать статью Сценарии WMI для начинающих.
WMI это, конечно же, хорошо, но как это связано с почтой? Дело в том, что в почтовых шаблонах Potolook Вы можете легко обращаться к интерфейсу WMI с помощью языка JScript. Это дает возможность вставлять в "подвал" писем занятную информацию и настройках Вашего компьютера. Например, рассмотрим как можно получить название фирмы производителя BIOS и поместить его в письмо.
Для начала скачайте программу для создания сценариев WMI Scriptomatic 2.0, с помощью которой можно просмотреть всю информацию, которая предоставляется через WMI интерфейс. Кроме того Scriptomatic поможет сгенерировать текст обращения к определенным свойствам сразу на языке JScript. Итак, распакуйте архив и запустите файл ScriptomaticV2.hta. Выберите ключ root\CIMV2 и затем класс Win32_BIOS как показано на рисунке в начале статьи (кликните для увеличения изображения). В колонке Language выберите язык JScript. После этого можно просмотреть готовый скрипт и выполнить его, нажав на кнопку Run. Вот что получилось на моем компьютере:
==========================================
Computer: MYCOMPUTER
==========================================
BiosCharacteristics: 4,7,9,10,11,12,15,16,17,19,
22,23,24,25,26,27,28,29,30,32,33,34,36,37
BIOSVersion: IntelR - 42302e31,
Phoenix - AwardBIOS v6.00PG,Phoenix-Award BIOS v6.00PG
BuildNumber: null
Caption: Phoenix - AwardBIOS v6.00PG
CodeSet: null
CurrentLanguage: n|US|iso8859-1
Description: Phoenix - AwardBIOS v6.00PG
IdentificationCode: null
InstallableLanguages: 3
InstallDate: null date
LanguageEdition: null
ListOfLanguages: n|US|iso8859-1,n|US|iso8859-1,r|CA|iso8859-1
Manufacturer: Phoenix Technologies, LTD
Name: Phoenix - AwardBIOS v6.00PG
OtherTargetOS: null
PrimaryBIOS: true
ReleaseDate: 3/31/2003 00:00:00
SerialNumber:
SMBIOSBIOSVersion: 6.00 PG
SMBIOSMajorVersion: 2
SMBIOSMinorVersion: 2
SMBIOSPresent: true
SoftwareElementID: Phoenix - AwardBIOS v6.00PG
SoftwareElementState: 3
Status: OK
TargetOperatingSystem: 0
Version: IntelR - 42302e31
Любое поле из этого списка можно получить отдельно. Как мы и оговаривались возьмем поле Caption - это и будет производитель BIOS. После некоторого упрощения скрипта, получим следующее:
var objWMIService = GetObject("winmgmts:\\\\" +
CreateObject("WScript.Network").ComputerName +
"\\root\\CIMV2");
var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_BIOS", "WQL", 0x20);
var enumItems = new Enumerator(colItems);
for (; !enumItems.atEnd(); enumItems.moveNext()) {
var objItem = enumItems.item();
write("\nBIOS: " + objItem.Caption);
}
Как видите скрипт получился совсем маленьким, так как интерфейс WMI очень компактный. Вы можете скопировать этот скрипт и вставить в шаблон письма.
Закладки (377) | Ссылка статьи на вашем сайте | Просмотров: 9395
Только зарегистрированные пользователи могут оставлять коментарии. Пожалуйста зарегистрируйтесь или войдите в ваш аккаунт. |