Download Article
Download Article
Terminal Server, which is currently known as Remote Desktop Services in the most recent versions of Microsoft Windows operating systems (2008 R2, 2012), is an application that allows users and administrators to access all other computers on the network from a remote location. Remote Desktop gives you the ability to restart or reboot a computer from a specific remote location; which can be useful if you need to reboot a computer in another location that is not responding to commands, or even if you want to restart a single computer from afar that happens to reside in a large office building with hundreds of users. Regardless of your reason, you can restart a computer using Remote Desktop in any version of Windows using the command prompt feature. Continue reading this article to learn how you can restart a particular computer using Remote Desktop.
Steps
-
1
Use Remote Desktop to connect to the computer you want restarted.
- Go to the computer you want to work on, then click on the «Start» button. If you are using Windows 7, the «Start» button will most likely appear in the form of the Windows logo.
- Enter «Remote Desktop Connection» into the search field located within the «Start» menu, then click directly on the link of the same name when it appears in the search results.
- Enter the Internet Protocol (IP) address or name of the computer that you want restarted into the «Computer» box.
- Click on the «Connect» button to connect to that specific computer from your remote location. You will now have the ability to enter commands that will allow that specific computer to reboot, or restart.
-
2
Access the command prompt. The procedure for accessing the command prompt will vary depending on the version of Windows being used.
- If you are using Windows 7, click on the «Start» menu, then type «command prompt» into the search box. The command prompt box will display as the first option in the list of search results.
- If you are using any other version of Windows, open your «Start» menu, click on «Run,» then type «cmd.» The command prompt box will then open on your screen.
Advertisement
-
3
Enter the command for restarting the computer. After the command has been entered, the computer will have been completely rebooted from the remote location.
- Type «shutdown -t 0 -r -f» into the command prompt box, then press the «Enter» key on your keyboard. This specific command will instruct the computer to terminate all running applications and restart the computer immediately in 0 seconds. This is not recommended, however, due to the complexities involved in restarting a terminal server properly. shutdown.exe merely calls an API that does a restart without any consideration as to the operating system and is not Terminal Services/Remote Desktop Services aware.
Advertisement
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
-
You can also restart a computer on your network without having to access that particular computer through Remote Desktop, but only if you are the network administrator. This can be done by following the steps to access Command Prompt, and entering «shutdown.exe -r -f -m remotecomputerIP -t 00,» with «remotecomputerIP» representing the IP address of the specific computer that needs to be restarted. There are commercial software programs designed for this purpose. Search the web for «rolling restart terminal servers».
Thanks for submitting a tip for review!
Advertisement
-
Both shutdown.exe and tsshutdown.exe do not cover everything that needs to be done for a proper terminal server restart. These programs merely call an API that does the shutdown process. You may see corrupt Registry entries with continued use of shutdown.exe or tsshutdown.exe.
Advertisement
About This Article
Thanks to all authors for creating a page that has been read 76,092 times.
Is this article up to date?
Download Article
Download Article
Terminal Server, which is currently known as Remote Desktop Services in the most recent versions of Microsoft Windows operating systems (2008 R2, 2012), is an application that allows users and administrators to access all other computers on the network from a remote location. Remote Desktop gives you the ability to restart or reboot a computer from a specific remote location; which can be useful if you need to reboot a computer in another location that is not responding to commands, or even if you want to restart a single computer from afar that happens to reside in a large office building with hundreds of users. Regardless of your reason, you can restart a computer using Remote Desktop in any version of Windows using the command prompt feature. Continue reading this article to learn how you can restart a particular computer using Remote Desktop.
Steps
-
1
Use Remote Desktop to connect to the computer you want restarted.
- Go to the computer you want to work on, then click on the «Start» button. If you are using Windows 7, the «Start» button will most likely appear in the form of the Windows logo.
- Enter «Remote Desktop Connection» into the search field located within the «Start» menu, then click directly on the link of the same name when it appears in the search results.
- Enter the Internet Protocol (IP) address or name of the computer that you want restarted into the «Computer» box.
- Click on the «Connect» button to connect to that specific computer from your remote location. You will now have the ability to enter commands that will allow that specific computer to reboot, or restart.
-
2
Access the command prompt. The procedure for accessing the command prompt will vary depending on the version of Windows being used.
- If you are using Windows 7, click on the «Start» menu, then type «command prompt» into the search box. The command prompt box will display as the first option in the list of search results.
- If you are using any other version of Windows, open your «Start» menu, click on «Run,» then type «cmd.» The command prompt box will then open on your screen.
Advertisement
-
3
Enter the command for restarting the computer. After the command has been entered, the computer will have been completely rebooted from the remote location.
- Type «shutdown -t 0 -r -f» into the command prompt box, then press the «Enter» key on your keyboard. This specific command will instruct the computer to terminate all running applications and restart the computer immediately in 0 seconds. This is not recommended, however, due to the complexities involved in restarting a terminal server properly. shutdown.exe merely calls an API that does a restart without any consideration as to the operating system and is not Terminal Services/Remote Desktop Services aware.
Advertisement
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
-
You can also restart a computer on your network without having to access that particular computer through Remote Desktop, but only if you are the network administrator. This can be done by following the steps to access Command Prompt, and entering «shutdown.exe -r -f -m remotecomputerIP -t 00,» with «remotecomputerIP» representing the IP address of the specific computer that needs to be restarted. There are commercial software programs designed for this purpose. Search the web for «rolling restart terminal servers».
Thanks for submitting a tip for review!
Advertisement
-
Both shutdown.exe and tsshutdown.exe do not cover everything that needs to be done for a proper terminal server restart. These programs merely call an API that does the shutdown process. You may see corrupt Registry entries with continued use of shutdown.exe or tsshutdown.exe.
Advertisement
About This Article
Thanks to all authors for creating a page that has been read 76,092 times.
Is this article up to date?
На чтение 2 мин Просмотров 2.8к. Опубликовано 11.12.2020
Перезапускаем службу RDP на удаленном компьютере с помощью команды SC
Задача перезагрузить службу, но доступ на компьютер есть только у администратора более нижнего уровня. RDP не работает, выходит ошибка подключения.
Решает проблему перезапуск службы.
Было выдвинуто несколько решений этой проблемы. Одно из них использовать перезапуск службы через команду SC.
Так как учетные записи совпадают по паре логинпароль и правам доступа, то проблем с использованием консоли не должно возникать.
Решение :
1. Останавливаем службу Удаленных рабочих столов
sc \192.168.111.10 stop UmRdpService sc \192.168.111.10 stop TermService |
2. Запускаем службу
sc \192.168.111.10 start UmRdpService |
Перезапуск службы через утилиту Psservice
PsService — это средство просмотра служб и контроллер для Windows. Как и служебная программа SC, включенная в наборы ресурсов Windows NT и Windows 2000, PsService отображает состояние, конфигурацию и зависимости службы, а также позволяет запускать, останавливать, останавливать, возобновлять и перезапускать их. В отличие от служебной программы SC , PsService позволяет выполнять вход в удаленную систему с помощью другой учетной записи, если у учетной записи, из которой она выполняется, нет необходимых разрешений на удаленную систему. PsService включает уникальную функцию поиска служб, которая определяет активные экземпляры службы в сети.
PsService.exe
PsService64.exe
Установка
Просто скопируйте PsService в исполняемый путь и введите psservice.
Использование: psservice [\computer [-u username] [-p password]] <commandoptions><>
Например для перезапуска службы IP Helper, нужно выполнить команду:
psservice \127.0.0.1 restart iphlpsvc
Параметр | Описание |
---|---|
query | Отображает состояние службы. |
config | Отображает конфигурацию службы. |
setconfig | Задает тип запуска (отключенный, автоматический, спрос) службы. |
start | Запускает службу. |
stop | Останавливает службу. |
restart | Перезапуск службы |
pause | Приостановка службы |
cont | Возобновляет приостановленную службу. |
depend | Выводит список служб, зависящих от указанного. |
security | Дамп дескриптора безопасности службы. |
find | Выполняет поиск по сети для указанной службы. |
\computer | Предназначено для указанной системы NT/Win2K. Включите параметр -u с именем пользователя и паролем для входа в удаленную систему, если учетные данные безопасности не позволяют получить сведения о счетчике производительности из удаленной системы. Если указать параметр -u, но не пароль с параметром -p, PsService предложит ввести пароль и не будет повторять его на экране. |
Содержание
- Ошибка RDP: Не удается завершить требуемую операцию, службы удаленных рабочих столов заняты
- #1 — Проверьте ресурсы RDS сервера
- #2 – Сброс сессии пользователя и завершение зависших процессов в RDS сессии
- #3 — Сброс сессии пользователя через командную строку
- #4 – Проверьте настройки лицензирования хоста RDS
- #5 – Уберите лимит RDP подключений в GPO
- #6 — Нестандартные решения: если ничего не помогает
- Служба удаленного рабочего стола не может быть перезапущена, Keep-Alive включена функция
- Симптомы
- Причина
- Решение
- Дополнительная информация
- Как перезапустить службу удаленных рабочих столов windows server
- Question
- Answers
- Перезапуск службы rdpclip на Windows Server
- Устранение неполадок с подключениями к Удаленному рабочему столу
- Проверка состояния протокола RDP
- Проверка состояния протокола RDP на локальном компьютере
- Проверка состояния протокола RDP на удаленном компьютере
- Проверка блокировки объектом групповой политики протокола RDP на локальном компьютере
- Проверка блокировки объектом групповой политики протокола RDP на удаленном компьютере
- Изменение блокирующего объекта групповой политики
- Проверка состояния служб RDP
- Проверка состояния прослушивателя протокола RDP
- Проверка состояния прослушивателя RDP
- Проверка состояния самозаверяющего сертификата протокола RDP
- Проверка разрешений для папки MachineKeys
- Проверка порта прослушивателя протокола RDP
- Проверка того, что другое приложение не пытается использовать тот же порт
- Проверка блокировки порта протокола RDP брандмауэром
Ошибка RDP: Не удается завершить требуемую операцию, службы удаленных рабочих столов заняты
Периодически некоторые пользователи не могут залогиниться на сервера RDS фермы Windows Server через стандартный rdp клиент с ошибкой:
Также несколько раз встречали такую картину: на вкладке Users диспетчера задач RDS хоста имеется множество зависших сессией пользователей с именами (4) вместо username и со статусом Disconnected.
Проблема встречается на всех версиях Windows Server: 2008 R2, 2012 R2, 2016 и 2019.
Ошибка может возникать по разным причинам:
К сожалению, на данный момент нет официального решения от Microsoft, которое бы полностью решало проблему, всё сводится к устранению симптомов.
Практически всегда проблема решается сбросом сессии проблемного пользователя и перезагрузкой RDS сервера, но в исключительных ситуациях этого может не хватить. Пройдемся по решениям, начиная от самых легких.
#1 — Проверьте ресурсы RDS сервера
Убедитесь, что серверу хватает ресурсов, так как эта ошибка может возникать из-за нехватки оперативной памяти или дискового пространства. Проверьте загруженность оперативной памяти и достаточно ли свободного места на диске, где установлена операционная система (должно быть свободно хотя бы 1 GB). Также проверьте event log на предмет критических ошибок, связанных с RDS.
Если ресурсов хватает, переходим к следующему варианту.
#2 – Сброс сессии пользователя и завершение зависших процессов в RDS сессии
Сначала попробуем найти и принудительно сбросить сессию пользователя, который не может зайти на RDS сервер. В диспетчере задач, на вкладке Users найдите нужного пользователя и через контекстное меню кликаем “Log off”. В большинстве случаев, этого достаточно, но иногда в диспетчере задач вы можете обнаружить множество зависших сессий с именем “(4)” вместо имени пользователя. Как правило в зависшей сессии будет присутствовать 4 процесса:
В первую очередь попробуйте завершить все зависшие сессии с (4) через диспетчер задач, как описано выше. Если это не поможет, то лучше всего перезагрузить сервер, но зачастую такой возможности нет, поэтому пробуем решить проблему без перезагрузки:
Это нужно проделать с каждым пользователем “(4)”, если их несколько.
#3 — Сброс сессии пользователя через командную строку
Если разлогинить “проблемного” пользователя через диспетчер задач не удалось, можно попробовать сбросить сессию пользователя через командную строку.
Это нужно сделать с каждым проблемным пользователем. Теперь можете попробовать залогиниться, проблема должна решиться. Если у вас есть возможность перезагрузить сервер, то лучше сделать это.
#4 – Проверьте настройки лицензирования хоста RDS
Проверьте, что у вас на RDSH хосте указан правильный сервер лицензирования и тип лицензии (CAL Per User/ CAL Per Device).
Адрес сервера с лицензиями RDS можно указать:
#5 – Уберите лимит RDP подключений в GPO
Через групповые политики можно ограничить количество одновременных подключений по RDS. По умолчанию данная политика выключена.
С помошью gpresult нужно проверить, включена ли политика и какое в ней указано значение.
Если такой политики нет, значит она не применяется и ограничений по количеству одновременных подключений нет. Если политика есть и указано количество одновременных подключений, измените её значение на нужное вам число. Изменить групповую политику можно через оснастку gpedit.msc, если политика настроена через доменные GPO, отредактируйте соответствующую политику через gpmc.msc. После того как отредактируете политику, не забудьте набрать в командной строке gpupdate /force для немедленного применения политики.
#6 — Нестандартные решения: если ничего не помогает
Если ресурсов у вас хватает, ошибок в журнале нет, перезагружаться нельзя, а сброс сессии по каким-то причинам не помог, то следует попробовать следующие варианты:
Источник
Служба удаленного рабочего стола не может быть перезапущена, Keep-Alive включена функция
В этой статье данная статья позволяет решить проблему, из-за которой нельзя перезапустить службы удаленного рабочего стола (службы терминалов), если Keep-Alive включена.
Применяется к: Windows Server 2012 R2
Исходный номер КБ: 2507353
Симптомы
Если функция RDP Keep-Alive включена на сервере Windows Server 2008 (или Windows Server 2008 R2), Ручная остановка службы удаленных настольных служб (Windows Server 2008 R2) или службы терминалов (Windows Server 2008) оставит сервер в нестабильном состоянии: перезапуск службы не позволит повторно включить функции RDP, и сервер зависнет во время остановки.
Причина
При включенном Keep-Alive поток запускается службой удаленных настольных служб (терминалов), однако она запускается в режиме Ядра и поэтому не может быть автоматически завершена при остановке службы.
Решение
Не пытайтесь остановить или перезапустить службу служб удаленного рабочего стола (Службы терминалов), если включен механизм сохраняемого RDP.
Дополнительная информация
Когда Keep-Alive включена и служба удаленного рабочего стола (службы терминалов) остановлена, процесс svchost.exe останется в списке Задач, даже если служба, как сообщается, была остановлена правильно. При повторном запуске службы будет запущен новый svchost.exe однако сервер не будет принимать входящие подключения RDP из-за несоответствия в состоянии драйвера TermDD.
Функция Keep-Alive может быть включена групповой политикой:
Windows Server 2008 R2
Административные шаблоны конфигурации компьютеров Windows компоненты удаленных настольных служб удаленных подключений к сеансам рабочего стола
Настройка Keep-Alive интервала подключения
Windows Server 2008
Административные шаблоны конфигурации компьютеров Windows компоненты терминала серверных подключений
Источник
Как перезапустить службу удаленных рабочих столов windows server
Question
Answers
Yes, open up a command prompt as a administrator and type in the following commands:
net stop TermService
net start TermService
There is PowerShell script for enabling Remote Desktop:
Checking and enabling Remote Desktop with PowerShell
Based on my experience, I don’t know a direct command-line to enable this feature.
From Windows Server 2008 Core edition, here is one:
How to enable Remote Desktop on Windows 2008 Server Core
· Lionel Chen
If you have any feedback on our support, please contact tngfd@microsoft.com
This posting is provided «AS IS» with no warranties, and confers no rights.
Источник
Перезапуск службы rdpclip на Windows Server
Устранение проблемы с буфером обмена на Windows server
Периодически пользователи Windows Server сталкиваются с проблемами с буфером обмена при RDP-подключении. Подобные ситуации возникают, когда используется несколько активных терминальных сессий. Именно это и является причиной того, что простая операция copy/paste перестает работать через RDP-сессию (копируете на локальном компьютере, вставляете на удаленном или наоборот).
Подобные сбои могут коснуться только одного соединения, а не всех сразу.
Для устранения проблемы пользователи вынуждены переподключаться к RDP-серверу выполнив выход из системы.
Существует решение этой проблемы — перезапуск процесса rdpclip.exe.
Данный процесс отвечает за функционирование буфера обмена в терминальной сессии — Remote Desktop Clipboard.
Каждый раз, когда пользователь подключается или переподключается к удаленному рабочему столу, процесс запускается заново.
Для перезапуска процесса достаточно запустить Диспетчер задач в RDP-сессии, кликнув правой кнопкой мыши на панели задач и выбрав соответствующий пункт в меню.
В открывшемся окне Диспетчера задач, на вкладке Процессы, кликаем правой кнопкой мыши по процессу rdpclip.exe или Монитор буфера обмена RDP.
В контекстном меню выбираем Снять задачу.
Запуск процесса происходит из того же окна Диспетчера задач.
Для этого в меню окна нажимаем кнопку Файл → Запустить новую задачу
В новом окне, в поле вводим rdpclip.exe и кликаем по кнопке OK.
Важно, использование буфера обмена должно быть включено в настройках подключения удаленного доступа.
Нажимаем по кнопке Показать параметры.
Во вкладке Локальные ресурсы проверяем наличие галочки Буфер обмена.
Если у Вас возникнут трудности в настройке или появятся дополнительные вопросы, вы всегда можете обращаться в нашу службу поддержки через систему тикетов.
Источник
Устранение неполадок с подключениями к Удаленному рабочему столу
Выполните приведенные ниже действия, если клиенту Удаленного рабочего стола не удается подключиться к удаленному рабочему столу, и отсутствуют сообщения или другие признаки, по которым можно определить причину.
Проверка состояния протокола RDP
Проверка состояния протокола RDP на локальном компьютере
Сведения о том, как проверить и изменить состояние протокола RDP на локальном компьютере, см. в разделе How to enable Remote Desktop (Как включить удаленный рабочий стол).
Проверка состояния протокола RDP на удаленном компьютере
В точности следуйте инструкциям из этого раздела. Неправильное изменение реестра может вызвать серьезные проблемы. Прежде чем редактировать реестр, создайте резервную копию реестра, чтобы вы могли восстановить его в случае ошибки.
Чтобы проверить и изменить состояние протокола удаленного рабочего стола на удаленном компьютере, используйте подключение сетевого реестра:
Проверка блокировки объектом групповой политики протокола RDP на локальном компьютере
Если не удается включить протокол RDP в пользовательском интерфейсе или для fDenyTSConnections возвращается значение 1 после его изменения, объект групповой политики может переопределять параметры на уровне компьютера.
Чтобы проверить конфигурацию групповой политики на локальном компьютере, откройте окно командной строки с правами администратора и введите следующую команду:
Когда команда будет выполнена, откройте файл gpresult.html. Выберите Конфигурация компьютераАдминистративные шаблоныКомпоненты WindowsСлужбы удаленных рабочих столовУзел сеансов удаленных рабочих столовПодключения и найдите политику Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.
Если для параметра этой политики задано значение Включено, групповая политика не блокирует подключения по протоколу RDP.
Если же для параметра этой политики задано значение Отключено, проверьте результирующий объект групповой политики. Ниже показано, какой объект групповой политики блокирует подключения по протоколу RDP.
Проверка блокировки объектом групповой политики протокола RDP на удаленном компьютере
Чтобы проверить конфигурацию групповой политики на удаленном компьютере, нужно выполнить почти такую же команду, что и для локального компьютера.
Изменение блокирующего объекта групповой политики
Эти параметры можно изменить в редакторе объектов групповой политики (GPE) и консоли управления групповыми политиками (GPM). Дополнительные сведения об использовании групповой политики см. в статье Advanced Group Policy Management (Расширенное управление групповыми политиками).
Чтобы изменить блокирующую политику, используйте один из следующих методов.
Проверка состояния служб RDP
На локальном компьютере (клиентском) и удаленном компьютере (целевом) должны быть запущены следующие службы:
Для локального или удаленного управления службами можно использовать оснастку MMC. Вы также можете использовать PowerShell для управления службами в локальном или удаленном расположении (если удаленный компьютер настроен для приема удаленных командлетов PowerShell).
На любом компьютере запустите одну или обе службы, если они запущены.
Если вы запускаете службу удаленных рабочих столов, нажмите кнопку Да, чтобы служба перенаправителя портов пользовательского режима служб удаленного рабочего стола перезапустилась автоматически.
Проверка состояния прослушивателя протокола RDP
В точности следуйте инструкциям из этого раздела. Неправильное изменение реестра может вызвать серьезные проблемы. Прежде чем редактировать реестр, создайте резервную копию реестра, чтобы вы могли восстановить его в случае ошибки.
Проверка состояния прослушивателя RDP
Для выполнения этой процедуры используйте экземпляр PowerShell с разрешениями администратора. На локальном компьютере также можно использовать командную строку с разрешениями администратора. Но для этой процедуры используется PowerShell, так как одни и те же командлеты выполняются локально и удаленно.
Чтобы подключиться к удаленному компьютеру, выполните следующий командлет:
Введите qwinsta.
Если в списке содержится rdp-tcp с состоянием Listen, прослушиватель протокола удаленного рабочего стола работает. Перейдите к разделу Проверка порта прослушивателя протокола RDP. В противном случае перейдите к шагу 4.
Экспортируйте конфигурацию прослушивателя RDP с рабочего компьютера.
Чтобы импортировать конфигурацию прослушивателя протокола RDP, откройте окно PowerShell с разрешениями администратора на затронутом компьютере (или откройте окно PowerShell и подключитесь к этому компьютеру из удаленного расположения).
Чтобы создать резервную копию для существующей записи реестра, воспользуйтесь таким командлетом:
Чтобы удалить резервную копию для существующей записи реестра, воспользуйтесь таким командлетом:
Чтобы импортировать новую запись реестра и перезапустить службу, воспользуйтесь такими командлетами:
Замените именем экспортированного REG-файла.
Проверьте конфигурацию, попытавшись еще раз подключиться к удаленному рабочему столу. Если подключиться все равно не удается, перезагрузите затронутый компьютер.
Проверка состояния самозаверяющего сертификата протокола RDP
Проверка разрешений для папки MachineKeys
Проверка порта прослушивателя протокола RDP
На локальном компьютере (клиентском) и удаленном компьютере (целевом) прослушиватель протокола RDP должен ожидать передачи данных через порт 3389. Другие приложения не должны использовать этот порт.
В точности следуйте инструкциям из этого раздела. Неправильное изменение реестра может вызвать серьезные проблемы. Прежде чем редактировать реестр, создайте резервную копию реестра, чтобы вы могли восстановить его в случае ошибки.
Чтобы проверить или изменить порт протокола RDP, используйте редактор реестра:
Для управления службами удаленного рабочего стола можно использовать другой порт. Но мы не рекомендуем делать это. В этой статье не описано, как устранять проблемы, связанные с этим типом конфигурации.
Проверка того, что другое приложение не пытается использовать тот же порт
Для выполнения этой процедуры используйте экземпляр PowerShell с разрешениями администратора. На локальном компьютере также можно использовать командную строку с разрешениями администратора. Но для этой процедуры используется PowerShell, так как одни и те же командлеты выполняются локально и удаленно.
Введите следующую команду:
Найдите запись для TCP-порта 3389 (или назначенного RDP-порта) с состоянием Ожидает вызова.
Идентификатор процесса службы или процесса, использующих этот порт, отобразится в столбце «Идентификатор процесса».
Чтобы определить, какое приложение использует порт 3389 (или назначенный порт протокола RDP), введите следующую команду:
Найдите запись для номера процесса, связанного с портом (в выходных данных netstat). Службы или процессы, связанные с этим идентификатором процесса, отобразятся в столбце справа.
Если порт используется приложением или службой, отличающейся от служб удаленных рабочих столов (TermServ.exe), устранить конфликт можно с помощью одного из следующих методов:
Проверка блокировки порта протокола RDP брандмауэром
С помощью средства psping проверьте, доступен ли затронутый компьютер через порт 3389.
Перейдите на другой компьютер, на котором такая проблема не возникает, и скачайте psping отсюда: https://live.sysinternals.com/psping.exe.
Откройте окно командной строки с правами администратора, перейдите в каталог, где установлено средство psping, и введите следующую команду:
Проверьте выходные данные команды psping на наличие таких результатов:
Запустите psping на нескольких компьютерах, чтобы проверить возможность подключения к затронутому компьютеру.
Проверьте, блокирует ли этот компьютер подключения от всех остальных компьютеров, некоторых других компьютеров или только одного компьютера.
Рекомендуемые дальнейшие действия:
Источник
WARNING: Test this process before you try it on an production system, to make sure you like the results and have the process down.
Problem:
RDP has stopped working but your server still work just users can’t connect to modify applications
The most common fix is to reboot windows, because “Remote Desktop Services” aka TermService can’t be restarted at least thats the case on 2003 as the option is grayed out. This will also create an outage just for a remote control issue and thats not always desirable.
The fix: (remotely)
from command line
- tasklist /s \servername /svc /fi “imagename eq svchost.exe” (locate PID for TermService)
- taskkill /s \servername /pid xxxx (may need /f to force, UAC might give problems as well)
- sc \servername start TermService
The Fix: (local, using remote admin card/other remote control software/other remote command line)
From command line
- tasklist /svc /fi “imagename eq svchost.exe” (locate PID for TermService)
- taskkill /pid xxxx (may need /f to force, UAC might give problems as well)
- sc \servername start TermService
more helpful RDP troubleshooting
http://support.microsoft.com/kb/2477176
Обновлено 08.12.2022
Добрый день! Уважаемые читатели и гости, IT блога Pyatilistnik.org. В прошлый раз мы с вами поговорили, про отложенный запуск служб в Windows, сегодня я хочу вам показать еще один не приятный момент в работе терминальных служб удаленного рабочего стола, а именно ошибка подключения «Произошла внутренняя ошибка«, после чего подключение разрывается. Такое я встречал уже в Windows Server 2012 R2 и 2016. Давайте разбираться в чем дело.
Описание проблемы
Есть сервер с операционной системой Windows Server 2012 R2, сотрудник пытается к нему подключиться, через классическую утилиту «Подключение к удаленному рабочему столу», в момент авторизации, выскакивает окно с ошибкой «Произошла внутренняя ошибка».
В английском варианте ошибка звучит вот так:
An internal error has occurred
После этого у вас разрывается соединение. Когда мы видели моргающий экран по RDP, там хотя бы вы попадали на сервер и могли открыть диспетчер устройств, тут сразу все обрубается на корню. Давайте смотреть, что можно сделать.
🆘 Что есть в логах?
Если посмотреть журналы событий на удаленном сервере, куда вы пытаетесь подключиться, то там порядок событий будет такой:
События нужно искать в журнале Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
- 1️⃣ Первым будет идти событие ID 131 «The server accepted a new TCP connection from client IP-адрес:60050.». Тут вы увидите IP-адрес с которого идет попытка входа.
- 2️⃣ Далее событие ID 65 «Connection RDP-Tcp#11 created «.
- 3️⃣ Затем событие 141 «PerfCounter session started with instance ID 11». Тут сессии будет назначен ID.
- 4️⃣ За ним будет идти ID 142 «TCP socket READ operation failed, error 1236».
- 5️⃣ Потом вы увидите ID 72 «Interface method called: OnDisconnected»
- 6️⃣ И же после этого вам покажут, что сервер разорвал подключение: «ID 102 The server has terminated main RDP connection with the client.»
- 7️⃣ В событии ID 145 так же появляются подробности «During this connection, server has not sent data or graphics update for 0 seconds (Idle1: 0, Idle2: 0).».
- 8️⃣ Могут быть события с ID 148 «Channel rdpinpt has been closed between the server and the client on transport tunnel: 0.» или «Channel rdpcmd has been closed between the server and the client on transport tunnel: 0.» или «Channel rdplic has been closed between the server and the client on transport tunnel: 0.»
- 9️⃣ Ну и вишенка на торте, ошибка ID 227 «‘Failed to get property Disconnect Reason’ in CUMRDPConnection::Close at 2212 err=[0x80070057]»
Исправляем ошибку «Произошла внутренняя ошибка»
Так как по RDP подключиться не получается, то первым делом нужно проверить отвечает ли порт, по умолчанию это 3389. О том, как проверить порт на удаленном сервере я вам описывал, там все сводилось к выполнению команды Telnet, ознакомьтесь. Если порт отвечает, то делаем следующее.
Нужно удаленно перезапустить службу на этом сервере, чтобы сам сервер не перезагружать, так как в этот момент, он может выполнять важные задачи, можно использовать утилиту «Управление компьютером». Открыть ее можно через команду вызова оснастки, вызываем окно «Выполнить», через одновременное нажатие клавиш WIN и R, в котором пишем:
В открывшейся оснастке, щелкните в самом верху по пункту «Управление компьютером» правым кликом мыши, и выберите пункт «Подключиться к удаленному компьютеру».
Выберите пункт «Другим компьютером» и укажите его DNS имя, или найдите его через кнопку обзор.
Когда вы подключитесь к нужному серверу, перейдите в пункт «Службы и приложения — Службы», в списке сервисов найдите службу удаленных рабочих столов (Remote Desktop Services), и перезапускаем ее. После этого ошибка подключения по RDP «Произошла внутренняя ошибка», у вас должна пропасть.
Так же вы можете использовать оболочку PowerShell запущенную от имени пользователя, у которого есть права на удаленный сервер, где будет перезапускаться служба RDP. Выполните:
Get-Service TermService -ComputerName Имя сервера | Restart-Service –force –verbose
Дополнительные методы решения
Если вам не помог первый метод, перезапускающий службу удаленных рабочих столов, то можно попробовать выполнить правку реестра. Открываете редактор реестра Windows, если у вас физического доступа к серверу нет или он далеко и вам лень до него идти, то можно попробовать подключиться к реестру удаленного сервера.
Для этого в окне «Редактор реестра» пункт меню «Файл — Подключить сетевой реестр».
В открывшемся окне «Выбор компьютера» указываем его DNS-имя или ip-адрес и нажимаем ок. У вас будет установлено подключение к удаленному реестру сервера, что испытывает проблемы.
Находим ключ CheckMode по пути
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl Session ManagerCProIntegrityCheckMode
Перед любыми правками реестра, обязательно сделайте выгрузку нужной ветки, чтобы можно было восстановить все в оперативном режиме
Выставляем ему значение о, чтобы отключить у программы КриптоПРО CSP проверку контрольных сумм. Еще один важный момент, если у вас старая версия КриптоПРО, то это так же может быть источником, проблем, недавний пример, это ошибка «Windows installer service could not be accessed». Для этого удаляем правильно КриптоПРО CSP и ставим последнюю доступную версию.
Еще можно попробовать изменить значение вот такого ключа реестра:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl Session ManagerMemory ManagementSessionImageSize
Найдите ключ SessionImageSize и задайте ему значение 0x00000020.
Дополнительные настройки RDP клиента
Например ошибка «An internal error has occurred» у меня встретилась на Windows Server 2022 и там мне помогло в настройках клиента RDP отключение некой опции. Перейдите в дополнительные настройки клиента для удаленного подключения, где н вкладке «Experiens (Взаимодействие)» вам нужно убрать галку с опции «Восстановить подключение при разрыве (Reconnect if the connection is droped)«
На каких-то сайтах предлагалось именно активировать данный пункт.
Удаление кэша подключений
Еще одним методом решения внутренней ошибки подключения по RDP может выступать поврежденный кэш, который хранится на локальном компьютере пользователя. Для его отображения вам необходимо включить отображение скрытых папок и удалить содержимое папки:
C:Usersимя пользователяAppDataLocalMicrosoftTerminal Server Client
Обновление 07.12.2022
В декабре я вновь столкнулся с внутренней ошибкой, она еще стала проявлять себя вот так:
Не удается подключиться к удаленному компьютеру
Произошла внутренняя ошибка. Код ошибки: 0x4. Расширенный код ошибки: 0x0
В логах сервера очень много ошибок:
Она возникает, при каждой попытке войти на рабочий стол, это и есть проблема в моем конкретном случае. Устраните ее, и ошибка с подключекнием уйдет. Перезагрузка не нужна.
Данная ошибка говорит, что на тот сертификат, что использует удаленный сервер, нет прав у самого сервера, подробности выше по ссылке
На клиентской машине откуда я пытался произвести подключение было три события:
ID 1024: Выполняется подключение RDP ClientActiveX к серверу (ter104)
ID 1105: Мультитранспортное подключение разорвано.
ID 1028: Отключение RDP ClientActiveX (Причина= 2308)
Код 2808 — Ваш сеанс служб удаленных рабочих столов завершен. Соединение с удаленным компьютером было потеряно, возможно, из-за проблем с сетевым подключением. Попробуйте снова подключиться к удаленному компьютеру. Если проблема не исчезнет, обратитесь к сетевому администратору или в службу технической поддержки.
Так как у меня это была виртуальная машина, то я смог легко подключиться через консоль. В случае с ошибкой «Отключение RDP ClientActiveX (Причина= 2308)«, я отключил на сервере и клиенте autotuninglevel:
netsh interface tcp set global autotuninglevel=disabled
Не забываем перезагрузиться.
Это не помогло, далее я выполнил еще несколько рекомендаций. Я установил на сервер валидный SSL сертификат для RDP сессии. В ошибке 0x907, RDP соединение разрывалось, так как клиентская система не доверяла самоподписному сертификату удаленного сервера. Это нужно поправить, ссылку я указал, обязательно проверьте, кто сейчас выступает в роли активного:
Get-WmiObject «Win32_TSGeneralSetting» -Namespace rootcimv2terminalservices -Filter «TerminalName=’RDP-tcp'»
Еще я создал параметр реестра MaxOutstandingConnections. В Windows по умолчанию есть ограничения на количество сетевых подключений, так например в серверной версии, это параметр равен 3000, в десктопной 100. Из-за нестабильной сети, они могут быстро забиваться. Одно из решений проблемы с внутренней ошибкой подключения, является увеличение этого значения. В командной строке в режиме администратора выполните:
REG ADD «HKLMSYSTEMCurrentControlSetControlTerminal Server» /v MaxOutstandingConnections /t REG_DWORD /d 65536
New-ItemProperty -Path «HKLM:SYSTEMCurrentControlSetControlTerminal Server»
-Name MaxOutstandingConnections -Value 10000 -PropertyType DWORD -Force
После этого нужно перезагрузиться.
Временное решение
Пока вы не уберете ошибку «Код ошибки, возвращенный модулем шифрования: ошибка 0x8009030D», описанную выше, вы можете понизить уровень безопасности вот такими манипуляциями, это устранит «An internal error has occurred».
На обычном сервере все это помогло, а вот на ноде RDSH ошибка оставалась. Тут я решил проверить догадку с уровнем безопасности «Configure security settings». На моей ферме был уровень «Согласования (Negotiate)«
Я пошел на сервер, где были проблемы подключения и решил проверить один параметр локальной политики gpedit.msc.
Конфигурация компьютера — Административные шаблоны- Компоненты Windows — Службы удаленных рабочих столов — Узел сеансов удаленных рабочих столов — Безопасность — Требовать использование специального уровня безопасности для удаленных подключений по протоколу RDP
Тут попробуйте выставить уровень RDP. В результате у меня после этих настроек все заработало. Теперь нужно понять, что изменилось. В настройках RDS фермы указано, что мы используем уровень согласование:
* Согласование: метод согласования принудительно применяет самый безопасный метод, поддерживаемый клиентом. Если поддерживается протокол TLS версии 1.0, то он используется для проверки подлинности сервера узла сеансов удаленных рабочих столов. Если протокол TLS не поддерживается, то для обеспечения безопасности взаимодействий используется собственное шифрование протокола удаленного рабочего стола (RDP), но проверка подлинности сервера узла сеансов удаленных рабочих столов не выполняется. В отличие от SSL-шифрования, использовать собственное шифрование RDP не рекомендуется.
Если и это вам не помогло, то нужно смотреть вариант в сторону обновления или переустановки драйверов на сетевую карту, тут вы определяете модель вашей карты или материнской платы, если в нее все интегрировано и обновляете. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Дополнительные ссылки
- https://serverfault.com/questions/934026/windows-10-pro-rdp-server-an-internal-error-has-occurred
- https://social.technet.microsoft.com/Forums/en-US/e1d60cc0-0096-4859-a0e7-eb7f11905737/remote-desktop-v10-error-0x4-from-mac?forum=winRDc
- https://learn.microsoft.com/en-us/answers/questions/108219/can-not-rdp-to-2012-r2-standard-server-after-septe.html
- https://serverfault.com/questions/541364/how-to-fix-rdp-on-windows-server-2012