Удаленная работа с реестром windows

Удаленный реестр Windows.

Реестр Windows нередко становится причиной неправильной работы отдельных программ или всей операционной системы в целом. Соответственно, для восстановления работы компьютера или ноутбука нередко приходится «в ручном режиме» править реестр: удалять, изменять или добавлять записи. Если специалист, обслуживающий компьютер, имеет непосредственный физический доступ к последнему, то вопроса, рассматриваемого в статье, возникнуть не должно, однако… Часто бывает, что обслуживание происходит удалённо и необходимо получить удалённый доступ к реестру.

Внести изменения в удалённый реестр Windows можно при условии, что компьютер, в который необходимо внести корректировки, позволяет работать со своим системным реестром по сети. Для этого должна быть запущена соответствующая служба Windows – она уже встроена в ОС разработчиком (фирмой Microsoft). В «форточках» версии «XP» она активирована по умолчанию, а в более новых – необходима ручная её активация. Называется служба просто – «Удалённый реестр». Включить её можно через контекстное меню ярлыка «Мой компьютер» — «Управление» — «Службы и приложения» — «Службы». Или запуск прямо из командной строки: «net start RemoteRegistry». Конечно, для активации удалённого доступа необходимо иметь права локального администратора.

Подключить удалённый реестр Windows можно через встроенный в ОС редактор. Для этого запустите редактор реестра («regedit» из командной строки) и меню «Файл» выберите «Подключить сетевой реестр». В появившемся окне указать имя или адрес компьютера, к которому необходимо подключиться (и данные для авторизации на удалённой системе). После этого в левой части окна редактора под узлами Вашего локального реестра появится 2 ветки сетевого реестра с удалённой машины: «HKEY_LOCAL_MACHINE» и «HKEY_USERS». По факту Вы получаете доступ ко всему реестру, просто остальные ветви – это ссылки на подразделы в указанных ветках.

Недавно мы рассматривали ситуацию, когда был виден только чёрный экран и курсор при запуске Windows. Решением проблемы в инструкции предлагалась именно проверка записей в системном реестре операционной системы. Следуя вышеприведённому описанию можно восстановить работу Windows без непосредственного доступа к проблемному компьютеру. Однако следует быть внимательным и следить за тем – в чей реестр Вы вносите изменения – в свой или удалённой машины! На скриншоте (в строке состояния) видно, что сейчас активна ветка удалённого реестра с компьютера с сетевым именем «Gl-ing».

Удаленный доступ к реестру Windows

Начиная с Windows 2000, в ОС Microsoft поддерживается технология удаленного доступа к реестру с помощью службы Remote Registry. Она позволяет удаленному пользователю или администратору подключится к ПК, и удаленно просматривать или изменять параметры его реестра. Хотя это и очень удобная функция для удаленного администрирования ПК без необходимости локального входа в систему, она является потенциальной угрозой безопасности.

Говоря простыми словами, если эта служба не нужна для неких целей управления, то она должна быть отключена.

Чтобы отключить эту службу,

1) Нажмите Пуск — Выполнить и введите «services.msc»

2) На правой панели щелкните правой кнопкой мыши по службе «Remote Registry » и выберите Properties.

3) Выберите тип запуска «Disabled» и нажмите кнопку «Stop», если сервис запущен.

4) Нажмите кнопку Применить и ОК.

В случае если ваш ПК входит в состав корпоративной сети и состоит в домене Active Directory, возникает необходимость предоставления определенной группе лиц (например, администраторам и Helpdesk) прав на удаленное подключение к реестру. В этом случае подойдет альтернативный вариант, позволяющий выборочно ограничить доступ к реестру:

Читайте также:  Средства просмотра событий windows

1) Нажмите кнопку Пуск — Выполнить.

2) Наберите «regedit» и нажмите ввод.

3) Перейдите в раздел HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurePipeServers\

4) Выберите параметр «winreg» и нажмите кнопку “Изменить”, выберите “Permissions”(Разрешения)

5) Добавьте соответствующих пользователей или групп, и назначите им права ( «Read» или «Full control».

6) Нажмите кнопку ОК.

Эта процедура позволит ограничить удаленный доступ к реестру на вашем ПК.

