Чтение онлайн

на главную - закладки

Жанры

Недокументированные и малоизвестные возможности Windows XP

Клименко Роман

Шрифт:

'SystemRestore.

set objFS = CreateObject("Scripting.FileSystemObject")

'После объявления объекта необходимо открыть текстовый файл

'(например, файл sr_log.txt, расположенный в каталоге d:\)

'для записи (если файл не сущестует, то он будет автоматически создан).

'В этот файл будет записываться информация о работе сценария.

set objTextFile = objFS.OpenTextFile("d:\sr_log.txt", 8, True)

'Теперь
мы объявляем объект для работы с реестром Windows.

'Он нам понадобится для доступа к параметру, указывающему, включена ли

'в данный момент возможность SystemRestore

set objREG = WScript.CreateObject("Wscript.Shell")

Теперь мы объявляем объект, с помощью которого можно обработать

'передаваемые в сценарий параметры командной строки. Наш сценарий будет

'использовать параметры командной строки для определения того, что же

'ему нужно делать. При этом полная строка запуска нашего сценария

'будет выглядеть так: cscript «путь к файлу сценария и его имя» «значок

'диска» «если этот параметр равен Y, то SystemRestore на диске будет

включена, если же значение этого параметра равно N, то отключена».

'Если параметры не заданы (например, сценарий запускается двойным щелчком

'на его значке), то будут применяться параметры По умолчанию: будет

'отключаться возможность SystemRestore на диске C:\.

Set Args = wscript.Arguments

Теперь мы проверяем, использовали ли при запуске сценария параметр

'значка диска (первую опцию). Если не использовали, то будем работать

'с диском C:\.

If Args.Count > 0 Then

 Drive = Args.item(0)

Else

 Drive = "c:\"

End If

'Теперь мы проверяем использование при запуске сценария второго параметра

If Args.Count > 1 Then

 StopSR = Args.item(1)

Else

 StopSR = "N"

End If

'При каждом запуске даннного сценария мы будем вести журнал его работы.

'Каждый журнал, как правило, начинается с даты и времени, когда сценарий

'был запущен – именно эту информацию мы и добавляем в открытый ранее

'файл. Для этого мы используем метод Write, чтобы сервер сценариев

'не переходил на следующую
строку файла журнала после занесения в него

'даты и времени.

objTextFile.Write Date & " в " & Time

'Сейчас мы вызываем главную функцию программы, описанную ниже в сценарии.

'Главный код программы был реализован в виде функции, чтобы показать

'читателю большинство возможностей сервера сценариев Windows.

call sronoff

'А вот и главная функция программы (которая будет называться sronoff).

'Именно эта функция отключает или включает SystemRestore на определенном

'диске. Реализация частей кода сценария в виде функций позволяет

'использовать его возможности по максимуму. Например, такой подход

'позволяет завершать работу сценария в любое время, независимо от

'оставшегося для обработки кода, или использовать для каждой части

'кода свои методы обработки ошибок.

private sub sronoff

 'Внимание, именно сейчас мы подключаемся к WMI с помощью моникера winmgmts.

 'Здесь мы подключаемся к пространству имен root/default локального

 'компьютера и объявляем класс SystemRestore этого пространства c имитацией

 'прав доступа (impersonate). Если вам запрещен доступ к пространству

 'имен root/default, то вы не сможете объявить класс SystemRestore

 'Помните, выше мы рассматривали параметры реестра, для определения порогов

 'передачи объектов от поставщиков WMI. Именно передачей объектов мы и

 'пользуемся в данный момент.

 Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")

 'Чуть ниже мы считываем из реестра значение параметра. Особенность

 'сценария состоит в том, что он будет выдавать ошибку, если параметра,

 'значение которого мы считываем, не существует в реестре. Чтобы сценарий

 'не завершался ошибкой, мы подавляем возможность выдачи ошибок.

 'Иными словами, приведенная ниже строка говорит серверу сценариев о том,

 'что в случае возникновения ошибки он должен дальше обрабатывать сценарий,

 'не обращая внимания на возникшую ошибку.

 ON ERROR RESUME NEXT

 'Именно сейчас мы и работаем с реестром. Мы считываем значение

Поделиться:
Популярные книги

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

В погоне за женой, или Как укротить попаданку

Орлова Алёна
Фантастика:
фэнтези
6.62
рейтинг книги
В погоне за женой, или Как укротить попаданку

Неудержимый. Книга XXIX

Боярский Андрей
29. Неудержимый
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Неудержимый. Книга XXIX

Барон не играет по правилам

Ренгач Евгений
1. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон не играет по правилам

Наследник павшего дома. Том I

Вайс Александр
1. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том I

Имперский Курьер. Том 3

Бо Вова
3. Запечатанный мир
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Имперский Курьер. Том 3

Имперец. Том 1 и Том 2

Романов Михаил Яковлевич
1. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Имперец. Том 1 и Том 2

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь

Он тебя не любит(?)

Тоцка Тала
Любовные романы:
современные любовные романы
7.46
рейтинг книги
Он тебя не любит(?)

Камень. Книга восьмая

Минин Станислав
8. Камень
Фантастика:
фэнтези
боевая фантастика
7.00
рейтинг книги
Камень. Книга восьмая

Маска зверя

Шебалин Дмитрий Васильевич
5. Чужие интересы
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Маска зверя

Камень. Книга вторая

Минин Станислав
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Камень. Книга вторая

Законы Рода. Том 11

Андрей Мельник
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 11