Сбой при удаленном вызове процедуры windows 10

Обновлено: 03.07.2024

В этой инструкции подробно о причинах ошибки «Сбой при удаленном вызове процедуры» в различных ситуациях и о методах решения этой проблемы в Windows 10, 8.1 и Windows 7.

Службы Windows, имеющие отношение к удаленному вызову процедур

Для начала стоит проверить, установлен ли правильный тип запуска для служб удаленного вызова процедур Windows. Однако, если ошибка о сбое при удаленном вызове процедуры появляется в Windows 10 при открытии фото или файлов pdf, дело обычно не в этом (но проверить всё равно стоит).

  1. Нажмите клавиши Win+R на клавиатуре, введите services.msc и нажмите Enter. В открывшемся списке служб найдите следующие службы и посмотрите в их свойствах, установлены ли верные параметры запуска для них (используя двойной клик по службе). При необходимости измените параметры запуска.
  2. Удаленный вызов процедур (RPC) — тип запуска «Автоматически».
  3. Сопоставитель конечных точек RPC — автоматически.
  4. Локатор удаленного вызова процедур (RPC) — вручную.
  5. Модуль запуска процессов DCOM-сервера — автоматически.

Если значения отличаются, но вы не можете поменять тип запуска в services.msc (например, такое может быть в Windows 10), проделайте следующее:

Параметры запуска службы RpcLocator в реестре

  1. Запустите редактор реестра (Win+R, ввести regedit и нажать Enter).
  2. Перейдите к разделу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services и в этом разделе найдите следующие подразделы, в каждом из которых поменяйте параметр Start на указанное число (дважды нажав по параметру Start в правой части окна редактора реестра).
  3. RpcLocator — параметр Start должен быть равен 3.
  4. DcomLaunch, RpcEptMapper, RpcSs — тот же параметр должен иметь значение 2.
  5. После изменения параметров, закройте редактор реестра и перезагрузите компьютер.

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

Сбой при удаленном вызове процедуры при открытии фотографий JPG и PNG, файлов PDF в Windows 10

Другие решения, не всегда срабатывающие:

Сброс данных приложения в Windows 10

  1. Запустить встроенное устранение неполадок для приложений из магазина Windows (Параметры — Обновление и безопасность — Устранение неполадок — Приложения из магазина Windows).
  2. Вручную переустановить проблемное приложение: запустить PowerShell от имени администратора, затем ввести команду для переустановки конкретного приложения. Далее — команда для переустановки приложения «Фотографии».
  3. Попробовать сбросить проблемное приложение: Параметры — Приложение — Выбрать приложение в разделе «Приложения и возможности» — нажать «Дополнительные параметры» — использовать кнопку «Сбросить».

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

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

Что означает ошибка «Сбой при удалённом вызове процедуры»

Ошибка «Сбой при удалённом вызове процедуры» означает неполадку в работе службы «Удалённый вызов процедур (RPC)». Этим сбоем «страдают» утилиты калькулятора, просмотра фотографий и прочие программы нового интерфейса Windows. Также жертвой ошибки может стать утилита DISM, управление которой проходит через командную строку.

Ошибка «Сбой при удаленном вызове процедуры»

Ошибка «Сбой при удаленном вызове процедуры» часто проявляется при попытке использования новых вшитых утилит Windows

Причиной неполадки могут выступать несколько факторов:

  • работа вирусов;
  • выключенная служба вредоносным ПО или самим пользователем;
  • ошибки в файлах службы;
  • неверные настройки реестра Windows.

В итоге все «исправительные» работы будут касаться указанной выше службы.

Способы устранения ошибки «Сбой при удалённом вызове процедуры»

Прежде чем приступать к исправлению ошибки, необходимо в обязательном порядке полностью просканировать операционную систему на наличие вирусной активности. Я для этого использую пару антивирусных программ разных разработчиков, к примеру, AVG AntiVirus Free и Panda Free Antivirus. Можно использовать и другие защитники, но для меня эти выигрывают удобством интерфейса и скоростью работы.

После проверки необходимо двигаться от простых решений к более сложным и затратным по времени.

Включение службы «Удалённый вызов процедур (RPC)»

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

  1. В поиске операционной системы прописываем слово services и открываем лучшее соответствие. В поиске операционной системы прописываем слово services и открываем лучшее соответствие
  2. Находим строчку с названием «Удалённый вызов процедур (RPC)», кликаем по ней правой кнопкой и открываем пункт «Свойства». Через контекстное меню открываем свойства службы «Удалённый вызов процедур (RPC)»
  3. Далее во вкладке «Общее» меняем фильтр «Отключена» на «Автоматически», затем сохраняем свойства кнопкой OK и перезагружаем компьютер. Задаем тип запуска как «Автоматически» и сохраняем изменения
  4. Пробуем вновь запустить процесс, который раньше выдавал сбой.

