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

Обновлено: 07.07.2024

В этой статье описывается, как удаленно редактировать реестр клиентского компьютера с хост-компьютера после использования удаленного восстановления для подключения хост-компьютера к клиентского компьютера.

Применяется к: Windows Server 2012 R2
Исходный номер КБ: 934958

Введение

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

Удаленное восстановление является компонентом Pak администратора Winternals.

Дополнительная информация

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

Для удаленного редактирования реестра клиентского компьютера должны быть верны следующие условия для клиентского компьютера и для хост-компьютера:

  • Компьютеры должны запускать ту же операционную систему.
  • На компьютерах должен быть установлен один и тот же пакет служб.

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

На хост-компьютере запустите редактор реестра.

Найдите следующий подтрий, а затем выберите его:
HKEY_LOCAL_MACHINE

В меню File выберите Load Hive.

Найдите и выберите ульй реестра на клиентский компьютер, который необходимо изменить.

Ульй реестра расположен в папке в качестве %Windir%\System32\Config одного из следующих файлов:

  • SAM представляет ульй Sam.
  • SECURITY представляет собой ульй Security.
  • SOFTWARE представляет ульй Software.
  • SYSTEM представляет ульй System.

Выберите Открыть.

В диалоговом окне Load Hive введите имя в поле Имя ключа для улья реестра, который необходимо изменить.

Изменение ключей реестра.

На шаге 7 можно изменить клавиши реестра, так как они теперь являются частью реестра хост-компьютера.

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

В этой статье я расскажу об удаленной службе реестра в Windows, которая позволяет напрямую подключаться к кустам реестра на другом компьютере с помощью regedit. Однако для того, чтобы это работало, есть несколько предпосылок.

Требования к удаленному реестру

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

Есть несколько вещей, которые должны быть на месте, прежде чем удаленный реестр будет работать:

  1. Компьютер, к которому вы подключаетесь, должен иметь имя пользователя и пароль. Пароль не может быть пустым.
  2. На обоих компьютерах необходимо включить удаленное администрирование в брандмауэре.
  3. На обоих компьютерах должна быть запущена служба удаленного реестра.



Теперь скопируйте и вставьте следующую команду в окно командной строки и нажмите Enter.
netsh firewall set service RemoteAdmin

Для третьего требования вам нужно нажать «Пуск», ввести сервисы, а затем просто «Сервисы» с двумя значками шестеренок.


Прокрутите вниз, пока не увидите Удаленный реестр, и он не должен работать по умолчанию. В Windows 10 он по умолчанию будет отключен. В Windows 7 вы можете просто щелкнуть по нему правой кнопкой мыши и выбрать «Пуск». В Windows 10 сначала нужно щелкнуть правой кнопкой мыши и выбрать «Свойства».


В диалоговом окне свойств вам нужно изменить тип запуска на что-то отличное от Disabled. Если вам нужно сделать это только один раз, измените его на Manual. Если вам часто требуется доступ к удаленному реестру, выберите «Автоматически».


После выбора типа запуска нажмите кнопку «Применить», после чего кнопка «Пуск» больше не будет выделена серым цветом. Нажмите Пуск, чтобы запустить службу удаленного реестра. Опять же, это должно быть сделано на обеих машинах.

Подключиться к удаленному реестру Hive

После того, как вы выполнили все шаги, описанные выше, вы можете попытаться подключиться к удаленному реестру. Нажмите Пуск, введите regedit, чтобы открыть редактор реестра. Затем нажмите «Файл», а затем «Подключить сетевой реестр».


Здесь вам нужно будет ввести NETBIOS-имя компьютера, к которому вы хотите подключиться.


Обратите внимание, что вы можете быстро выполнить поиск всех компьютеров в сети, нажав «Дополнительно», а затем «Найти сейчас». Если компьютер, к которому вы подключаетесь, имеет длинное имя, вам необходимо определить имя NETBIOS для этого компьютера. Вы можете сделать это, открыв командную строку на этом компьютере и введя nbtstat -n.


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



Как видно из приведенного выше, я подключился к машине с Windows 7 с помощью удаленного реестра с моего компьютера с Windows 10. Вы увидите только HKEY_LOCAL_MACHINE и HKEY_USERS при подключении к удаленному реестру. Если у вас есть какие-либо вопросы или возникнут проблемы, оставьте комментарий, и я постараюсь помочь. Наслаждайтесь!

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

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

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

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

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

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

WIN+R

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

окно выполнить regedit

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

Открытие локального реестра Windows

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

Подключить сетевой реестр Windows

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

Подключить сетевой реестр

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

Не удается подключиться к серверу. Убедитесь, что компьютер включен в сеть, на нем разрешено удаленное управление, и что на обоих компьютерах запущена служба удаленного реестра

не запущена служба удаленного реестра

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

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

Проверка компьютера через Ping

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

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

Запуск службы удаленного реестра

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

Просмотр статуса службы в powershell

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

Запуск службы Удаленный реестр

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

Get-Service -Name "RemoteRegistry" -ComputerName rdcb01

Удаленная проверка состояния служб

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