Удаленная работа с реестром windows

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами поговорили про замечательную утилиту Remote Desktop Connection Manager, которая должна быть в инструментарии любого системного администратора, я в будущем планирую сделать отдельную статью про такого рода инструментарий. Сегодня я вам хочу показать еще один лайвхак, который поможет в вашей практике выходить из ряда неприятных ситуаций, и речь пойдет про удаленный реестр windows и подключение к нему.

Для чего может потребоваться удаленно подключиться к реестру Windows другого компьютера

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

Недавно я вам рассказывал ситуацию, что мне нужно было удаленно включить на одном сервере Windows Server 2019 службу удаленного рабочего стола, чтобы я мог подключиться на него по RDP, и благодаря изменению ключей через удаленное подключение к реестру сервера (Сетевому реестру), задача была выполнена за пару минут. Так же у вас могут быть ситуации:

  • Вам необходимо посмотреть появился ли нужный ключ реестра после применения групповой политики, которую вы сделали
  • Добавить права для определенной группы, например сделать их администраторами или разрешить им подключение через Windows ассистента
  • Отключить брандмауэр
  • Удалить сбойный ключ реестра
  • Изменить порт подключения RDP
  • Многое другое, практически любое изменение настроек, главное знать, где искать

Алгоритм подключения к удаленному реестру Windows

Предположим, что у меня в моем домене Active Directory есть контроллер домена с которого я попытаюсь подключить к реестру сервера RDCB01, где посмотрю ключи реестра и что-нибудь поправлю. Что делаем, нажимаем одновременно сочетание клавиш WIN+R.

У вас откроется окно «Выполнить», где вы должны ввести regedit.

В итоге у вас откроется окно редактора локального реестра Windows.

Теперь, чтобы нам подключиться к реестру другого компьютера или сервера, вам необходимо выбрать меню файл, где необходимо найти пункт «Подключить сетевой реестр«

В поле «Введите имена выбираемых объектов», укажите DNS имя вашего удаленного сервера, в моем примере это сервер с Windows Server 2019 под именем RDCB01 и нажимаем проверить имена, если все хорошо, то под именем появится подчеркивание, что означает о выявлении сервера с таким именем. Нажимаем ок и пробуем подключить сетевой реестр Windows.

В момент подключения, если на стороне удаленного сервера есть сетевые проблемы или брандмауэр, то вы можете увидеть вот такое предупреждение:

Если вы точно знаете, что удаленный компьютер должен отвечать на сетевые пакеты PING, то попробуем проверить его доступность, для этого откройте командную строку и введите:

Если вы видите, что «Превышен интервал ожидания для запроса», то это означает, что сервер не доступен, при условии, что как я и говорил пакеты PING не лочатся сетевым экраном. Если у вас видится время ответа TTL, то это означает, что сервер по сети доступен и с ним можно взаимодействовать, чтобы включить удаленно нужную службу

Как нам писала ошибка выше, на обоих компьютерах должна быть запущена служба удаленного реестра. В командной строке вы можете проверить состояние данной службы для этого введите:

Читайте также:  Начало работы windows 10 что это

Как видим в моем примере у нее статус STOPPED

То же самое можно посмотреть и через PowerShell

запустим у себя локально службу удаленного реестра.

Так же можно тут же проверить доступность службы на удаленном компьютере:

Если ваше обращение блокирует на той стороне брандмауэр, то вы увидите вот такое сообщение, но не спешите расстраиваться, вы либо можете его отключить локально, или если есть административные права на удаленную систему, то мы это сделаем удаленно, об этом ниже.

Теперь попробуем запустить данную службу на удаленном сервере RDCB01, для этого откройте окно выполнить и введите в нем команду services.msc и нажмите Enter, у вас откроется оснастка службы.

Щелкаем по службам и из контекстного меню выбираем пункт «Подключиться к другому компьютеру»

Указываем имя компьютера и нажимаем «OK».

Если брандмауэр не блокирует подключение, то вы увидите успешное выполнение операции, если блокирует, то увидите ошибку:

Причин у ошибки «1722: Сервер RPC недоступен» несколько:

  • На удаленном компьютере не запущены две службы «Модуль запуска процессов DCOM-сервера» и «Удаленный вызов процедур (RPC)«. Хочу отметить, что данные службы запускаются автоматически при старте системы
  • Вас блокирует брандмауэр, он не пропускает удаленное управление службой. Этот набор состоит из трех служб:
  1. Удаленное управление службой (RPC-EPMAP)
  2. Удаленное управление службой (Именованные каналы)
  3. Удаленное управление службой (RPC)