Внесение поправок в значение реестра

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

  1. В меню «Пуск» находим и открываем папку «Средства администрирования», а в ней запускаем программу «Редактор реестра». Мерез меню пуск открываем «Редактор реестра»
  2. В древе директорий слева открываем путь HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs. Переходим в директорию с установками службы «Удалённый вызов процедур (RPC)»
  3. Двойным щелчком мыши открываем параметр Start, задаём его значение как 2, затем нажимаем кнопку OK. Задаем значение 2 в параметре Start для автоматического запуска службы
  4. Перезапускаем систему, чтобы изменения вошли в силу, и смотрим, исчезла ли проблема.

Проверка файлов системы

Если обе инструкции выше не помогли — это значит, что проблема несколько серьёзнее, чем просто неверные настройки службы. Скорее всего, были повреждены некоторые системные файлы, включая программные оболочки RPC. В таком случае необходимо сделать сканирование и восстановление файлов системы специальной утилитой SFC. Она запускается из командной строки и сканирует Windows на предмет повреждений и несоответствий в данных ОС. И в случае выявления неисправности заменяет повреждённую информацию правильной:

  1. Вызываем меню Windows (комбинация клавиш Win+X или щелчок правой кнопкой по значку «Пуск»), в выпавшем списке выбираем апплет «Командная строка (администратор)». В меню Windows выбираем апплет «Командная строка (администратор)»
  2. В консоли прописываем строчку sfc /scannow и запускаем программу в работу клавишей Enter. Команда sfc /scannow запускает сканирование и восстановление системных файлов
  3. Не закрываем терминал, пока программа не закончит свою работу, а после перезагружаем ПК.

Видео: как провести сканирование и восстановление системных файлов

Служба удалённого вызова процедур Windows (она же RPC или Remote Procedure Call) управляет протоколом, позволяющим программам выполнять свои действия на других компьютерах общей сети так же, как они выполнялись бы на данном компьютере — без необходимости разбираться в тонкостях подключения.

Сбой при удалённом вызове процедуры Windows

Протокол оказался очень удобным на практике: последние версии Windows используют его и для внутреннего взаимодействия программ, находящихся на одном устройстве. От его правильной работы зависят службы системного реестра, «Диспетчер устройств» и даже приложение File Explorer, отвечающее за корректное отображение системных окон и их свойств.

Что означает ошибка «Сбой при удалённом вызове процедуры»

Ошибка «Сбой при удалённом вызове процедуры»

Способы устранения ошибки «Сбой при удалённом вызове процедуры»

Убедимся для начала, что служба и все компоненты, на которые она полагается, включены и работают в штатном режиме. Затем попробуем убрать некоторые потенциальные программные несовместимости.

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

Если сбой при удалённом вызове процедуры происходит на Windows 7, открываем список служб таким образом: «Пуск» → Выполнить → пишем services.msc, жмём Enter. В Windows 10 название службы можно ввести в строку поиска на Панели задач.

Команда services.msc в Windows 7

Переход в «Службы» в Windows 10

Откроется достаточно длинное окно служб, запущенных на компьютере. Нас интересуют четыре службы:

Редактирование системного реестра

Редактор реестра открывается по тому же принципу, что и список служб, но написать нужно будет слово regedit. Находим там ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. На всякий случай перед началом редактирования жмём на неё правой кнопкой и экспортируем — если что-то пойдёт не так, текущее состояние реестра можно будет восстановить двойным щелчком по экспортированному файлу.

Ввод команды regedit

Переход в редактор системного реестра

В HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services вносим следующие поправки:

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

Проверка на несовместимость ПО

Если все службы работают как обычно (и не выключились сами после перезагрузки, проверьте), имеет смысл поискать и удалить несовместимое программное обеспечение. Прежде всего — загрузитесь в безопасном режиме: откройте службу msconfig (через «Выполнить» или строку поиска, в зависимости от системы) и на вкладке «Загрузка» поставьте галочку на соответствующей опции. После следующей перезагрузки система включится без обычных программ автозагрузки и с минимальным набором драйверов — проверьте, появляется ли ошибка в таком режиме. Если нет, «Автозагрузку» нужно будет почистить.

Ввод команды msconfig

Безопасный режим в параметрах загрузки

В Windows 7 это осуществляется через всё ту же службу msconfig. В Windows 10, в принципе, можно зайти туда же, но вас перенаправят в Диспетчер задач, управляющий этой функцией на новой ОС. Диспетчер задач можно вызвать клавиатурной комбинацией Ctrl + Alt + Del.

Переход в «Диспетчер задач»

