- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Реестр Windows 7 - Александр Климов
Шрифт:
Интервал:
Закладка:
Реестр и программирование
Ранее мы в основном вручную вносили изменения в реестр для различных настроек. Но это не всегда удобно. Особенно это хорошо известно системным администраторам и программистам.
Каждый день открывать редактор реестра на десятках компьютерах, чтобы поменять один параметр, согласитесь, хлопотно. Для автоматизации подобных работ используются сценарии и собственные программы.
BAT-файлы сценариев
BAT-файлы известны очень давно и по-прежнему используются для автоматизации задач на многих предприятиях опытными системными администраторами. Рассмотрим некоторые приемы работы с реестром. Для примеров удобнее всего использовать утилиту командной строки REG.EXE , о которой говорилось в первой главе. Предположим, мы хотим сделать резервную копию всего реестра. Воспользуемся для этой задачи командой REG-EXPORT и создадим файл r egbackup.bat следующего содержания:
Листинг 5.1. Резервное копирование реестра при помощи BAT-файла
CD
MD D:RegistryBackup
CD D:RegistryBackup
REG EXPORT HKLM D:RegistryBackuphklm.reg
REG EXPORT HKCU D:RegistryBackuphkcu.reg
REG EXPORT HKCR D:RegistryBackuphkcr.reg
REG EXPORT HKCC D:RegistryBackuphkcc.reg
REG EXPORT HKU D:RegistryBackuphku.regПри выполнении данного BAT-файла в папке D:RegistryBackup будут созданы пять REG-файлов, соответствующих основным разделам реестра. Затем можно без труда модифицировать файл, чтобы экспортировать только нужные разделы реестра. Чтобы выполнить обратную операцию восстановления реестра из сохраненных файлов, нужно воспользоваться командой REG IMPORT следующим образом (файл regrestore.bat):
Листинг 5.2. Восстановление реестра из REG-файлов при помощи BAT-файла
CD
CD D:RegistryBackup
REG IMPORT D:RegistryBackuphklm.reg
REG IMPORT D:RegistryBackuphkcu.reg
REG IMPORT D:RegistryBackuphkcr.reg
REG IMPORT D:RegistryBackuphkcc.reg
REG IMPORT D:RegistryBackuphku.reg ...ВНИМАНИЕ
Начиная с Windows XP, рекомендуется использовать файлы CMD вместо BAT-файлов. Нужно просто поменять расширение у ваших BAT-файлов.
...ПРИМЕЧАНИЕ: ДОПОЛНИТЕЛЬНЫЕ ФАЙЛЫ
В папке Ch5 вы можете найти файлы regbackup bat и regbackup cmd.
PowerShell
Все предыдущие сценарии с использованием BAT-, CMD-, WSH-файлов можно считать устаревшими. Компания Microsoft настоятельно рекомендует применять новую технологию Windows PowerShell для автоматизации работ, включая и взаимодействие с реестром. Давайте рассмотрим несколько примеров, позволяющих изучить возможности PowerShell.
Для начала запустим оболочку PowerShell. Для этого наберем в строке поиска меню Пуск текст powershell и нажмем Enter , выделив строку Windows PowerShell .
Работа с реестром в PowerShell схожа с работой с файлами на диске. Например, для перехода на ветвь HKEY_CURRENT_USER используется команда cd (также можно использовать команды set-location или ее псевдоним sl ): сd hkcu:
dir
На рис. 5.17 вы можете видеть выполнение этих команд в Windows PowerShell.
Рис. 5.17. Работа с реестром в PowerShell
В данном примере мы перешли в раздел HKEY_CURRENT_USER и вывели его подразделы.
Также мы можем загрузить содержимое всей ветви реестра HKEY_CURRENT_USER в переменную reg:
sl hkcu:
$reg =-gci. –rec –ea silentlycontinue
Здесь используется псевдоним gci для команды get-childitem . Первый аргумент этой команды «.» (точка) указывает на то, что мы хотим получить содержимое текущей ветви реестра – HKEY_CURRENT_USER . Второй аргумент является сокращением от опции –recurse и указывает на то, что нужно рекурсивно пройтись по всем подразделам текущей ветви реестра. И наконец, третий аргумент – – ea silentlycontinue – указывает на то, что команда должна продолжать выполняться даже в случае возникновения ошибок, связанных с недостатком прав доступа к определенным разделам реестра. Теперь мы можем сохранить значение переменной в файле или использовать где-то в сценарии дальше.
Создание нового раздела
Для создания нового раздела используется команда NewItem . Мы уже создавали раздел Test . Давайте теперь создадим раздел Test2:
cd hkcu:
New-Item HKCU:SoftwareTest2
Удаление раздела
Удалить раздел из реестра тоже очень просто при помощи команды Remove-Item:
Remove-Item HKCU:SoftwareTest2
Переименование раздела
Переименовать раздел можно с помощью команды Rename-Item . В следующем примеры мы снова создаем раздел Test2, а затем сразу его переименовываем в TestPowerShell:
New-Item HKCU:SoftwareTest2
Rename-Item HKCU:SoftwareTest2 TestPowerShell
Добавление параметров
Итак, мы научились создавать раздел, и теперь самое время узнать, как добавлять в раздел новые параметры. Давайте добавим в созданный нами раздел TestPowerShell строковый параметр CatName со значением Барсик .
New-ItemProperty HKCU:SoftwareTestPowerShell -Name CatName -PropertyType string -Value «Барсик»
На рис. 5.18 вы можете видеть результат выполнения команд и состояние реестра.Рис. 5.18. Результат выполнения команд и реестр
Давайте усложним пример – добавим в наш раздел еще один параметр типа DWORD и выведем все значения параметров:
#-Добавляем еще один параметр – CatAge типа DWORD и значением 8
New ItemProperty -path HKCU:SoftwareTestPowerShell -name CatAge -propertyType DWord -value8
#-Получаем список всех параметров
Get-ItemProperty HKCU:SoftwareTestPowerShell
Переименование параметров, изменение значений
Продолжаем мучить реестр. Теперь мы поменяем значение одного из параметров, затем переименуем этот параметр и вдобавок удалим другой параметр.
#-Изменим значение параметра CatAge на 7
Set-ItemProperty-HKCU:SoftwareTestPowerShell -name CatAge -value 7
#-Изменим название параметра CatAge на ВозрастКота
Rename-ItemProperty – path-HKCU:SoftwareTestPowerShell -name CatAge -newname-ВозрастКота
#-Удаляем CatName
Remove-ItemProperty HKCU:SoftwareTestPowerShell -name CatName
Название команд и комментарии помогут вам разобраться с примерами.Программируем на C#
Теперь рассмотрим несколько примеров работы с реестром при помощи языка C#. В состав .NET Framework входит класс Microsoft.Win32.Registry, предназначенный для работы с реестром. При помощи данного класса можно написать очень навороченные твикеры.
Мы обойдемся самым общим примером, чтобы понять основы взаимодействия с реестром. Мы знаем, что для изменения заголовка браузера Internet Explorer используется параметр Windows Title. Вот как выглядит код для изменения заголовка браузера программным путем: using Microsoft.Win32;
private void ChangeIETitle(string Title)
{
RegistryKey newIETitle = Registry.CurrentUser.OpenSubKey(
@"SOFTWAREMicrosoftInternet ExplorerMain", true);
newIETitle.SetValue(«Window Title», Title);
newIETitle.Close();
}
private void butChangeTitleIE_Click(object sender, EventArgs e)
{
ChangeIETitle(«Мой суперзаголовок»);
MessageBox.Show(«Закройте IE и запустите его снова»);
}
Рис. 5.19. Internet Explorer с новым заголовком
После повторного запуска браузера вы увидите, что в заголовке окна теперь отображается установленная вами строка, в моем случае выводится строка Мой суперзаголовок (рис. 5.19).
Виртуализация
В предыдущем примере мы записали новое значение реестра в раздел HKEY_CURRENT_USER . Эта разрешенная область для записи новых значений. А что произойдет, если мы попытаемся записать новое значение в раздел HKEY_LOCAL_MACHINE ? В Windows 7 запрещено записывать в данный раздел обычным пользователям и стандартным программам. Давайте напишем простой пример для проверки данного запрета:
private void AddNewValue()
{
RegistryKey myKey = Registry.LocalMachine.CreateSubKey(
«SOFTWARE\Test\Preferences»,
RegistryKeyPermissionCheck.Default);
try
{
myKey.SetValue(«MyKey», «MyValue»);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
myKey.Close();
} }
private void butVirtualization_Click(object sender, EventArgs e)
{
AddNewValue();
MessageBox.Show(«Новые значения добавлены в реестр»);
}
Если вы запустите пример, то получите сообщение об ошибке. Здесь сработал режим UAC, который вызвал столько недовольных разговоров при выпуске Windows Vista. Большинство пользователей привыкло работать под правами Администратора, что наносило большой вред безопасности системы. Microsoft решила как-то бороться с данным явлением и предложила новую модель UAC, которая получила дальнейшее развитие и в Windows 7. Теперь при попытке обращения к запрещенным областям системы на экране появляется предупреждающее сообщение (рис. 5.20).Рис. 5.20. Сообщение об ошибке при попытке записи в реестр