Оснастка службы Windows

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

Подключиться к другому компьютеру

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

Удаленное подключение к службам Windows

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

Не удалось открыть базу данных диспетчера управления службами на сервере. Ошибка 1722: Сервер RPC недоступен

Ошибка 1722 RPC

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

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

Удаленное управление службой RPC

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

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

Открыть cmd для нужной папки

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

PsExec.exe \\IP-адрес или DNS-имя компьютера -u domain\логин -p пароль cmd

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

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

Удаленное подключение к cmd

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

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

Отключение и включение брандмауэра в cmd

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

Удаленное отключение брандмауэра

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

Удаленное управление службой

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

Запуск удаленного реестра

Служба удаленный реестр

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

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

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

Удаленное включение службы

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

Поддержка исправной, корректной работы компьютеров и ПО обычных пользователей — рутина сотрудников техподдержки и/или администраторов. Если компания небольшая, а все находятся в одной-двух комнатах, обычно нетрудно подойти самому и решить проблему или проверить то, что нужно.

Но что делать, если компания большая, а пользователь находится на другой площадке/в другом городе/стране?

image

Один из классических инструментов для такой работы — удаленное подключение (с помощью RDP, ПО вроде TeamViewer/Skype с демонстрацией рабочего стола и так далее). Однако он не лишен принципиальных недостатков:

  • в любом случае конечный пользователь будет отвлекаться от своей работы (в некоторых случаях — даже не видя своего рабочего стола)
  • эти инструменты не всегда будут работать, если на удаленном компьютере есть ошибки
  • установка стороннего ПО (в том числе проприетарного, в случае TeamViewer) далеко не всегда приветствуется политикой компании
  • способ практически не автоматизируется

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

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

Исходя из этого, реестр вполне может использоваться как "индикатор" для контроля (можно обнаружить ошибку, если она связана с некорректными параметрами в реестре или смоделировать у себя проблемную ситуацию).

Еще одна возможность, которую дает такое решение — возможность административного контроля пользователей (например, удаленное чтение позволяет увидеть факты установок нежелательных программ и внесение изменений в настройки) — не стоит забывать о влиянии "человеческого фактора" на работу системы. На практике это пригодилось в рамках проекта SkypeTime, где было нужно отследить исправление настроек в Skype for Business.

image

Но реестр содержит тысячи записей, проконтролировать всех их крайне сложно. Поэтому прежде всего следует ограничить предмет контроля — определить, какие именно параметры нам интересны, и узнать, в каких именно ветках реестра находятся соответствующие значения. Как правило, последнее не составляет труда найти в документации / Интернете, или определить самостоятельно исходя из названий ключей.

Определившись с предметом контроля, можно переходить к непосредственной настройке удаленного доступа. Для этого необходимо активировать службу Remote Procedure Call на удаленных компьютерах и нужным образом настроить firewall, что удобно сделать с помощью групповых политик. С учетом требований безопасности, для доступа необходимы права доменного администратора или локального администратора на каждом из устройств.

Для активации самой службы, в разделе Computer Configuration > Preferences > Control Panel Settings > Services задаем для службы RpcSs параметры, как на скрин-шоте

image

Осталось добавить соответствующие исключения Firewall. В этой же политике в разделе Computer Configuration > Policies > Windows Settings > Security Settings > Windows Firewall with Advanced Security > Inbound Rules создаем New Rule:
Rule Type – Custom

image

В качестве пути программы указываем – %SystemRoot%\system32\svchost.exe
Из дополнительных настроек в разделе Службы (Services) задаем Применять к службе со следующим кратким именем – Winmgmt

image

На следующих страницах задаем TCP без указания конкретных портов и для всех адресов

image

image

и разрешаем подключение (Allow the Connection) для доменного профиля

image

image

Однако контролировать вручную реестр десятков и сотен компьютеров "вручную" (пусть даже по нескольким записям) — дело неблагодарное и бессмысленное. К счастью, этот процесс достаточно просто автоматизировать с помощью скриптов. Например, следующий скрипт на PowerShell позволяет узнать, кто из пользователей изменял параметры AwayThreshold и IdleThreshold (время перехода в состояние "Нет на месте" и "Неактивен") для Skype for Business.

Для большего удобства, скрипт может быть запущен с параметрами:

-c путь к файлу со списком hostname компьютеров для проверки, если не задано — получает компьютеры из AD с активностью за 30 дней.
-r путь к файлу, в который будут записаны hostname компьютеров у которых была ошибка RPC.
-u путь к файлу со списком юзеров (login), если не задано — проверяет всех.
-o путь к файлу, в котором будет результат выполнения скрипта, по умолчанию output.csv.
-a минимальное значение для параметра AwayThreshold, записи со значением, меньше указанного, не попадут результат выполнения скрипта.
-i минимальное значение для параметра IdleThreshold, записи со значением, меньше указанного, не попадут результат выполнения скрипта.

Далее запуск скрипта можно автоматизировать, добавив в Планировщик заданий Windows (Task Scheduler) или через функционал Sheduled Job в PowerShell.

Читайте также: