[]Задача:[] Организовать автоматизированное подключение Windows-клиента
к Linux-серверу терминалов через программу [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY]] (по ssh-протоколу) в связке с [[http://sourceforge.net/projects/xming/ XMing]]. Windows-клиент имеет в домене гостевой профиль (все настройки после выхода из системы сбрасываются). Имена пользователей из домена Windows и на сервере терминалов совпадают(!).[]Основная проблема:[] все свои настройки PuTTY хранит в реестре Windows, что делает невозможным их повторное использование после гостевого входа.
[]Пути решения.[]
1. Перед выходом из сеанса работы с PuTTY сохранять его ветку рееестра с настройками. Недостаток: решение не является универсальным и гибким. Например, старт X сервера необходимо выполнять отдельно указывая каждый раз пользовательские настройки, что есть длинный путь для гостя.
2. Создать специальный скрипт(ы), автоматизирующий подключение PuTTY.
Рассмотрим второй вариант.
Пусть IP-адрес Linux-сервера 10.0.0.1,
локаль пользователя Linux в кодировке UTF-8,
X сервер XMing установлен в каталог "C:\Program Files\Xming".
Создадим, например, следующую структура каталогов и файлов:
каталог XServer
файл StartTerminal.cmd
каталог config
файл do_start_terminal.cmd
файл start_XServer.js
файл config.xlaunch
файл putty.prog (переименованный putty.exe)
Скрипт StartTerminal.cmd:
@echo off
SET XMING_SRV_PATH="C:\Program Files\Xming"
SET REMOTE_SERVER=10.0.0.1
SET REMOTE_CODEPAGE_LOCALE=UTF-8
cmd /C %CD%\config\do_start_terminal.cmd %XMING_SRV_PATH% %REMOTE_SERVER% %REMOTE_CODEPAGE_LOCALE%
Скрипт config\do_start_terminal.cmd:
@echo off
cmd /C %CD%\config\start_XServer.js %1
reg add HKCU\Software\SimonTatham\PuTTY\Sessions\User /v HostName /t REG_SZ /d %2 /f
reg add HKCU\Software\SimonTatham\PuTTY\Sessions\User /v LineCodePage /t REG_SZ /d %3 /f
reg add HKCU\Software\SimonTatham\PuTTY\Sessions\User /v X11Forward /t REG_DWORD /d 1 /f
reg add HKCU\Software\SimonTatham\PuTTY\Sessions\User /v UserName /t REG_SZ /d %USERNAME% /f
reg add HKCU\Software\SimonTatham\PuTTY\Sessions\User /v X11Display /t REG_SZ /d %COMPUTERNAME% /f
start %CD%\config\putty.prog
Скрипт config\start_XServer.js:
var XLaunchPath = WScript.Arguments(0);
var WshShell = WScript.CreateObject("WScript.Shell");
var cfgPath= WshShell.CurrentDirectory+"\\config\\config.xlaunch";
var execPath = XLaunchPath + "\\XLaunch.exe -run " + cfgPath;
WshShell.Exec(execPath);
Файл настроек XMing config\config.xlaunch (можно заранее подготовить при помощи программы XLaunch):
<?xml version="1.0"?>
<XLaunch xmlns="http://www.straightrunning.com/XmingNotes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.straightrunning.com/XmingNotes XLaunch.xsd"
WindowMode="MultiWindow" ClientMode="NoClient" Display="0" Clipboard="true"
ExtraParams="-xkblayout us,ru -xkbvariant basic,winkeys -xkboptions grp:caps_toggle -dpi 96"/>
После запуска скрипта StartTerminal.cmd в окне программы PuTTY необходимо выбрать из списка настройки User, нажать на кнопку Load, а затем на Open. Далее согласиться с диалогом по поводу ssh и в окне терминала ввести пароль пользователя.
Представленная скриптовая схема является гибкой и позволяет проводить всю необходимую автоматизацию настроек PuTTY, а также запуск X сервера XMing с нужными параметрами.
URL:
Обсуждается: http://www.opennet.me/tips/info/2523.shtml