Перейдите на вкладку «Автозагрузка» и уберите оттуда все программы. Затем добавляйте обратно по одной и перезагружайтесь после каждого добавления, пока не найдёте программу, провоцирующую конфликт. Часто это бывают антивирусы и программы резервного копирования файлов (Comodo BackUp и т. п.). Конфликтующие программы рекомендуется деинсталлировать или хотя бы использовать аналоги, не вызывающие проблем.

Отключение автозагрузки программ

Проверка и ремонт системных файлов

Для решения проблем с системными файлами можно использовать утилиты SFC и DISM.

Откройте командную строку от имени администратора: «Пуск» → Стандартные → Командная строка (Windows 7) или введите cmd в строку поиска на Панели задач (Windows 10). Для запуска от имени администратора щёлкните на название программы правой кнопкой мыши и выберите соответствующую опцию контекстного меню.

Запуск командной строки от имени администратора

В появившемся чёрном окне введите для начала:

Эта команда проверит основные системные файлы и попытается восстановить их, если увидит, что с ними что-то не так.

Запуск утилиты SFC

На Windows 10 доступна утилита DISM (Deployment Image Servicing and Management), позволяющая отремонтировать файлы, если вдруг не работает sfc.

На выбор есть две команды:

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

Если «Сбой при удалённом вызове процедуры» возникает и здесь (обычно с кодом ошибки 1726) — проверьте, работают ли все службы RPC, как описано выше. Может также помочь временное отключение службы Windows Search.

Если ничего не помогает

Крайний вариант перед переустановкой системы — попробовать создать нового пользователя. В Windows 10 опция запрятана достаточно далеко: «Пуск» → Параметры → Учётные записи → Семья и другие пользователи. Все системные настройки для нового пользователя будут выставлены по умолчанию, и конфликт ПО, если он был, исчезнет. В Windows 7 пользователя можно создать здесь: «Пуск» → Панель управления → Учётные записи пользователей.

Переход в параметры системы

Раздел «Учётные записи» в «Параметрах»

Семья и другие пользователи

Добавить пользователя для этого компьютера

Если же проблема не исчезает даже на новой учётной записи, скорее всего, дело в дефекте RAM. Память можно проверить штатным средством Windows — службой mdsched. Проверка может занимать несколько часов. Ошибки памяти, если они есть, после проверки никуда не исчезнут: придётся сбрасывать «разгон», если что-то меняли, а в худшем случае — менять оперативную память.

Ввод команды mdsched

Средство проверки памяти Windows

Помогла ли вам данная статья устранить назойливую ошибку службы RPC? Может быть, вам помог какой-то свой способ, не описанный здесь? Делитесь своими мыслями в комментариях — мы обязательно вам ответим.

При подключении **** к Windows инструментов управления (WMI), SQL Server при удаленном подключении или при некоторых оснастках консоли управления Майкрософт (MMC) может возникнуть недоступен сервер RPC. Следующее изображение является примером ошибки RPC.

Произошла следующая ошибка: сервер RPC недоступен.

Это обычно встречаемая ошибка в сетевом мире, и можно потерять надежду очень быстро, не пытаясь понять многое, что происходит "под капотом".

Прежде чем пустить на устранение неполадок недоступный сервер *RPC , давайте сначала рассмотрим основные принципы ошибки. Необходимо понимать несколько важных терминов:

  • Картограф конечной точки — это служба прослушивания на сервере, которая направляет клиентские приложения к серверным приложениям по порту и UUID.
  • Башня — описывает протокол RPC, чтобы позволить клиенту и серверу договориться о подключении.
  • Floor — содержимое башни с определенными данными, например портами, IP-адресами и идентификаторами.
  • UUID — хорошо известный GUID, идентифицирует приложение RPC. UUID — это то, что используется для того, чтобы увидеть определенный тип беседы приложения RPC, так как их, скорее всего, будет много.
  • Opnum — идентификатор функции, которую клиент хочет выполнить на сервере. Это просто hexadecimal номер, но хороший анализатор сети будет переводить функцию для вас. Если никто не знает, поставщик приложений должен сообщить вам.
  • Порт — конечные точки связи для клиентских и серверных приложений.
  • Данные Stub — данные, переданные функциям и данным, обмениваются между клиентом и сервером. Это полезной нагрузки, важной частью.

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

Как работает подключение

Клиент A хочет выполнить некоторые функции или хочет использовать службу, запущенную на удаленном сервере, сначала установит подключение к удаленному серверу, выполив трехполосное рукопожатие.

Схема, иллюстрированная подключение к удаленному серверу.

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

Настройка динамического распределения порта RPC

Динамическое распределение порта удаленного вызова процедуры (RPC) используется приложениями серверов и приложениями удаленного администрирования, такими как Dynamic Host Configuration Protocol (DHCP), менеджер Windows службы имен Интернета (WINS) и т. д. Динамическое распределение порта RPC будет поручить программе RPC использовать определенный случайный порт в диапазоне, настроенном для TCP и UDP, на основе реализации используемой операционной системы.

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

