Ошибка сервер rpc недоступен в командной строке

Обновлено 15.02.2022

the rpc server is unavailable

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами разобрали замечательную утилиту командной строки robocopy, и с ее помощью научились создавать точные копии папок, двигать их в нужное расположение и многое другое. В сегодняшней публикации я покажу вам, как устранять ошибку «Сервер RPC недоступен (The rpc server is unavailable)», покажу примеры, когда ее мониторинг очень важен в работе корпоративных сервисов.

Для чего нужна служба «Удаленный вызов процедур (RPC)»

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

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

Язык определения интерфейса (IDL) — язык спецификации, используемый для описания интерфейса прикладного программирования (API) программного компонента — обычно используется в программном обеспечении удаленного вызова процедур. В этом случае IDL обеспечивает мост между машинами на обоих концах связи, которые могут использовать разные операционные системы (ОС) и компьютерные языки.

Процедура сообщения RPC

Когда программные операторы, использующие структуру RPC, компилируются в исполняемую программу, в скомпилированный код включается заглушка, которая выступает в качестве представителя кода удаленной процедуры. Когда программа запускается и выполняется вызов процедуры, заглушка получает запрос и пересылает его клиентской программе и времени выполнения на локальном компьютере. При первом вызове клиентской заглушки она связывается с сервером имен, чтобы определить транспортный адрес, по которому находится сервер.

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

Данная служба есть в любой операционной системе Windows, начиная от Windows 7 и заканчивая Windows 11 и в любой из Windows Server редакции.

Как работает RPC?

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

Во время RPC выполняются следующие шаги:

  1. Клиент вызывает клиентскую заглушку. Вызов представляет собой вызов локальной процедуры с параметрами, помещенными в стек обычным способом.
  2. Клиентская заглушка упаковывает параметры процедуры в сообщение и выполняет системный вызов для отправки сообщения. Упаковка параметров процедуры называется маршалингом.
  3. Локальная ОС клиента отправляет сообщение с клиентского компьютера на удаленный сервер.
  4. Серверная ОС передает входящие пакеты на серверную заглушку.
  5. Заглушка сервера распаковывает параметры из сообщения — это называется демаршалингом .
  6. Когда серверная процедура завершается, она возвращается к серверной заглушке, которая маршалирует возвращаемые значения в сообщение. Затем заглушка сервера передает сообщение на транспортный уровень.
  7. Транспортный уровень отправляет полученное сообщение обратно на клиентский транспортный уровень, который возвращает сообщение клиентской заглушке.
  8. Клиентская заглушка не упорядочивает возвращаемые параметры, и выполнение возвращается вызывающей стороне.

Клиент RPC по 135 порту подключается к службе RPC Endpoint Mapper (сопоставления конечных точек), а далее уже запрашивает номер порта, где запущено нужное RPC приложение. Служба сопоставления конечных точек вернет клиенту RPC номер динамического RPC порта (диапазон 1024 – 65535), на котором работает нужная служба. Дальше уже все взаимодействие идет по TCP порту

Если вы видите ошибку «Сервер RPC недоступен” (The RPC server is unavailable)», то у вас точно недоступен порт 135. Это может быть критичным для ряда ситуации. Например вы не сможете сохранить настройки RDS фермы, если у одного из хостов RDSH есть проблемы с RPC, то вы будите видеть ошибку «Could not change the connection state for server», вы не сможете перевести его в режим обслуживания (Drain Mode)

Could not change the connection state for server

Или в приложении Terminal Services Manager будет ошибка при попытке получения данных «Сервер RPC недоступен«.

Сервер RPC недоступен

Так же RPC может быть причиной проблемы в репликации контроллеров домена, где в логах Windows будет фигурировать ошибка ID 1722. Это очень не приятный момент, который может привести к большим проблемам.

Типы RPC

Существует пять типов RPC:

  1. Обычный метод работы, при котором клиент выполняет вызов и не продолжает работу до тех пор, пока сервер не вернет ответ.
  2. Клиент звонит и продолжает свою обработку. Сервер не отвечает.
  3. Средство для отправки нескольких клиентских неблокирующих вызовов в одном пакете.
  4. У клиентов RPC есть средство широковещательной рассылки, т. е. Они могут отправлять сообщения на множество серверов, а затем получать все полученные ответы.
  5. Клиент делает неблокирующий вызов клиент/сервер; сервер сигнализирует о завершении вызова путем вызова процедуры, связанной с клиентом.

Почему может не работать служба RPC

  1. Удаленный компьютер с которым идет взаимодействие выключен
  2. На удаленном сервере не запущена или перестала работать служба RPC
  3. Подключение по RPC происходит не к тому серверу (Может быть проблема с DNS или IP адресом)
  4. Есть блокировки между клиентом и сервером на фаэрволе
  5. Используются некорректные настройки сетевого подключение на клиенте или сервере

