объекта FileSystemObject
, однако использование WMI дает возможность собрать более полную информацию.
Для доступа к файлу на диске нужно создать для этого файла объект класса DataFile
схемы CIM. Как и при использовании объектов ADSI, это делается с помощью JScript-функции GetObject()
, в качестве параметра которой указывается строка вида 'winMgmts:
', где параметр Prefix
CIM
или Win32
), Class
Property
Value
File
) создается следующим образом:
//Создаем объект класса CIM_DataFile для файла C:oot.ini
File=GetObject('winMgmts:CIM_DataFile.Name='С:\boot.ini'')
После этого свойства файла извлекаются обычным образом из переменной File
:
//Инициализируем символьную переменную SInfo
SInfo='Информация о файле '+File.Name+'
';
//Извлекаем свойства файла
SInfo+='Имя: '+File.Name+'
';
…
//Определяем, доступен ли файл для чтения и записи
SInfo+='
';
if (File.Readable) SInfo+='Файл доступен для чтения
'
else SInfo+='Файл не доступен для чтения
';
if (File.Writeable) SInfo+='Файл доступен для записи
'
else SInfo+='Фaйл не доступен для записи
';
Сформированная символьная переменная SInfo
выводится на экран с помощью метода Echo()
объекта WScript
:
WScript.Echo(SInfo);
Полностью текст сценария FileInfoWMI.js приведен в листинге 11.20.
/*******************************************************************/
/* Имя: FileInfoWMI.js */
/* Язык: JScript */
/* Описание: Доступ к свойствам файла с помощью WMI */
/*******************************************************************/
//Объявляем переменные
var
File, //Объект класса CIM_DataFile
SInfo; //Строка для вывода на экран
//Функция для форматирования символьного представления даты
function StrDate(d) {
var s;
s=d.substr(6,2)+'.'+d.substr(4,2)+'.'+d.substr(0,4)
return s;
}
/************* Начало *********************************************/
//Создаем объект класса CIM_DataFile для файла C:oot.ini
File=GetObject('winMgmts:CIM_DataFile.Name='C:\boot.ini'')
//Инициализируем символьную переменную SInfo
SInfo='Информация о файле '+File.Name+'
';
//Извлекаем свойства файла
SInfo+='Имя: '+File.Name+'
';
SInfo+='Путь: '+File.Path+'
';
SInfo+='Диск: '+File.Drive+'
';
SInfo+='Размер: '+File.FileSize+'
';
SInfo+='Создан: '+StrDate(File.CreationDate)+'
';
SInfo+='Изменен: '+StrDate(File.LastModified)+'
';
SInfo+='Открыт: '+StrDate(File.LastAccessed)+'
';
SInfo+='Короткое имя: '+File.EightDotThreeFileName+'
';
SInfo+='Расширение: '+File.Extension+'
';
SInfo+='Тип: '+File.FileType+'
';
//Определяем атрибуты файла
SInfo+='
';
SInfo+='Атрибуты:
';
if (File.Archive) SInfo+=' Архивный
';
if (File.Hidden) SInfo+=' Скрытый
';
if (File.System) SInfo+=' Системный
';
if (File.Compressed) SInfo+=' Сжат с помощью '+File.CompressionMethod+'
';
if (File.Encrypted) SInfo+=' Зашифрован с помощью '+File.EncryptionMethod +'
';
//Определяем, доступен ли файл для чтения и записи
SInfo+='
';
if (File.Readable) SInfo+='Файл доступен для чтения
'
else SInfo+='Файл не доступен для чтения
';
if (File.Writeable) SInfo+='Файл доступен для записи
'
else SInfo+='Файл не доступен для записи
';
//Выводим сформированную строку на экран
WScript.Echo(SInfo);
/************* Конец *********************************************/
Список всех запущенных процессов
В следующих двух примерах мы будем работать с запущенными в операционной системе процессами.
Создадим сценарий ListProcesses.js, который будет выводить на экран имена всех запущенных процессов (рис. 11.29).
Рис. 11.29. Список всех запущенных в системе процессов
Первое, что необходимо сделать в сценарии — подключиться к службе Windows Management service, т.е. создать корневой элемент WMI, который содержит в себе все остальные.
Для этого в качестве параметра функции GetObject()
указывается 'winMgmts:
'; в нашем примере мы соединяемся с WMI внутри блока try
, что позволяет обработать возможные исключительные ситуации:
try {
//Соединяемся с WMI