В качестве порта сервера выберите порт за пределами диапазона, который вы можете указать ниже. Полный список серверных портов, используемых в Windows и основных продуктах Майкрософт, можно найти в обзоре службы статьи и требованиях к сетевому порту для Windows. В статье также перечислены серверы RPC и какие RPC-серверы можно настроить для использования настраиваемых портов серверов за пределами объектов, которые предлагает время запуска RPC.

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

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

HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet\ Тип данных имени входа

Порты REG_MULTI_SZ

  • Указывает набор диапазонов IP-портов, состоящих из всех портов, доступных в Интернете, или всех портов, недоступных из Интернета. Каждая строка представляет один порт или набор портов включительно. Например, один порт может быть представлен 5984, а набор портов может быть представлен 5000-5100. Если какие-либо записи находятся за пределами диапазона от 0 до 65535 или если строка не может быть интерпретируется, время запуска RPC относится ко всей конфигурации как недействительной.

PortsInternetAvailable REG_SZ Y или N (не чувствительны к делу)

  • Если Y, порты, указанные в ключе Порты, являются всеми доступными в Интернете портами на этом компьютере. Если N, порты, указанные в ключе Порты, это все те порты, которые недоступны в Интернете.

UseInternetPorts REG_SZ ) Y или N (не чувствительны к делу)

  • Указывает политику по умолчанию системы.
  • Если Y, процессы, использующие по умолчанию, будут назначены портам из набора доступных в Интернете портов, как было определено ранее.
  • Если N, процессы, использующие по умолчанию, будут назначены портам из набора портов только для интрасети.

Пример.

В этом примере порты от 5000 до 6000 включительно были произвольно выбраны для иллюстрации настройки нового ключа реестра. Это не рекомендация минимального количества портов, необходимых для любой конкретной системы.

Добавьте ключ к Интернету в статье: HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc

В ключе Интернета добавьте значения "Порты" (MULTI_SZ), "PortsInternetAvailable" (REG_SZ) и "UseInternetPorts" (REG_SZ).

Например, новый ключ реестра отображается следующим образом: Порты: REG_MULTI_SZ: 5000-6000 PortsInternetAvailable: REG_SZ: Y UseInternetPorts: REG_SZ: Y

Перезапустите сервер. Все приложения, которые используют динамическое распределение порта RPC, используют порты от 5000 до 6000 включительно.

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

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

Если в конфигурации порта произошла ошибка или в пуле недостаточно портов, служба картографов конечных точек не сможет зарегистрировать серверы RPC с динамическими конечными точками. При ошибке конфигурации код ошибки будет 87 (0x57) ERROR_INVALID_PARAMETER. Это может повлиять Windows RPC-серверов, таких как Netlogon. В этом случае будет входить событие 5820:

Имя журнала. Источник системы: код событий NETLOGON: уровень 5820: Ключевые слова ошибки: классическое описание. Служба Netlogon не смогла добавить интерфейс RPC AuthZ. Служба была прекращена. Произошла следующая ошибка: "Параметр неправильный".

Если вы хотите глубоко погрузиться в работу, см. в рубцовской ленте RPC над ИТ-Pro.

Устранение ошибки RPC

PortQuery

Лучше всего всегда устранять проблемы RPC, прежде чем даже получить в следы, с помощью инструментов, таких как PortQry. Вы можете быстро определить, сможете ли вы сделать подключение, подав команду:

Это даст вам много выходных данных, но вы должны искать * ip_tcp - и номер порта в скобках, который рассказывает, удалось ли вам успешно получить динамический порт из EPM, а также сделать подключение к ней. Если вышеуказанное не удается, обычно можно приступить к сбору одновременных сетевых трассировок. Нечто подобное из вывода "PortQry":

Частичный выход ниже:

Одно в смелейшем является эфемерным номером порта, к который вы успешно подключены.

Netsh

Вы можете запустить команды ниже, чтобы использовать Windows встроенный захват сетки, чтобы собрать одновременный след. Не забудьте выполнить ниже на "Администратор CMD", он требует высоты.

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

Ipv4.address==<client-ip> и ipv4.address==<server-ip> и просто должны tcp.port==135 tcp.port==135 помочь.

Посмотрите протокол "EPM" в столбце "Протокол".

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

Скриншот сетевого монитора с динамическим портом выделен.

Проверьте, успешно ли мы подключаемся к этому динамическим порту.

Фильтр должен быть таким: tcp.port==<dynamic-port-allocated> и ipv4.address==<server-ip>

Снимок экрана сетевого монитора с примененным фильтром.

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

Порт, недоступный для

Самая распространенная причина, по которой сервер RPC недоступен, это когда динамический порт, к которым пытается подключиться клиент, недоступен. След стороне клиента будет затем показывать TCP SYN retransmits для динамического порта.

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