Преимущества удаленного вызова процедур

К преимуществам удаленного вызова процедур можно отнести следующее:

  • помогает клиентам общаться с серверами посредством традиционного использования вызовов процедур на языках высокого уровня;
  • может использоваться как в распределенной, так и в локальной среде;
  • поддерживает процессно-ориентированные и поточно-ориентированные модели;
  • скрывает внутренний механизм передачи сообщений от пользователя;
  • требует минимальных усилий для переписывания и повторной разработки кода;
  • обеспечивает абстракцию, т. е. характер передачи сообщений по сети скрыт от пользователя;
  • опускает многие уровни протокола для повышения производительности.

Недостатки RPC

Некоторые из недостатков RPC включают следующее:

  • Клиент и сервер используют разные среды выполнения для своих соответствующих подпрограмм, и использование ресурсов, например файлов, также является более сложным. Следовательно, системы RPC не подходят для передачи больших объемов данных.
  • RPC очень уязвим для сбоев, потому что он включает в себя систему связи, другую машину и другой процесс.
  • Единого стандарта для RPC не существует; это может быть реализовано множеством способов.
  • RPC основан только на взаимодействии и, как таковой, не предлагает гибкости, когда дело касается аппаратной архитектуры.

Проверка доступности службы RPC

  • Как я и писал выше, в первую очередь вы должны убедиться, что удаленный компьютер к которому вы делаете проверку RPC доступен по сети. Для этого элементарно откройте командную строку или оболочку PowerShell и воспользуйтесь командой Ping, NSlookup, Test-NetConnection. Я буду производить проверку службы удаленного вызова в PowerShell. Выполним для начала команду Ping. Мой удаленный сервер называется SVT201S01.root.pyatilistnik.org. Пишем команду:

ping SVT201S01.root.pyatilistnik.org

Если вдруг компьютер не ответил, то это не значит, что он не работает, может работать брандмауэр и просто блокировать ping пакеты.Проверка доступности службы RPC через ping

  • Далее выполните Nslookup, чтобы удостовериться, что нужное вам имя компьютера преобразовывается в нужный IP-адрес. Выполните:

nslookup SVT201S01.root.pyatilistnik.org

Небольшой пример из практики, предположим, что вы мигрировали сервер в другую подсеть, в итоге в DNS должна быть изменена соответствующая запись, но Windows это поймет не сразу, так как у нее есть свой локальный кэш, он живет 15 минут, поэтому если при проверке DNS имени вам выдается не тот IP-адрес, вам необходимо произвести очистку кэша DNS.

Проверка доступности службы RPC через nslookup

  • Далее я вам советую проверить отвечает ли порт. Напоминаю, что служба RPC Endpoint Mapper слушает порт под номером 135. В PowerShell введите команду:

Test-NetConnection svt2019s01.root.pyatilistnik.org -Port 135

Если удаленный RPC порт доступен вы в в строке TcpTestSucceeded будет стоять статус «True».

Проверка доступности службы RPC через Test-NetConnection

Если будет порт закрыт или блокируется, то ошибка «Сервер RPC недоступен (The rpc server is unavailable)» вам обеспечена. Поняв, что порт не отвечает, нужно удостовериться, что трафик от клиента до сервера не блокирует фаервол. По умолчанию в любой версии Windows есть встроенный брандмауэр. На время тестирования и поиска причины, я советую его выключить для всех профилей. Сделаем мы это через командную строку:

Netsh Advfirewall set allprofiles state off

Данная команда выключит брандмауэр на всех трех профилях сетевой карты.

Отключение брандмауэра Windows через командную строку

Далее если порт 135 стал доступен, то можно делать правила на удаленном сервере. Напоминаю, что нужно сделать правило для трех служб:

  1. Remote Procedure Call (RPC) — Удаленный вызов процедур (RPC)
  2. RPC Endpoint Mapper — Сопоставитель конечных точек RPC
  3. COM Server Process Launcher — Модуль запуска процессов DCOM-сервера

Подробнее, о том как сделать правила — https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-firewall/create-inbound-rules-to-support-rpc)

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

Проверка работы служб RPC

Следующим шагом является проверка состояния службы на нужном вам сервере или компьютере. Проверять следует три службы:

  1. Remote Procedure Call (RPC) — Удаленный вызов процедур (RPC)
  2. RPC Endpoint Mapper — Сопоставитель конечных точек RPC
  3. COM Server Process Launcher — Модуль запуска процессов DCOM-сервера

В оболочке PowerShell выполните команду:

Для локального сервера — Get-Service RpcSs,RpcEptMapper,DcomLaunch| Select DisplayName,Status,StartType

Для удаленного выполнения Enter-PSSession svt2019s01 далее Get-Service RpcSs,RpcEptMapper,DcomLaunch| Select DisplayName,Status,StartType

