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

на главную

Жанры

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

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

Шрифт:

■ cscript d:\sr.vbs c:\ Y — полностью включить возможность восстановления системы (если диск C: является системным);

■ cscript d:\sr.vbs D:\ N — отключить SystemRestore только на диске D:.

Создание контрольной точки восстановления

Продолжим рассмотрение темы восстановления системы и опишем код для автоматического создания точки восстановления. На этот раз будет приведена только часть кода, отвечающая за работу WMI, а не весь код сценария, то есть обращение к моникеру winmgmts и работа с классом. Вы самостоятельно можете

модифицировать приведенный выше код для того, чтобы он мог, например, автоматически включать работу SystemRestore, если возможность восстановления системы отключена, а потом уже выполнять создание контрольной точки восстановления.

Листинг 11.2 Создание контрольной точки восстановления

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

'С помощью данной функции и создается точка восстановления.

'Функция имеет три параметра, первый из которых определяет описание

'создаваемой точки восстановления и возвращает код ошибки в случае

'неудачной попытки создания. Нам этот код не нужен,

'но тем не менее его необходимо поместить в любую переменную.

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

'то данный код может понадобиться.

ErrorSRCode = obj.CreateRestorePoint("Точка восстановления от " & Time, 0, 100)

Энумерация содержимого ветви реестра

Стандартные методы объекта, предназначенные для доступа к системному реестру (WScript.CreateObject("Wscript.Shell") ), один из которых, позволяющий считывать значения параметров из реестра, был рассмотрен в примере сценария для включения/отключения восстановления системы на логических дисках компьютера, позволяют выполнить базовые операции с реестром.

Но данный объект имеет один очень большой недостаток — с его помощью нельзя перечислить все параметры, расположенные в определенной ветви реестра. Этот недостаток ограничивал возможности применения сценариев сервера сценариев Windows, поэтому просто нельзя не рассказать о новом свойстве инструментария Windows, которое выполняет именно эту операцию.

ПРИМЕЧАНИЕ

Это может понадобиться в том случае, если необходимо значение не конкретного параметра реестра, а всех параметров одной ветви. При этом точно не известно, какие именно параметры могут находиться в данной ветви. 

За выполнение перечисления параметров, расположенных в ветви реестра, отвечает метод EnumValues, принадлежащий классу StdRegProv. Данный класс определяет методы для доступа к реестру Windows XP (более функциональный аналог стандартного объекта Windows, рассмотренного выше) и принадлежит к пространству имен Root\Default. Мы не будем создавать целый работоспособный сценарий для описания работы данного метода — лучше создадим отдельную процедуру, которая будет выполнять перечисление параметров указанной ветви реестра, а также проверим ее работу с помощью записи в файл журнала выводимых значений. 

Листинг 11.3.
Энумерация параметров ветви реестра

set objFS = CreateObject("Scripting.FIleSystemObject")

'Для вывода списка содержащихся в ветви реестра параметров мы будем

'использовать файл. В нашем случае – файл enum_log.txt на диске d:\..

set objTextFile = objFS.CreateTextFile("d:\enum_log.txt", 8, True)

'подключаем объект

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

'Переменная RootKey будет определять корневой раздел ветви, параметры

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

'в соответствии с правилами, определеннымивфайле Winreg.h. В файле

'определены следующие корневые разделы: HKEY_CLASSES_ROOT (0x80000000),

'HKEY_CURRENT_USER (0x80000001), HKEY_LOCAL_MACHINE (0x80000002),

'HKEY_USERS (0x80000003), HKEY_CURRENT_CONFIG (0x80000005), HKEY_DYN_DATA

'(0x80000006). В нашем случае будет использоваться корневой раздел

'HKEY_CURRENT_USER.

RootKey = &H80000001

Вызываем процедуру, которая и будет выполнять перечисление параметров. Для

'работы процедуры необходимы три параметра: ветвь реестра, параметры которой

'нужно перечислять (в нашем случае Control Panel\Desktop), объект,

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

'ветви, а также корневой раздел указанной ранее ветви, записанный в нашем

'случае в параметре RootKey. После работы процедуры закрываем открытый

'текстовый файл.

call EnumV("Control Panel\Desktop", objTextFile, RootKey)

objTextFile.Close

Sub EnumV(Path, objTextFile, RootKey)

 objTextFile.WriteLine ":::: Ветвь реестра: HKEY_CURRENT_USER\" & Path & vbCrLf

 'Выполняем перечисление параметров, расположенных в ветви реестра

 'HKEY_CURRENT_USER\Control Panel\Desktop. Для этого используется метод

 'EnumValues, для работы которого необходимы следующие параметры:

 '– Корневой раздел ветви (в нашем случае параметр RootKey)

 '– Остальной путь к ветви реестра (в нашем случае параметр RootKey,

 'указываемый при вызове процедуры).

 ' – Переменная, в которую будут помещаться содержащиеся в ветви реестра

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

Мастер 7

Чащин Валерий
7. Мастер
Фантастика:
фэнтези
боевая фантастика
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Мастер 7

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Эйгор. В потёмках

Кронос Александр
1. Эйгор
Фантастика:
боевая фантастика
7.00
рейтинг книги
Эйгор. В потёмках

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

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

Невеста на откуп

Белецкая Наталья
2. Невеста на откуп
Фантастика:
фэнтези
5.83
рейтинг книги
Невеста на откуп

Граф

Ланцов Михаил Алексеевич
6. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Граф

Кодекс Охотника. Книга XVII

Винокуров Юрий
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVII

Все еще не Герой!. Том 2

Довыдовский Кирилл Сергеевич
2. Путешествие Героя
Фантастика:
боевая фантастика
юмористическое фэнтези
городское фэнтези
рпг
5.00
рейтинг книги
Все еще не Герой!. Том 2

Восьмое правило дворянина

Герда Александр
8. Истинный дворянин
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восьмое правило дворянина

70 Рублей

Кожевников Павел
1. 70 Рублей
Фантастика:
фэнтези
боевая фантастика
попаданцы
постапокалипсис
6.00
рейтинг книги
70 Рублей

Газлайтер. Том 9

Володин Григорий
9. История Телепата
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Газлайтер. Том 9

Кровь Василиска

Тайниковский
1. Кровь Василиска
Фантастика:
фэнтези
попаданцы
аниме
4.25
рейтинг книги
Кровь Василиска

Штурм Земли

Семенов Павел
8. Пробуждение Системы
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Штурм Земли

Камень. Книга пятая

Минин Станислав
5. Камень
Фантастика:
боевая фантастика
6.43
рейтинг книги
Камень. Книга пятая