Давайте мы удаленно включим данные правила, напоминаю, что для этого у вас должны быть права локального администратора на удаленном компьютере, понятно, что вы можете включить их локально, но машинка может быть в другом городе или стране. На помощь нам приходит в очередной раз Марк Руссинович и его набор утилит sysinternals. Из данного набора нам потребуется утилита PSTools, она позволит и удаленно запустить службу и при необходимости добавить правило в брандмауэр.

Загружаете данный архив с утилитами, распаковываете его в нужное вам место. Теперь зажав клавишу Shift щелкните правой кнопкой мыши по папке с утилитами и из контекстного меню выберите пункт «Открыть окно команд».

Введите вот такую команду:

Мой пример: PsExec.exe \\rdbc01 -u root\Администратор -p пароль cmd

Я наблюдаю успешное подключение к командной строке на удаленном компьютере RDCB01, там сейчас запущена служба PsExec.exe. Теперь на удаленной системе я могу делать все, что мне нужно.

Вы можете на удаленном компьютере отключить брандмауэр на время, чтобы произвести настройки служб:

потом обратно включить netsh advfirewall set allprofiles state on (Обязательно включите после настроек)

Там будет вот так:

Далее я вам советую включить на брандмауэре в разделе «Разрешение взаимодействия с приложениями или компонентом в брандмауэре», набор правил «Удаленное управление службой», это даст возможность цепляться к оснастке «Службы» на другом компьютере

Далее подключаетесь в оснастке службы к нужному хосту и запускаем службу «Удаленный реестр»

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

Далее запустим службу sc start RemoteRegistry

Как видим служба RemoteRegistry успешно запущена, при чем удаленно.

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

Управление реестром Windows с помощью PowerShell

PowerShell еще с самой первой версии предоставляет администратору большой набор инструментов для взаимодействия с системным реестром Windows. При желании, все типовые операции по работе с реестром можно выполнять не из интерфейса старого-доброго Regedit, или утилиты reg.exe, а из командой строки PowerShell. А в различных скриптах и сценариях он бывает вообще незаменим. В этой статье мы рассмотрим, как с помощью PowerShell создавать, редактировать, удалять ключи и параметры реестра Windows, выполнять поиск и подключатся к реестру на удаленном компьютере.

Читайте также:  Rdp server для windows home

Работа с реестром системы в PowerShell похожа на работу с обычными файлами на локальном диске.

Выведем список доступных дисков:

Как вы видите, встроенный провайдер позволяет получить доступ к содержимому двух веток реестра: HKEY_CURRENT_USER (HKCU) и HKEY_LOCAL_MACHINE (HKLM). Ветви реестра адресуются, аналогично дискам (HKLM:\ и HKCU:\). К примеру, чтобы перейти в корень ветки HKLM выполните:

Перейдти к конкретной ветке реестра (к примеру, отвечающей за настройки автоматического обновления драйверов) можно с помощью команды Set-Location (короткий псевдоним sl)

Set-Location -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching

Выведем содержимое ветки:

Откроем эту же ветвь в редакторе реестра. Как вы видите, последняя команда вывела только информацию о вложенных ветвях, но не о параметрах текущей ветки.

Дело в том, что с точки зрения PowerShell ветвь реестра (ключ) является аналогом файла, а параметры, хранящиеся в данном ключе реестра – свойствами этого файла.

Поэтому, чтобы получить параметрам, находящимся в данной ветке, воспользуемся командлетом Get-Item:

Get-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching

Как вы видите, ключ DriverSearching имеет только один параметр – SearchOrderConfig со значением 0.

Чтобы обратится к конкретному параметру ключа, используется командлет Get-ItemProperty. К примеру, присвоим содержимое ветки некой переменной и получим значение конкретного параметра:

$DriverUpdate = Get-ItemProperty –Path “HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching”
$DriverUpdate.SearchOrderConfig

Мы получили, что значение параметра SearchOrderConfig равно 1.

Как изменить значение параметра реестра

