объекта FileSystemObject, однако использование WMI дает возможность собрать более полную информацию.

Для доступа к файлу на диске нужно создать для этого файла объект класса DataFile схемы CIM. Как и при использовании объектов ADSI, это делается с помощью JScript-функции GetObject(), в качестве параметра которой указывается строка вида 'winMgmts:Prefix_class.Property=Value', где параметр Prefix соответствует используемой схеме (CIM или Win32), Class задает имя требуемого класса, Property соответствует имени свойства класса, a 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.

Листинг 11.20. Доступ к свойствам файла с помощью WMI

/*******************************************************************/

/* Имя: 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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату