Выбрать главу

После ввода такого дополнительного правила SRP на машине нельзя будет запускать сценарии с расширением vbs. При попытке выполнения VBScript- сценария будет выведено диалоговое окно с информацией о невозможности его запуска (рис. 4.30).

Также в разделе Дополнительные правила (Additional rules) имеется возможность создать правило для хеша (хеш — Это серия байтов фиксированной длины, которая рассчитывается по специальному алгоритму и однозначно идентифицирует содержимое файла). С помощью этого правила можно запретить выполнение файла, имеющего заданный хеш. Однако для сценариев, в отличие от компилированных исполняемых модулей, это не является подходящим ограничением, т.к. хеш файла со сценарием можно изменить простым добавлением пустой строки в текст сценария.

Рис. 4.30. Блокировка сценариев WSH с помощью дополнительных правил SRP 

Блокировка сценариев с заданной подписью

Еще одним возможным ограничением является запрет на выполнение файлов, подписанных с помощью определенного цифрового сертификата ("Попов ненадежный", например).

Рис. 4.31. Диалоговое окно для создания нового правила для сертификата

Для этого нужно в разделе Дополнительные правила (Additional rules) создать новое правило для сертификата (Certificate Rule) (пункт Создать правило для сертификата (New Certificate Rule) в меню Действие (Action)). В диалоговом окне Создание правила для сертификата (New Certificate Rule) в качестве имени субъекта сертификата (Certificate subject name) укажем с помощью кнопки Обзор (Browse) файл C:\Script\Попов.cer (процесс создания этого файла описан в разд. "Управление сертификатами с помощью ММС"), а в раскрывающемся списке Уровень безопасности (Security level) выберем значение "Не разрешено" ("Disallowed") — рис. 4.31.

После ввода этого дополнительного правила SRP на машине нельзя будет запускать никакие исполняемые файлы (сценарии WSH в том числе), которые подписаны с использованием сертификата "Попов ненадежный".

Глава 5

Доступ из сценариев к файловой системе

Сценарии WSH позволяют получить полный доступ к файловой системе компьютера, в отличие от JScript- или VBScript-сценариев, внедренных в HTML-страницы, где в зависимости от уровня безопасности, который устанавливается в настройках браузера, те или иные операции могут быть запрещены.

Выполнение основных операций с файловой системой

Для работы с файловой системой из сценариев WSH предназначены восемь объектов, главным из которых является FileSystemObject. С помощью методов объекта FileSystemObject можно выполнять следующие основные действия:

□ копировать или перемещать файлы и каталоги;

□ удалять файлы и каталоги;

□ создавать каталоги;

□ создавать или открывать текстовые файлы;

□ создавать объекты Drive, Folder и File для доступа к конкретному диску, каталогу или файлу соответственно.

С помощью свойств объектов Drive, Folder и File можно получить детальную информацию о тех элементах файловой системы, с которыми они ассоциированы. Объекты Folder и File также предоставляют методы для манипулирования файлами и каталогами (создание, удаление, копирование, перемещение); эти методы в основном копируют соответствующие методы объекта FileSystemObject.

Кроме этого, имеются три объекта-коллекции: Drives, Folders и Files. Коллекция Drives содержит объекты Drive для всех имеющихся в системе дисков, Folders — объекты Folder для всех подкаталогов заданного каталога, Files — объекты File для всех файлов, находящихся внутри определенного каталога.

Наконец, из сценария можно читать информацию из текстовых файлов и записывать в них данные. Методы для этого предоставляет объект TextStream.

В табл. 5.1 кратко описано, какие именно объекты, свойства и методы могут понадобиться для выполнения наиболее часто используемых файловых операций.

Таблица 5.1. Выполнение основных файловых операций

Операция Используемые объекты, свойства и методы
Получение сведений об определенном диске (тип файловой системы, метка тома, общий объем и количество свободного места и т.д.) Свойства объекта Drive. Сам объект Drive создается с помощью метода GetDrive объекта FileSystemObject
Получение сведений о заданном каталоге или файле (дата создания или последнего доступа, размер, атрибуты и т.д.) Свойства объектов Folder и File. Сами эти объекты создаются с помощью методов GetFolder и GetFile объекта FileSystemObject
Проверка существования определенного диска, каталога или файла Методы DriveExists, FolderExists и FileExists объекта FileSystemObject
Копирование файлов и каталогов Методы CopyFile и CopyFolder объекта FileSystemObject, а также методы File.Сору и Folder.Сору
Перемещение файлов и каталогов Методы MoveFile и MoveFolder объекта FileSystemObject или методы File.Move и Folder.Move
Удаление файлов и каталогов Методы DeleteFile и DeleteFolder объекта FileSystemObject или методы File.Delete и Folder.Delete
Создание каталога Методы FileSystemObject.CreateFolder или Folders.Add
Создание текстового файла Методы FileSystemObject.CreateTextFile или Folder.CreateTextFile
Получение списка всех доступных дисков Коллекция Drives, содержащаяся в свойстве FileSystemObject.Drives
Получение списка всех подкаталогов заданного каталога Коллекция Folders, содержащаяся в свойстве Folder.SubFolders
Получение списка всех файлов заданного каталога Коллекция Files, содержащаяся в свойстве Folder.Files
Открытие текстового файла для чтения, записи или добавления Методы FileSystemObject.CreateTextFile или File.OpenAsTextStream
Чтение информации из заданного текстового файла или запись ее в него Методы объекта TextStream