Напоминаю, что в команде svt2019s01, это имя удаленного сервера. Как видно из примера, все службы RPC запущены и имею автоматический тип запуска.

Проверка состояния служб RPC

Если службы не запущены, то откройте оснастку «services.msc’, зайдите в свойства службы и выставите автозапуск и попробуйте запустить вручную.

services.msc

Если по каким, то причинам вы не можете запустить службу из оснастки, то можно это сделать через реестр (Кстати реестр можно править и удаленно). Для этого есть несколько веток, но для начала откройте окно «Выполнить» и введите regedit.

Запуск реестра Windows

  • Модуль запуска процессов DCOM-сервера — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesDcomLaunch
  • Сопоставитель конечных точек RPC — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesRpcEptMapper
  • Удаленный вызов процедур (RPC) — ветка реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesRpcSs

В каждом из этих расположений есть ключик «Start«, выставите ему значение «2«, это будет означать автоматический запуск службы.

Управление автозапуском службы через реестр

Дополнительные сетевые проверки

В некоторых случаях причиной ошибок с доступностью RPC выступает сбой на сетевых адаптерах. Помогает сброс сетевых настроек и перезагрузка. В сети с Active Directory, старайтесь, чтобы на всех ваших сетевых адаптерах в свойствах были выставлены обе галки IPV4 и IPV6, особенно это актуально для контроллеров домена, где вы легко можете получать ошибку 1722. Еще может помочь отключение протокола Teredo у IPv6. В командной строке выполните:

netsh interface teredo set state disabled

Для включения обратно введите:

netsh interface teredo set state enabled

Еще на сайте Майкрософт пишут, что необходимо на сервере RPC иметь включенную службу «Удаленный реестр«. На этом у меня все, с вами был Иван Сёмин, автор и создатель IP портала Pyatilistnik.org.

Сервер RPC недоступен — способы исправитьПри подключении к удаленному компьютеру или виртуальной машине, некоторым сетевым устройствам, а также при установке и работе прикладных программ, использующих клиент-серверную архитектуру (в том числе на единственном локальном компьютере) пользователь может получить сообщение об ошибке «Сервер RPC недоступен» (RPC server is unavailable).

В этой инструкции подробно о способах исправить ошибку «Сервер RPC недоступен» в Windows 11 и Windows 10 с фокусом прежде всего на домашнего пользователя, но многие решения универсальны и подойдут для других сценариев.

Службы RPC и связанные с ними службы

