При работе с удаленными рабочими столами (RDP) стандартной практикой является указание адреса сервера вместе с номером порта через двоеточие, например, 192.168.1.100:3344. Однако пользователи Windows 10 иногда сталкиваются с парадоксальной ситуацией: встроенный клиент mstsc.exe выдает предупреждение о том, что имя компьютера задано неправильно, указывая на двоеточие как на недопустимый символ. При этом на других версиях ОС (например, Windows 7) та же самая строка подключения работает корректно.
В данной статье мы проанализируем ситуацию, выясним причины такого поведения системы и разберем по шагам несколько эффективных способов решения этой проблемы.
Ошибка чаще всего связана не с физической поломкой клавиатуры или «неправильным» портом, а с логическими сбоями в парсере строки подключения или в кэше истории подключений. Когда вы вводите адрес в поле «Компьютер», графический интерфейс (GUI) программы mstsc.exe запускает проверку символов. Если в реестре накопились поврежденные записи об истории подключений или произошел сбой в библиотеке mstscax.dll, валидатор начинает блокировать стандартные символы разделителя.
Один из самых действенных методов — это принудительная очистка веток реестра, в которых хранятся данные о предыдущих сессиях. Рассмотрим подробнее, как это сделать безопасно.
regedit и нажмите Enter.HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client
MRU0, MRU1 и так далее (Most Recently Used). Выделим и удалим все эти параметры.Servers целиком, а затем создать пустой раздел с тем же именем. Это полностью обнулит историю для клиента RDP.explorer.exe.Если визуальный редактор блокирует ввод двоеточия, мы можем передать параметры подключения напрямую ядру RDP-клиента, минуя стадию проверки в окне ввода. Для этого воспользуемся командной строкой или окном «Выполнить».
Разберем по шагам запуск подключения через консоль:
/v (от англ. server):
mstsc /v:192.168.1.100:54321
Этот метод хорош тем, что он исключает влияние любых ошибок интерфейса mstsc.exe.
Если вам нужно постоянно подключаться к этому серверу, каждый раз использовать командную строку неудобно. В таком случае мы можем создать файл конфигурации и прописать порт вручную в его текстовом теле.
server.rdp).full address:s:.
full address:s:192.168.1.100:54321
Иногда помогает «обмануть» логику программы, используя синтаксис, предназначенный для IPv6-адресов. Даже если вы используете обычный IPv4, заключение адреса в квадратные скобки заставляет систему использовать альтернативный алгоритм обработки строки.
Попробуйте ввести адрес в таком формате:
[192.168.1.100]:54321
В некоторых сборках Windows 10 это мгновенно снимает ограничение на ввод двоеточия, так как парсер распознает конструкцию как единый объект сетевого адреса.
Если проблема носит системный характер (например, ошибка появляется при каждом подключении на конкретной машине, а на других — нет), выясним причину возможного повреждения библиотек. В Windows 10 компоненты RDP могут быть модифицированы сторонними патчами (например, для разрешения нескольких одновременных сессий) или повреждены антивирусным ПО.
sfc /scannow
mstsc.exe или mstscax.dll, она автоматически восстановит их из защищенного хранилища.Проанализируем ситуацию с раскладкой клавиатуры. Крайне редко, но случается, что символ двоеточия, введенный в русской раскладке (через Shift+6), кодируется иначе, чем в английской (Shift+ж). Хотя визуально они идентичны, для системы это могут быть разные символы. Попробуйте переключиться на английскую раскладку EN (США) и ввести адрес заново с клавиатуры, не используя копирование и вставку.
Также стоит проверить наличие сторонних программ, перехватывающих ввод (менеджеры паролей, утилиты для автоматической смены раскладки вроде Punto Switcher). Они могут добавлять в строку невидимые символы форматирования, которые и вызывают гнев валидатора RDP.
Таким образом, мы рассмотрели основные способы решения проблемы. Наиболее быстрым и эффективным является использование командной строки или правка .rdp файла, так как это полностью обходит проблемный участок программного кода клиента.