Текст книги "Реестр Windows 7"
Автор книги: Александр Климов
Жанр: ОС и Сети, Компьютеры
сообщить о неприемлемом содержимом
Текущая страница: 10 (всего у книги 11 страниц)
Программа 7Tweak (http://www.daoisoft.com/) – это твикер (рис. 5.12), содержащий, как это обычно бывает, некоторые дополнительные функции. В частности, она имеет встроенную систему напоминаний, которая периодически предлагает вам сделать резервную копию реестра, выполнить дефрагментацию диска, создать точку восстановления системы.
Рис. 5.12. 7Tweak
Кроме того, программа умеет управлять подсистемой UAC (как правило, опытные пользователи отключают ее для того, чтобы избавиться от постоянных напоминаний, хотя это и понижает уровень защиты системы).
Интересно реализовано средство управления визуальными эффектами (они могут сказаться на производительности системы, особенно на не самых быстрых компьютерах). Так, программа позволяет выбрать один из предустановленных наборов параметров (Optimizations ► Visual Effects), названных None (нет эффектов), Few (мало), Medium (среднее количество), Many (много), All visual themes enabled (включены все визуальные темы) (рис. 5.13).
Рис. 5.13. 7Tweak, настройка визуальных эффектов
Еще одна приятная особенность программы заключается в том, что при попытке выхода из нее она предлагает пользователю выбрать вариант выхода (рис. 5.14).
Рис. 5.14. Варианты действий при закрытии 7Tweak
Особого внимания заслуживает вариант Discard changes and close 7Tweak (Отменить изменения и закрыть 7Tweak).
Если вы настраивали что-то в программе и не уверены в правильности настроек, выбрав этот вариант, вы не внесете в систему изменений. Это очень ценный вариант выхода из твикера. Остальные варианты сохраняют изменения с возможностью автоматического перезапуска системы.
WinTuning 7Пожалуй, главная отличительная особенность программы WinTuning 7 (http://www.wintuning.ru) заключается в ее русскоязычности (рис. 5.15).
Рис. 5.15. WinTuning 7
При запуске программа предлагает создать точку восстановления, что, безусловно, правильно. Дальше следует окно, в котором нужно сделать некоторые начальные настройки.
В частности, здесь можно выбрать режим работы программы – Только для активного пользователя или Для всех пользователей. Здесь же можно задать пароль доступа к программе – это тоже очень ценная возможность.
Программа поддерживает модификацию множества параметров системы. Несмотря на объемность, она очень легка в освоении и в применении. В целом, набор настроек вполне стандартен, хотя здесь есть некоторые приятные мелочи вроде возможности изменить стартовый экран Windows.
Tweak-7, Little Tweaker, XdN TweakerПРИМЕЧАНИЕ
WinTuning 7 может заинтересовать системных администраторов крупных сетей – она поддерживает удаленную оптимизацию компьютеров. Существует корпоративная версия программы, которая может устанавливать связь с клиентскими модулями, установленными на компьютеры, которые нужно оптимизировать удаленно. Клиентская часть программы не имеет интерфейса, работа с ней осуществляется посредством корпоративной версии.
Вы уже успели убедиться в том, что твикеры обычно различаются лишь реализацией деталей и отдельными дополнительными возможностями. Однако эти мелочи обычно играют решающее значение в выборе программы. Нельзя не отметить и тот факт, что часть оптимизируемых параметров системы встречается практически во всех твикерах, но обычно каждый содержит что-то особенно интересное. Если вы испытали программы, о которых мы писали выше, то вы, во-первых, получили неплохое представление о современных твикерах, а во-вторых – готовы знакомиться с ними дальше. Поэтому ниже мы приводим список еще нескольких твикеров. Вполне возможно, что один из них вам понравится.
Tweak-7, http://www.totalidea.com.
Little Tweaker, http://leelusoft.blogspot.com/2009/05/windows-7-little-tweaker.html.
XdN Tweaker, http://xenomorph.net.
Редактор локальной групповой политики
Групповые политики – это параметры, управляющие работой системы. С их помощью можно настраивать интерфейс Windows 7, менять права доступа к различным программам и настройкам, определять параметры безопасности и так далее.
Как вы уже догадались, редактор политики в своей работе обращается к нужным параметрам реестра и модифицирует их в соответствии с пожеланиями пользователя.
По сути дела, редактор локальной групповой политики является мощным системным твикером. Он очень удобен в работе – прежде чем применить какую-нибудь настройку, можно сначала прочитать ее описание и решить, подходит она вам или нет.
ПРИМЕЧАНИЕ
Редактор групповых политик входит в состав старших версий Windows 7.
Чтобы запустить Редактор локальной групповой политики, в поисковой строке кнопки Пуск наберите команду: gpedit.msc.
Запустите найденный файл, чтобы открыть окно оснастки Local Group Policy Editor (рис. 5.16).
Интерфейс ее похож на знакомые нам программы, такие как Проводник или Редактор реестра, поэтому трудностей с ней возникать не должно. В левой части программы находятся основные узлы, которые можно разворачивать, чтобы выбрать необходимый раздел. Каждый раздел может содержать несколько политик. Двойным щелчком выбирается нужная политика и задается желаемый ее вариант:
► Не задано.
► Включить.
► Отключить.
Рис. 5.16. Запуск Редактора локальной политики
Чтобы понять, насколько это мощный инструмент в руках опытного пользователя, я приведу несколько параметров, которые можно настроить с помощью редактора, а также их аналоги в реестре.
Групповые политикиВо второй главе говорилось, как отключить всплывающие уведомления в области уведомлений на панели задач при помощи параметра TaskbarNoNotification. В Редакторе политик нужно раскрыть узлы Конфигурация пользователя ► Административные шаблоны ► Меню «Пуск» и панель задач. Далее нужно найти политику Отключить всплывающие уведомления объявлений компонентов.
Удаление файлов и папокПри удалении файлов или папок в Windows 7 всегда появляется диалоговое окно с предложением подтвердить удаление. Мы можем отключить данное сообщение в свойствах корзины. Но для неопытных пользователей неосторожные и неумелые действия с файлами и папками могут привести к нежелательным последствиям. Поэтому рекомендуется отключить возможность удаления файлов без предупреждения. Лучше лишний раз переспросить пользователя, чтобы уберечься от случайных ошибок. Мы уже знаем, что за данную настройку отвечает параметр ConfirmFileDelete. В Редакторе политик откройте узлы Конфигурация пользователя ► Административные шаблоны ► Компоненты Windows ► Проводник Windows и выберите политику Запрашивать подтверждение при удалении файлов.
А чтобы вообще заблокировать диалоговое окно Свойства у Корзины, не давая пользователю что-либо менять в настройках, нужно выбрать политику Убрать пункт «Свойства» из контекстного меню Корзины в разделе Конфигурация пользователя ► Административные шаблоны ► Рабочий стол.
Политики для области уведомленийДля настройки области уведомлений используется раздел Конфигурация пользователя ► Административные шаблоны ► Меню «Пуск» и панель задач.
В указанном разделе выберите политику Скрыть область уведомлений. Аналогом данной политики является параметр NoTrayltemsDisplay.
В этом же разделе выберите политику Удалить часы из системной области уведомлений. Данной политике соответствует параметр реестра HideClock.
Настройка политик для Панели управленияС помощью Редактора локальной групповой политики можно также скрывать отдельные значки в Панели управления. Перейдите в раздел Конфигурация пользователя ► Административные шаблоны ► Панель управления и найдите политику Скрыть указанные элементы панели управления. Далее надо выбрать переключатель Включить, чтобы сделать доступной кнопку Показать... для вызова диалогового окна Вывод содержания. Осталось ввести имена значков, которые следует скрыть. Напомню, что в реестре можно добиться того же результата с помощью параметра DisallowCpl.
Политика Показать только заданные элементы панели управления в том же разделе позволяет в Панели управления оставить только нужные значки, чтобы не смущать неопытных пользователей. Работа с ней схожа с настройкой из предыдущего примера. Данная политика соответствует параметру RestrictCpl, описанному во второй главе.
Для блокировки редактора реестра мы использовали параметр DisableRegistryTools. Аналогичного результата можно добиться через политику Запретить доступ к средствам редактирования реестра в разделе Конфигурация пользователя ► Административные шаблоны ► Система.
В четвертой главе мы рассказывали, как можно поменять картинку для экрана приветствия при помощи реестра (параметр UseOEMBackground). Также можно добиться этого эффекта при помощи Редактора групповых политик gpedit. msc. Запустите Редактор и последовательно раз верните узлы Конфигурация компьютера ► Административные шаблоны ► Система ► Вход в систему. В правой части окна откройте параметр Всегда использовать настраиваемый вход в систему. Установите значение параметра равным Включить. Теперь вам осталось только подготовить файл.
При нажатии клавиш Ctrl+Alt+Del открывается диалоговое окно безопасности Windows с кнопками Блокировать компьютер, Сменить пользователя, Выйти из системы, Сменить пароль и Запустить диспетчер задач. В четвертой главе я уже рассказывал, как эти кнопки (кроме кнопки Сменить пользователя) можно скрыть через реестр. Теперь посмотрим, как данную операцию можно проделать при помощи групповой политики. Подобная настройка может пригодиться, если вы не хотите, чтобы кнопками пользовались другие пользователи. Для этого перейдите в раздел Конфигурация пользователя ► Административные шаблоны ► Система ► Варианты действий после нажатия Ctrl+Alt+Del и включите следующие политики:
► Запретить изменение пароля – скрывает кнопку Сменить пароль. Соответствует параметру DisableChangePassword.
► Запретить блокировку компьютера – скрывает кнопку Блокировать компьютер. Соответствует параметру DisableLockWorkstation.
► Удалить Диспетчер задач – скрывает кнопку Запустить диспетчер задач. Соответствует параметру DisableTaskMgr.
► Запретить завершение сеанса – скрывает кнопку Выйти из системы. Соответствует параметру NoLogoff.
Чтобы изменить количество элементов в списке Недавние документы в меню «Пуск», нужно в разделе Конфигурация пользователя ► Административные шаблоны ► Компоненты Windows ► Проводник Windows выбрать политику Максимальная длина списка недавних документов. Включите сначала данную политику а затем укажите в окошке счетчика диалогового окна Максимальное число недавних документов нужное число. В реестре для данной задачи используется параметр MaxRecentDocs.
Связь между политиками и реестромКак вы уже поняли, Редактор локальной групповой политики – это мощный инструмент в руках системного администратора или опытного пользователя. Повторюсь, что Редактор не доступен в домашних версиях Windows 7. Поэтому, применяя какую-либо политику в более старших версиях Windows, поневоле задаешь себе вопрос «А какой параметр в реестре меняет данная политика, чтобы использовать его на другой машине?» Конечно, можно пойти сложным путем и мониторить изменения в реестре с помощью специальных утилит. К счастью, можно решить задачу более простым путем.
На сайте Microsoft можно скачать файл в виде документа Excel, в котором указаны практически все политики и соответствующие им параметры в реестре. Этот очень полезный документ доступен на странице Group Policy Settings Reference for Windows and Windows Server по адресу http://www.microsoft.com/downloads/details.aspx?FamilyID=18c90c80-8b0a-4906-a4f5-ff24cc2030fb&-displaylang=en. На ней представлены описания для разных операционных систем. Вам остается выбрать документ для Windows 7 и скачать его на свой компьютер.
Реестр и программирование
Ранее мы в основном вручную вносили изменения в реестр для различных настроек. Но это не всегда удобно. Особенно это хорошо известно системным администраторам и программистам.
Каждый день открывать редактор реестра на десятках компьютерах, чтобы поменять один параметр, согласитесь, хлопотно. Для автоматизации подобных работ используются сценарии и собственные программы.
BAT-файлы сценариевBAT-файлы известны очень давно и по-прежнему используются для автоматизации задач на многих предприятиях опытными системными администраторами. Рассмотрим некоторые приемы работы с реестром. Для примеров удобнее всего использовать утилиту командной строки REG.EXE, о которой говорилось в первой главе. Предположим, мы хотим сделать резервную копию всего реестра. Воспользуемся для этой задачи командой REG-EXPORT и создадим файл regbackup.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. Сообщение об ошибке при попытке записи в реестр
На этом оборона системы не заканчивается. Давайте временно отключим контроль UAC, чтобы все-таки сделать запись в выбранном разделе, тем более что многие пользователи так и делают (и совершенно зря). Чтобы не подвергать свой компьютер опасности, мы отключим контроль UAC по-умному. Зайдите в меню Project | Project Properties… и на вкладке Application в области Resources установите у выпадающего списка Manifest значение Create applications without a manifest.Запустите программу снова, и вы уже не получите сообщение об ошибке. Казалось бы, мы решили свою проблему. Но не торопитесь с выводами. Запустите редактор реестра и попробуйте найти раздел Test в разделе HKEY_LOCAL_MACHINESOFTWARETest. Как ни странно, вы не найдете там вашего раздела. Но почему же программа нормально отработала и не сообщила об ошибке. Все очень просто. На этот раз сработала новая технология Microsoft – виртуализация. Я не стану подробнее останавливаться на этой теме (интересующиеся могут найти документацию самостоятельно), скажу только, что при попытке записать в запрещенную область реестра при отключенным UAC, ваши записи попадают в раздел HKEY_CURRENT_USERSoftwareClassesVirtualStoreMACHINESOFTWARE. Интересно отметить, что программа при этом уверена, что запись производится в нужный раздел. Но на самом деле вы не должны прибегать к подобному трюку. Дело в том, что виртуализация была предложена на переходный период в целях совместимости. Разработчики должны пересмотреть свои программные продукты и внести необходимые изменения. В дальнейшем Microsoft планирует отказаться от виртуализации и заставить программистов писать безопасный код, который не будет наносить вред системе пользователя.
ПРИМЕЧАНИЕ: ДОПОЛНИТЕЛЬНЫЕ ФАЙЛЫ
В папке Ch5 вы можете найти файл ChangeIETitle zip, который содержит примеры о смене заголовка окна браузера и виртуализации.
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.