Назад | Перейти на главную страницу

Не удается выполнить RDP для Win 2003 или инициировать удаленный перезапуск

У меня есть сервер Windows 2003, который находится в моем удаленном центре обработки данных. Сегодня утром я попытался подключиться к нему по RDP, но соединение не удалось со следующей ошибкой:

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

Я также пытался выполнить команду удаленного выключения / перезапуска с помощью команды «shutdown -i» из моей локальной системы. Об ошибках не сообщается, однако система не перезагружается.

На этом сервере работает SQL Server 2005, он по-прежнему полностью функционирует и реагирует на запросы.

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

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

Я столкнулся с той же проблемой, пытаясь выполнить удаленную перезагрузку на компьютере с Windows XP. В итоге я использовал команду PsKill, часть Пакет SysInternals PsTools, чтобы убить процесс Winlogon, например:

pskill \\hostname winlogon

Это приведет к немедленной перезагрузке удаленного компьютера.

Вместо этого попробуйте:

shutdown -r -f -m \\hostname -c "Comment goes here"

Это немного радикально, но мне нужно было сделать это в среде, очень похожей на то, что вы описываете. Я также открываю окно cmd и запускаю команду ping -t против сервера, чтобы посмотреть, когда стек IP опускается и возвращается обратно. Это очень полезный индикатор активности, когда у вас нет физического доступа к серверу (или вам лень встать и подойти к нему).

РЕДАКТИРОВАТЬ: (на основе вашего комментария) Хорошо, сделайте это сначала, а затем попробуйте снова (или перезапустите его как обычно, если это сработает). Смотрите, что продвигает вас дальше. -A прервет завершение работы системы.

shutdown -a -m \\hostname

Что ж, это немного безумие, но вы можете включить xp_cmdshell на SQL Server, а затем выполнять команды от имени пользователя, на котором запущен SQL Server, поэтому вы можете выполнить shutdown -r, если он не будет слушать удаленные команды.

Если вы хотите попытаться перезапустить RDP без перезагрузки компьютера, вы можете попробовать (это не проверено; я не собираюсь делать это ни на одном из моих компьютеров: D):

Выясните, что прослушивает 3389 (порт RDP), запросив:

xp_cmdshell 'netstat -anO | findstr ":3389"'

Убейте pid с помощью taskkill. Наконец, выпустите

NET START "TERMINAL SERVICES"

Задержите дыхание и попробуйте снова RDP.

Если вы выполнили выключение / перезагрузку и сервер просто не выйдет из строя, вы можете убить процесс wininit.exe с помощью инструмента pskill. В Windows 2012 вы можете использовать собственный инструмент taskkill.

Сначала проверьте, всегда ли вы уверены в этом, проверьте, пропускает ли брандмауэр RDP;) Это не глупо, это просто иногда происходит из ниоткуда;)

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

Подобные вещи случаются и со мной на моем сервере 2003 R2.

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

Это не столько ответ на ваш вопрос, сколько объяснение того, что могло его вызвать. Я видел, как RDP несколько раз переставал работать в Windows Server 2003, и обычно это происходит в одном из двух сценариев;

  1. Пост-патч. Система перезагружается после автоматического обновления, но не выключается полностью. Терминальные сеансы завершаются, и новые соединения не принимаются, но сервер (файл, mssql, DC) продолжает работать.

  2. Эта статья в базе знаний CTX116901 описывает неисправность, в которой пространство изображения сеанса слишком мало и он не может больше загружать драйверы видео или принтера (следовательно, это проблема для серверов MetaFrame).

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

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "SessionImageSize" /t REG_DWORD /d 0x20  

Попробуйте такие значения, как,
0x10 (16 Мб)
0x20 (32 Мб)

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

Обычно это вызвано задачей, которая не завершается, сервер ожидает завершения задачи, чтобы продолжить перезапуск. вы можете решить эту проблему, найдя виноватую задачу и удаленно закрыв ее. использование: tasklist / s HostName обычно SQL является непосредственным подозреваемым. используйте Taskkill, чтобы убить его, и сервер продолжит перезапуск.