Чтобы изменить значение данного параметра, воспользуемся командлетом Set-ItemProperty:

Set-ItemProperty -Path ‘HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching’ -Name SearchOrderConfig -Value 0

Проверим, что значение изменилось:

Get-ItemProperty -Path ‘HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching’ -Name SearchOrderConfig

Как создать новый раздел (ключ) или параметр реестра

Для добавления новой ветки реестра, воспользуемся командой New-Item. Создадим новую ветку с именем NewKey:

$HKCU_Desktop= «HKCU:\Control Panel\Desktop»
New-Item –Path $HKCU_Desktop –Name NewKey

Для созданной ветки добавим новый строковый параметр с именем SuperParamString и значением file_name.txt :

New-ItemProperty -Path $HKCU_Desktop\NewKey -Name «SuperParamString» -Value ”file_name.txt” -PropertyType «String»

Убедитесь, что в реестре появился новый ключ и параметр.

Удаление раздела или параметра реестра

Удалим созданный ранее параметр SuperParamString:

$HKCU_Desktop= «HKCU:\Control Panel\Desktop»
Remove-ItemProperty –Path $HKCU_Desktop\NewKey –Name «SuperParamString»

А затем удалим целиком ветку:

Remove-Item –Path $HKCU_Desktop\NewKey –Recurse

Для удаления всех элементов в ветке, но не самого раздела, команда будет такой:

Remove-Item –Path $HKCU_Desktop\NewKey\* –Recurse

Как переименовать ключ или параметр

Для переименования параметра воспользуйтесь командой:

Rename-ItemProperty –path ‘HKCU:\Control Panel\Desktop\NewKey’ –name «SuperParamString» –newname “OldParamString”

Аналогично можно переименовать ветку реестра:

Rename-Item -path ‘HKCU:\Control Panel\Desktop\NewKey’ OldKey

Поиск в реестре с помощью PowerShell

PowerShell позволяет также выполнять поиск по реестру. Следующий скрипт выполняет поиск по ветке HKCU:\Control Panel\Desktop параметров, в имени которых содержится ключ dpi.

$Path = (Get-ItemProperty ‘HKCU:\Control Panel\Desktop’)
$Path.PSObject.Properties | ForEach-Object <
If($_.Name -like ‘*dpi*’)<
Write-Host $_.Name ‘ = ‘ $_.Value
>
>

Удаленный доступ к реестру с помощью PowerShell

PowerShell позволяеь получить доступ к реестру удаленного компьютера. К удаленном компьютеру можно подключится как через WinRM (Invoke-Command или Enter-PSSession):

Invoke-Command –ComputerName srv-fs1 –ScriptBlock < Get-ItemProperty -Path 'HKLM:\System\Setup' -Name WorkingDirectory>

Или через подключение к удаленному реестру (служба RemoteRegistry должна быть включена)

$Server = «srv-fs1»
$Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(‘LocalMachine’, $Server)
$RegKey= $Reg.OpenSubKey(«System\Setup»)
$RegValue = $RegKey.GetValue(«WorkingDirectory»)

Итак, мы рассмотрели типовые примеры использования PowerShell для работы с системным реестром Windows. Как вы видите, ничего сложного.

У меня вопрос таков:

Вношу изменения в «Default Domain Controllers Policy»

Set-GPRegistryValue -Name «Default Domain Controllers Policy» -Key «HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\KDC\Parameters» -ValueName «EnableCbacAndArmor» -Type DWord -Value 1
Set-GPRegistryValue -Name «Default Domain Controllers Policy» -Key «HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\KDC\Parameters» -ValueName «CbacAndArmorLeve» -Type DWord -Value 1

Создал один объект групповой политики «DAC Policy» через PS

New-GPO -Name «DAC policy» | New-GPLink -Target «dc=test,dc=com» -LinkEnabled Yes | Set-GPPermission -TargetType User -TargetName «Admin» -PermissionLevel GpoEditDeleteModifySecurity
Set-GPRegistryValue -Name «DAC Policy» -Key «HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\KDC\Parameters» -ValueName «CbacAndArmorLeve» -Type DWord -Value 1

Следующим шагом хочу изменить параметр «DAC Policy», который отвечает за присоединение к этой политике доступных централизованных правил доступа, но в реестре не могу найти ветку

Оцените статью