Русификация удаленной консоли Windows
Среда, 22 декабря, 2010 Оставьте комментарий
Удаленная консоль в Windows
Системный администратор, существо достаточно ленивое. Поэтому ходить самому по множеству разрозненных серверов и компьютеров, находящихся в его подчинении он не любит. Специально для таких случаев придумали удаленное управление. Чаще всего начинающие системные администраторы, под этим словом понимают подключение к компьютеру или серверу через протоколы RDP, Radmin и т.д. Они конечно дают отображение экрана или терминальной сессии, но часто все это излишне или же просто невозможно. Для таких случаев используют удаленную консоль. Она позволяет вести управление компьютером, и не потребляет много трафика. В *NIX системах для этого используется протокол SSH. Он встроен в большинство систем и прекрасно работает уже много лет. В Windows системах изначально не было простых, а главное бесплатных утилит для удаленного управления консолью. Одной из первых таких утилит была PsExec из комплекта PsTools компании Sysinternals (http://technet.microsoft.com/ru-ru/sysinternals/bb896649).
Она позволяет удаленно запускать консольные (и не только) программы на нужных вам компьютерах, и получать их выход в случае возможности. Так же она не требует, что-либо устанавливать, на управляемый компьютер.
Идеологическим продолжением этой утилиты и самой актуальной средой на сегодня является среда PowerShell (http://support.microsoft.com/kb/968930), в ней начиная со второй версии, встроена возможность удаленного подключения к консоли компьютера, на которой установлена эта среда и работа с ней. Работает эта среда, на всех компьютерах начиная с Windows XP
Для удаленного управления компьютером с помощью PowerShell 2.0 используется командлет Enter-PSSession. Однако предварительно на тот компьютер нужно установить среду PowerShell 2.0 (в Windows 7 и Windows Server 2008 R2 она уже встроена) и включить удаленное управление, с помощью командлета Enable-PSRemoting на управляемом компьютере.
Проблема и вариант его решения
Как бы не было хорошо управлять компьютерами на основе Windows, однако существует проблема. При попытке управлять компьютером Изначальным языком, которого является Русский. Мы получаем проблему выход в виде кракозябр
Читать которые очень затруднительно. Это достаточно фундаментальная проблема, которая наличиствует во всех версиях Windows, языком установки оторого является Русский. Она появляется как при управлении PsExec так и PowerShell 2.0. Основная причина этих кракозябр является неправильная передача кодировки. В России используется минимум 3 кодировки CP1251 (Известная как Windows) CP866 (Известная как DOS) и KOI8. При таком количестве кодировок передача данных и их отображение, осуществляется в неправильном формате, и мы видим результат. Попробуем решить данную проблему. Для начала принудительно установим кодировку 1251. Делается это командой
chcp 1251
После начинаются танцы с бубном J
Заходим в свойства текущей консоли и выбираем шрифт Lucida Console
Консоль преображается
Далее, опять выбираем свойства консоли и выбираем Точечные шрифты
Обратите внимание если выбрать Размер 8х12 то ничего не изменится, поэтому лучше выбрать 12х16. И мы вроде бы получили то что было изначально,
Но, попробуем прочитать что либо через удаленную консоль
Как видите теперь можно нормально прочитать, что нам сообщает удаленная консоль.
тоже самое с PsExec
К сожалению в текущей консоли мы потеряли возможность читать сообщения переданные локально
Но это решается запуском второй консоли
Если у вас есть еще какой либо способ решения этой проблемы, напишите мне. Я буду этому очень рад .