Все предыдущие сценарии с использованием 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:\Software\Test2
Удаление раздела
Удалить раздел из реестра тоже очень просто при помощи команды Remove-Item:
Remove-Item HKCU:\Software\Test2
Переименование раздела
Переименовать раздел можно с помощью команды Rename-Item. В следующем примеры мы снова создаем раздел Test2, а затем сразу его переименовываем в TestPowerShell:
New-Item HKCU:\Software\Test2
Rename-Item HKCU:\Software\Test2 TestPowerShell
Добавление параметров
Итак, мы научились создавать раздел, и теперь самое время узнать, как добавлять в раздел новые параметры. Давайте добавим в созданный нами раздел TestPowerShellстроковый параметр CatNameсо значением Барсик.
New-ItemProperty HKCU:\Software\TestPowerShell -Name CatName -PropertyType string -Value «Барсик»
На рис. 5.18 вы можете видеть результат выполнения команд и состояние реестра.
Рис. 5.18.Результат выполнения команд и реестр
Давайте усложним пример – добавим в наш раздел еще один параметр типа DWORDи выведем все значения параметров:
#-Добавляем еще один параметр – CatAge типа DWORD и значением 8
New ItemProperty -path HKCU:\Software\TestPowerShell -name CatAge -propertyType DWord -value8
#-Получаем список всех параметров
Get-ItemProperty HKCU:\Software\TestPowerShell
Переименование параметров, изменение значений
Продолжаем мучить реестр. Теперь мы поменяем значение одного из параметров, затем переименуем этот параметр и вдобавок удалим другой параметр.
#-Изменим значение параметра CatAge на 7
Set-ItemProperty-HKCU:\Software\TestPowerShell -name CatAge -value 7
#-Изменим название параметра CatAge на ВозрастКота
Rename-ItemProperty – path-HKCU:\Software\TestPowerShell -name CatAge -newname-ВозрастКота
#-Удаляем CatName
Remove-ItemProperty HKCU:\Software\TestPowerShell -name CatName
Название команд и комментарии помогут вам разобраться с примерами.
Теперь рассмотрим несколько примеров работы с реестром при помощи языка C#. В состав .NET Framework входит класс Microsoft.Win32.Registry, предназначенный для работы с реестром. При помощи данного класса можно написать очень навороченные твикеры.
Мы обойдемся самым общим примером, чтобы понять основы взаимодействия с реестром. Мы знаем, что для изменения заголовка браузера Internet Explorer используется параметр Windows Title. Вот как выглядит код для изменения заголовка браузера программным путем: using Microsoft.Win32;
private void ChangeIETitle(string Title)
{
RegistryKey newIETitle = Registry.CurrentUser.OpenSubKey(
@"SOFTWARE\Microsoft\Internet Explorer\Main", true);
Читать дальше
Конец ознакомительного отрывка
Купить книгу