Сообщения об ошибке Сервер RPC недоступен

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

  1. Откройте «Службы Windows», для этого можно нажать клавиши Win+R на клавиатуре (или нажать правой кнопкой мыши по кнопке «Пуск» и выбрать пункт «Выполнить», ввести services.msc и нажать Enter. Открыть службы Windows
  2. Найдите службы из списка, который приведен ниже после 5-го пункта, убедитесь, что они выполняются, а тип запуска задан верно. Список служб RPC
  3. Если это не так, дважды нажмите мышью по такой службе, измените тип запуска службы и примените настройки. Автоматический запуск службы RPCss
  4. Если ошибка RPC возникает при подключении к удаленному компьютеру или виртуальной машине, убедитесь, что и на нем службы настроены правильно.
  5. После изменения параметров запуска служб, перезагрузите компьютер.

Список служб в формате: Название службы на русском языке (название на английском) — тип запуска по умолчанию:

  • Инструментарий управления Windows (Windows Management Instrumentation) — Автоматически
  • Локатор удаленного вызова процедур RPC (Remote Procedure Call RPC Locator) — Вручную, можно попробовать поставить «Автоматически».
  • Модуль запуска процессов DCOM-сервера (DCOM Server Process Launcher) — Автоматически
  • Служба времени Windows (Windows Time service) — Автоматически
  • Сопоставитель конечных точек RPC (RPC Endpoint Mapper) — Автоматически
  • Удаленный вызов процедур RPC (Remote Procedure Call RPC) — Автоматически

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

Для этого: запустите редактор реестра (Win+Rregedit) и перейдите к разделу реестра

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices

В этом разделе реестра измените значение параметра Start на 2 (дважды нажав по параметру и задав новое значение) в следующих подразделах:

  • DcomLaunch
  • RpcEptMapper
  • RpcLocator
  • RpcSs
  • W32Time
  • Winmgmt

Часть параметров могут не изменяться и в реестре, в этой ситуации может помочь изменение прав доступа к разделам реестра.

В справке на официальном сайте Майкрософт приводится ещё две службы, которые могут вызывать ошибку «Сервер RPC недоступен» при входе в Windows :

  • Модуль поддержки NetBIOS через TCP/IP (TCP/IP NetBIOS Helper)
  • Удаленный реестр (Remote registry)

Протокол IPv6 и общий доступ к файлам и принтерам

Отключенная поддержка IP версии 6 и «Общий доступ к файлами и принтерам для сетей Майкрософт» также могут приводить к сбоям доступа к серверу RPC. Проверьте, включены ли они и, если нет — включите:

  1. Нажмите клавиши Win+R на клавиатуре, введите ncpa.cpl и нажмите Enter.
  2. Нажмите правой кнопкой мыши по сетевому подключению и откройте его свойства. Открыть свойства подключения Windows
  3. Отметьте пункты «Общий доступ к файлами и принтерам для сетей Майкрософт» и «IP версии 6» и примените настройки. Включить IPv6 для RPC

Брандмауэр Windows

В части настроек брандмауэра Windows при ошибке доступа к серверу RPC, в зависимости от сценария проблемы возможны разные решения.

Первый вариант:

  1. В Панели управления (открыть её можно, используя поиск в панели задач) откройте пункт «Брандмауэр Защитника Windows»
  2. В панели слева нажмите «Разрешение взаимодействия с приложениями или компонентами брандмауэра Защитника Windows». Разрешение приложений в брандмауэре Windows
  3. Нажмите кнопку «Изменить параметры» и разрешите взаимодействие для «Удаленный помощник». Разрешение для удаленный помощник в брандмауэре

Если предыдущий метод не помог, попробуйте:

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

Дополнительные методы решения проблемы

Если предыдущие варианты не помогли, при этом вы уверены, что на сервере (при удаленном подключении к собственным ресурсам или серверам, которые использует ваше ПО) проблем нет, попробуйте следующие варианты решения проблемы:

  • Используйте команды в командной строке, запущенной от имени Администратора
    ipconfig /flushsdns
    ipconfig /renew
  • Если используется профиль сети «Общественная» (Общедоступная), попробуйте переключить её на «Частная» — Как изменить тип сети в Windows 11 и в Windows 10.
  • Если вам известен IP-адрес сервера, к которому выполняется подключение, проверьте, доступен ли порт 135 на нем с помощью команды PowerShell (заменив IP-адрес на нужный), при успехе в пункте TcpTestSucceeded должен быть статус «True»
    Test-NetConnection 192.168.1.1 -port 135

    Проверка подключения по порту 135

  • При наличии сторонних антивирусов или файрволлов, попробуйте отключить их, или отключить только функции защиты в сети.
  • При использовании VPN-сервисов, попробуйте отключить их.
  • Попробуйте отключить протокол teredo для IPv6 с помощью команды
    netsh interface teredo set state disabled

    Чтобы в дальнейшем включить его обратно используйте команду

    netsh interface teredo set state enabled
  • Учитывайте: если ошибка «Сервер RPC недоступен» возникает при запуске, установке или работе какого-либо прикладного ПО, полученного и модифицированного неофициальными методами, причина может быть в целенаправленной блокировке доступа к серверам лицензирования или иным.
  • Проверьте компьютер на наличие вирусов и вредоносных программ, блокировок доступа к сайтам в файле hosts.

На чтение 9 мин. Просмотров 626 Опубликовано 22.04.2021

RPC также известен как удаленный вызов процедур. Эта технология присутствует с момента появления компьютеров и использует технику межпроцессного взаимодействия. Его основная цель – дать возможность клиенту и серверу обмениваться данными друг с другом по сети. То же самое можно сказать и об устройствах.

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

Содержание

  1. Что вызывает ошибку «Сервер RPC недоступен»?
  2. Решение 1. Проверка службы RPC на вашем компьютере
  3. Решение 2. Включение удаленного помощника в брандмауэре
  4. Решение 3. Отключение выборочного запуска
  5. Решение 4. Включение IPV6 и общего доступа к файлам и принтерам для подключенной сети
  6. Решение 5. Очистка DNS и обновление
  7. Решение 6 : Использование редактора реестра для принудительного запуска служб RPC

Что вызывает ошибку «Сервер RPC недоступен»?

Поскольку RPC – это связь между различными устройствами, существует несколько разных модулей, которые могут отвечать за вызывая сообщение об ошибке. С учетом сказанного, вот некоторые из виновников, которые могут нести ответственность в вашем случае:

  • Одна или несколько служб, требуемых RPC, являются отключено . В большинстве случаев эта конкретная проблема возникает, когда на одном или нескольких компьютерах, участвующих в подключении, отключена одна (или несколько) обязательных служб. Если этот сценарий применим, вы можете решить проблему, используя служебную программу «Службы» для принудительного запуска отключенных служб.
  • Удаленная помощь отключена брандмауэром – брандмауэр Windows и несколько других сторонних эквивалентов, как известно, по умолчанию блокируют подключение удаленного помощника. Если это является причиной возникновения проблемы, вы можете решить проблему, установив исключение для этого типа подключения.
  • IPV6 или общий доступ к принтеру файлов отключен – Для некоторых типов серверов RPC в текущем сетевом подключении должны быть включены как IPV6, так и File PRinter Sharing. Несколько пользователей, пытающихся решить эту конкретную проблему, сообщили, что проблема была решена после того, как они включили оба параметра в свойствах сети.
  • IP-адрес вызывает сбой сервера RPC – Неоднозначный IP-адрес также может вызвать это конкретное сообщение об ошибке. Если этот сценарий применим, вы можете решить проблему, очистив и затем обновив IP-адрес.
  • Службы RPC отключены через реестр – некоторые утилиты или пользователь вручную вмешательство я заставляю некоторые службы, требуемые RPC-сервером, оставаться отключенными. Пользователи, оказавшиеся в подобном сценарии, сообщили, что проблема была решена после того, как они использовали редактор реестра для принудительного запуска служб, используемых компонентом RPC.

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

Решение 1. Проверка службы RPC на вашем компьютере

Первое, что пользователи должны проверить, сталкиваются ли они с этой ошибкой, – это службу RPC на вашем компьютере. Конфликты с другими сторонними приложениями или изменение системных систем могут заставить службу RPC перейти с значения по умолчанию (автоматически) на ручной. Это означает, что RPC может не запускаться автоматически при необходимости.

  1. Нажмите Windows + R, введите « services.msc » в диалоговом окне и нажмите Enter.
  2. В окне служб найдите следующие процессы:
 Удаленный вызов процедур (RPC) Сопоставитель конечных точек RPC или удаленный вызов процедур  (RPC) LocatorDCOM Service Process Launcher 

Щелкните правой кнопкой мыши каждую службу одну за другой и выберите Свойства .

  1. В свойствах убедитесь, что служба запущена и Startup тип установлен как

  1. Сохраните изменения и выйдите. Перезагрузите компьютер и проверьте, исправлено ли сообщение об ошибке.

Решение 2. Включение удаленного помощника в брандмауэре

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

Если вы работаете в организации, вам следует обратиться к сетевому администратору, чтобы разобраться в проблеме. При устранении неполадок в сети отключение основного брандмауэра – это способ определить причину проблемы. В этой демонстрации мы рассмотрим только то, что вы (пользователь) можете делать на своем персональном брандмауэре на своем компьютере.

  1. Нажмите Windows + R, введите ‘ control ‘в диалоговом окне и нажмите Enter.
  2. Когда появится панель управления, найдите Firewall в строке поиска по адресу в правом верхнем углу экрана. В результатах нажмите Разрешить приложение через брандмауэр Windows , который является подкатегорией под брандмауэром Windows .

  1. Щелкните Изменить настройки и убедитесь, что записи, применяющие RPC, включены, например как Удаленный помощник .

  1. Перезагрузите компьютер и проверьте, решило ли это обсуждаемое сообщение об ошибке..

Решение 3. Отключение выборочного запуска

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

  1. Нажмите Windows + R, введите « msconfig » в диалоговом окне и нажмите Enter.
  2. В загрузочной конфигурации выберите вкладку General и выберите вариант Обычный запуск .

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

Решение 4. Включение IPV6 и общего доступа к файлам и принтерам для подключенной сети

В некоторых случаях вы можете столкнуться с ошибкой 1722: сервер RPC недоступен в тех случаях, когда есть прерывание сетевого подключения, вызванное одним или несколькими настройки. Несколько затронутых пользователей сообщили, что в их случае проблема была решена после того, как они обнаружили, что Общий доступ к принтеру для сетей Microsoft и Протокол версии 6 (TCP/IPv6) оба были отключены в свойствах подключенной сети.

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

  1. Нажмите клавишу Windows + R , чтобы открыть диалоговое окно «Выполнить». Затем введите «ncpa.cpl» и нажмите Enter , чтобы открыть окно Сетевые подключения .
  2. В окне “Сетевые подключения” щелкните правой кнопкой мыши сеть, к которой вы в данный момент подключены, и выберите
  3. Как только вы перейдете в в свойствах сетевого подключения перейдите на вкладку «Сеть» и прокрутите список элементов вниз.
  4. Найдите Файл и Общий доступ к принтеру для Microsoft Networks и Internet Protocol Version 6 (TCP/IPv6) и убедитесь, что установлены оба связанных флажка. Затем нажмите Ok , чтобы сохранить изменения.
  5. Перезагрузите компьютер и посмотрите, будет ли проблема решена при следующем запуске.

https://appuals.com/ wp-content/uploads/2019/05/enable-ipv6.webm

Если вы все еще сталкиваетесь с ошибкой 1722: сервер RPC недоступен проблема, перейдите к следующему способу ниже.

Решение 5. Очистка DNS и обновление

Некоторые затронутые пользователи сообщили, что им удалось решить проблему после использования повышенного Командная строка для очистки DNS и обновления соединения. Но для того, чтобы это исправление было эффективным, вам необходимо убедиться, что службы, участвующие в соединении RPC, работают (следуйте методу 1).

Если вы уверены, что требуемые службы работают , вот краткое руководство по очистке DNS и обновлению соединения:

  1. Нажмите клавишу Windows + R , чтобы открыть Диалоговое окно “Выполнить” . Затем введите «cmd» и нажмите Ctrl + Shift + Enter , чтобы открыть командную строку с повышенными привилегиями. При появлении запроса от UAC (Контроль учетных записей пользователей) нажмите Да, чтобы предоставить права администратора.
  2. В командной строке с повышенными привилегиями введите следующую команду и нажмите Enter , чтобы очистить текущую конфигурацию IP:
     ipconfig/flushdns 
  3. После успешной регистрации команды введите следующую команду и нажмите Enter , чтобы обновить конфигурацию IP:
     ipconfig/Renew 
  4. После обновления IP-адреса закройте командную строку с повышенными привилегиями и воссоздайте шаги, которые ранее вызывали ошибку 1722: сервер RPC недоступен , чтобы проверить, не проблема решена.

Если та же проблема все еще возникает, перейдите к следующему способу ниже.

Решение 6 : Использование редактора реестра для принудительного запуска служб RPC

Некоторые затронутые пользователи сообщили, что им удалось разрешить Проблема возникает после использования командной строки с повышенными привилегиями для очистки DNS и обновления соединения. Но для того, чтобы это исправление было эффективным, вам необходимо убедиться, что службы, участвующие в соединении RPC, работают (следуйте методу 1).

Если вы уверены, что требуемые службы работают , вот краткое руководство по очистке DNS и обновлению соединения:

Вот краткое руководство о том, как это сделать:

  1. Нажмите клавиша Windows + R , чтобы открыть диалоговое окно «Выполнить». Затем введите «regedit» и нажмите Enter , чтобы открыть редактор реестра. Если вам будет предложено UAC (Контроль учетных записей) , нажмите Да , чтобы предоставить права администратора.
  2. Внутри В редакторе реестра используйте левую панель, чтобы перейти к следующему месту:
     HKEY_LOCAL_MACHINE  SYSTEM  CurrentControlSet  Services  RpcSs 

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

  3. Внутри Edit Dword Value , связанного с Start, установите Base на Hexadecimal и Value data на 2 , чтобы включить Remove Вызов процедуры (RPC) .
  4. Используйте левую панель или панель навигации вверху, чтобы перейти в это место:
     Computer  HKEY_LOCAL_MACHINE  SYSTEM  CurrentControlSet   Services  DcomLaunch 
  5. Как только вы попадете в это место, дважды щелкните Пуск на правой панели. Затем установите Base в Hexadecimal , а данные значения – в 2 , чтобы включить Средство запуска процессов сервера DCOM .
  6. Перейдите в следующее место с помощью панели навигации вверху или с помощью левой панели:
     Computer  HKEY_LOCAL_MACHINE  SYSTEM   CurrentControlSet  Services  RpcEptMapper 
  7. Перейдите к правой панели и дважды щелкните Start. Затем установите Base на шестнадцатеричный , а Value Data на 2 .
  8. Закройте редактор реестра, перезагрузите компьютер и посмотрите, была ли решена проблема при следующем запуске системы.

В дополнение к вышеуказанным решениям, вы также можете найти другие способы обхода ошибки ‘ RPC Se rver недоступен », прочитав нашу статью« Исправление: сбой удаленного вызова процедуры ». Оба случая ошибки почти одинаковы, и в обоих случаях можно попробовать одни и те же исправления.

Ошибка “
Сервер RPC недоступен
” (
The RPC server is unavailable
) появляется в Windows при ошибке коммуникации между двумя компьютерами по сети, когда компьютер (клиент RPC) не может подключиться к удаленному компьютеру (сервер RPC). В результате программа, которую вы запустили, не работает и возвращает ошибку, т.к. не можете получить данные с удаленного сервера. В этой статье мы разберем наиболее частые проблемы, которые могут препятствовать нормальному взаимодействию компьютеров через сеть по протоколу RPC.

ошибка Сервер RPC недоступен в Windows

Протокол RPC (Remote Process Call, удаленный вызов процедур) – это распространённый протокол взаимодействия приложений в локальной сети. В основном он используется для обмена данными с удалённым компьютерам, но есть некоторые программы, которые используют RPC для локальных взаимодействий между приложением и запущенной локально службой.

В типовом сеансе клиент RPC подключается к службе RPC Endpoint Mapper (сопоставления конечных точек) на RPC сервере по TCP порту 135 и запрашивает номер порта, на котором запущено нужное ему RPC приложение (служба). Служба RPC Endpoint Mapper возвращает клиенту номер динамического RPC порта, назначенного указанной службе при запуске. Затем RPC клиент взаимодействует с RPC службой по указанному TCP порту.

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

The RPC server is unavailable

В современных версиях Windows (начиная с Windows Vista/2008) используется следующий диапазон динамических RPC портов (Dynamic RPC Port range): 49152 — 65535 (в Windows Server 2003 / XP и ниже использовался другой диапазон 1024 – 65535.

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

  1. Удаленный компьютер выключен;
  2. Не запущены службы RPC на сервере;
  3. Вы пытаетесь подключиться к RPC серверу по неправильному имени (или как вариант, DNS имени сервера соответствует неверный IP адрес);
  4. Используются некорректные настройки сетевого подключение на клиенте или сервере;
  5. RPC трафик между клиентом и сервером блокируется файерволом;

Проверка доступности удаленного компьютера

Убедитесь, что удаленный компьютер включен, отвечает на ping по имени и IP адресу. Если RPC сервер не доступен по имени, проверьте корректность DNS записей и попробуйте сбросить DNS кэш на клиенте:
ipconfig /flushdns
.

Если имя компьютера, на котором запущен RPC-сервер недавно изменилось, попробуйте перерегистрировать его в DNS Active Directory:
ipconfig /registerdns

Проверка служб RPC

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

  1. Откройте консоль управления службами (services.msc);
  2. Убедитесь, что следующие службы запущены (статус Running), а тип их запуска – автоматический: Remote Procedure Call (RPC), RPC Endpoint Mapper и DCOM Server Process Launcher;проверить, что службы RCP запущены в Windows

Если RPC службы отключены и не запускаются, попробуйте активировать их через реестр. Найдите ветки этих служб в реестре и измените значение параметра Start на 2 (автоматический запуск службы):

  • Удаленный вызов процедур (RPC) — ветка реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesRpcSs
  • Сопоставитель конечных точек RPC — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesRpcEptMapper
  • Модуль запуска процессов DCOM-сервера — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesDcomLaunch

включить службы RpcSs в реестре

RPC блокируется файерволом (брандмауэром)

Убедитесь, что RPC трафик между компьютерами не блокируется файеволом. Если у вас используется Windows Defender Firewall with Advanced Security, нужно проверить или создать правила, разрешающие RPC трафик. Одно правило, разрешающее доступ к службе RPC Endpoint Mapper по порту TCP/135; второе должно разрешать доступ к RPC службе, которая вам нужна по динамическим RPC портам (RPC Dynamic Ports). Правила нужно создать для всех трех сетевых профилей: Domain, Private и Public.

Проверьте с клиента, что на RPC сервере доступен 135 порт TCP (должен слушаться службой RPC Endpoint Mapper). Можно проверить доступность порта из PowerShell:

Test-NetConnection 192.168.1.201 -port 135

Test-NetConnection powershell проверка TCP порт 135 службы RPC Endpoint Mapper

Если RPC порт доступен, должен появится ответ
TcpTestSucceeded:True
.

Вы можете получить список конечных точек RPC (сервисов и приложений), которые зарегистрированы на удаленном компьютере и анонсируются службой RPC Endpoint Mapper с помощью утилиту PortQry

portqry -n 192.168.1.201 -p tcp -e 135

В выводе PortQry можно найти номер порта, назначенный нужной вам службе RPC (она запущена?) и проверить, что этот порт не блокируется с клиента.

Если у вас используется сторонний файервол/антивирус, убедитесь, что он не блокирует RPC трафик и умеет корректно обрабатывать трафик динамических RPC портов.

Проверка сетевых протоколов и настроек

Убедитесь, что на вашем компьютере заданы корректные сетевые настройки: IP адрес, шлюз, маска сети, настройки DNS серверов (можно проверить настройки сети из PowerShell). Проверьте, что в настройках сетевого адаптера, используемого для подключения включены протоколы Internet Protocol Version 6 (TCP/IPv6) и File and Printer Sharing for Microsoft Networks

включить протокол ipv6 и протокол общего доступа в windows 10

Некоторые сетевые приложения некорректно работают при отключенном протоколе TCP/IPv6, возвращая ошибку:
1722 The RPC server is unavailable
. Если после включения ipv6 ошибка RPC сохраняется, попробуйте отключить протокол Teredo через реестр:

Создайте в ветке реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters параметр типа DWORD с именем DisabledComponents и значением 8:

reg add hklmsystemcurrentcontrolsetservicestcpip6parameters /v DisabledComponents /t REG_DWORD /d 8

В некоторых случаях приходится получаить дамп трафика на RPC сервера и анализирвать его с помощью Microsoft Network Monitor 3.4 или Message Analyzer.

24.03.2020

Просмотров: 12299

Удаленный вызов процедур или Remote Process Call (RPC) – это протокол, который обеспечивает одному софту на одном компьютере доступ к службам такой же программы только на другом компьютере, который подключён к той же локальной сети. Простыми словами – это протокол, который обеспечивает связь клиента с сервером. Иногда такой протокол сбоит и при попытке подключиться какой-то программе по сети, пользователь сталкивается с ошибкой сервер RPC недоступен на Windows 7 и выше. При этом нужно отметить, что недоступность протокола может быть не только по локальной сети, но и в периферийных устройствах, таких как сканер или принтер.

Читайте также: Что делать, если возникла ошибка DNS PROBE FINISHED NO INTERNET?

Чаще всего ошибка сервер RPC недоступен на Windows 10 или более ранних сборках Майкрософт появляется по таким причинам:

  • Службы, которые обеспечивают работу протокола, отключены в Windows 7 и выше;
  • В настройках брандмауэра отключен удаленный помощник;
  • Неверные настройки протокола IPV6;
  • Общий доступ к файлам и папкам отключен;
  • Службы RPC отключены в реестре;
  • IP адрес вызывает сбой сервера RPC.

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

Как исправить ошибку сервер RPC недоступен?

Если на компьютере с Windows 7 и выше вы столкнулись с ошибкой сервер RPC недоступен, то первое, что необходимо сделать – проверить работу служб, которые могут перейти из автоматического режима в ручной. Для этого выполняем следующие действия:

  • Жмем «Win+R» и вводим «services.msc».

  • Теперь нужно найти следующие три службы:
  1. Модуль запуска процессов DCOM-сервера;
  2. Локатор удаленного вызова процедур (RPC);
  3. Удаленный вызов процедур (RPC).
  • Двойным кликом открываем службу, выставляем «Автоматический» тип запуска и кликаем «Запустить» службу. Так повторяем со всеми службами.

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

Иногда ошибка сервер RPC недоступен может появиться при удаленном сеансе. В данном случае эта неполадка может быть связана с удаленным помощником в брандмауэре. Чтобы её исправить стоит выполнить следующие действия:

  • Жмем «Win+R» и вводим «firewall.cpl».

  • Откроется окно настроек брандмауэра. В меню слева выбираем «Разрешить запуск программ и компонентов через брандмауэр Windows» (Windows 7) или «Разрешение взаимодействия с программами и …» (Windows 10).

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

  • Сохраняем настройки и перезагружаем систему, чтобы изменения вступили в силу.

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

  • Жмем «Win+R» и вводим «ncpa.cpl», чтобы открыть настройки сетевых подключений.

  • Нажимаем на активном подключении правой кнопкой мыши и выбираем «Свойства».

  • Откроется небольшое окно. Нужно найти два параметра «Общий доступ к файлам и принтерам для сетей Майкрософт» и «IP версии 6 (TCP/IPv6)». Смотрим, чтобы напротив этих пунктов стояла отметка, которая указывает на то, что эти параметры активны. Если отметок нет, то ставим их. Перезагружаем систему, чтобы изменения вступили в силу.

  • Эту же проблему можно решить путем очистки DNS кэша. Сделать это достаточно просто. Нужно запустить командную строку с правами Администратора и ввести такие команды (по очереди):

ipconfig /flushdns

ipconfig /renew

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

В случае, если исправить неполадку вышеуказанными способами не удалось, рекомендуем внести некоторые правки в реестр. Однако перед редактированием реестра стоит создать точку по восстановлению системы или резервную копию реестра. Далее действия будут следующими:

  • Открываем редактор реестра (Win+R, regedit). Переходим по ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs. В меню справа нужно найти параметр «Start» и задать ему значение «2». Так вы перезапустите работу службы «Удаленный вызов процедур (RPC)».

 

  • Далее нужно перейти по ветке «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDcomLaunch» и также в меню справа выбрать параметр «Start» и задать ему значение «2». Так вы активируете службу «Модуль запуска процессов DCOM-сервера».

  • Еще одна служба, необходима для работы протокола RPC – это «Локатор удаленного вызова процедур». Чтобы его перезапустить, стоит перейти по ветке «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcEptMapper». Находим в меню справа параметр «Start» и задаем ему значение «2».

  • После редактирования реестра нужно перезапустить Windows, чтобы изменения вступили в силу. Проверяем, появляется ли такая ошибка.

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

Понравилась статья? Поделить с друзьями:
  • Ошибка сервер rpc занят и не может завершить операцию
  • Ошибка сервер ole в access
  • Ошибка сервер imap сбросил соединение
  • Ошибка связи невозможно соединиться с сервером
  • Ошибка связи не удается открыть сокет на tls сервере