Объявление

Хотите приглашение на сайт? Пишите: niikto@samovarchik.info


 

Я уже писал развёрнуто об этом в 2007 году: http://fouroom.ru/viewtopic.php?id=347, С тех пор попробовал и другие патчи, но самый надёжный TSFree.

Ещё источники

много и нудно: http://darmoroz.narod.ru/rdt/WinXP-TS.html
Про SBS 2003: http://manaeff.ru/forum/viewtopic.php?f=4&t=930

Странный глюк с RDP -тут несколько больше записей в реестр чем обычно
и тут: http://otvety.google.ru/otvety/thread?t … 7e944a5b38 (а утверждение, что TSFree не пашет - не правда).

http://www.oszone.net/165/ - тут объясняется что такое холостые сеансы (в реестре ключ IdleWinStationPoolCount) и другие настройки реестра, gpedit, etc...
http://www.oszone.net/161/ - про параметр TSAdvertise в реестре (чтобы сервер виделся в Terminal Server Administration)

Multi-user режим для Terminal Server в Windows XP x64 перевод этого на хабре

Как сделать из Windows 7 терминальный сервер? - про EasyPrint в терминале, способ не надёжный, не больше 3-х чел (проверить)
Как сделать из Windows 7 SP1 терминальный сервер
Настройка TS RemoteApp в Windows 7


Способ TSFree 1.1

Касперский и Nod сообщают что в файле Trojan.Win32.Agent.jh. Но я пользуюсь файлом уже очень давно и после установки не раз проверил все ПК - нет ни одного вируса. Так что это такая же ложная тревога, как файлы-кряки к играм и другому ПО.
Почему он считает вирусом? Вот например вирус, делающий очень похожее: Trojan-Dropper.Win32.Delf.jef


Здесь я описываю патчинг Windows XP VL (а не OEM) - т.е. в системе вообще нет модуля активации), и ПК не входит в состав домена ActiveDirectory:

Перед началом установки патча:

  • TS Free изменяет некоторые системные файлы, лучше патчить после установки всех обновлений и патчей

  • И конечно же после установки антивируса, или отключите вирусный монитор на время установки патча

  • Проверьте, чтобы в это время в приводе оптических дисков не было установочного диска Windows (или, если вы ставили его с флешки, с HDD - чтобы сейчас это место было недоступно на этом ПК), иначе SFC тут же вернёт оригинальные копии  этих файлов, и ничего не получится

  • Работает подключение RDP по TCP-порту 3389, поэтому в файрволле надо добавить в исключения этот порт, или просто ткнуть галку на "Дистанционное управление рабочим столом" в брендмауере Windows (я ещё и "Удалённый помошник" включаю).

  • Терминальный режим работает, только если включен вход в систему Fast User Switching (БЫСТРОЙ СМЕНЫ ПОЛЬЗОВАТЕЛЕЙ). Это когда при запуске показываются логины на экране приветствия, а не два поля Имя+пароль. Включаем так: Панель управления\Учетные записи пользователей\Изменение входа пользователей в систему, галку "Использовать быстрое переключение пользователей", а так же можно "Использовать страницу приветствия".




Ещё, проверьте что в свойствах "Мой компьютер"\Удалённые сеансы, стоит галка "Разрешить удалённый доступ к этому компьютеру". Потом нажмите "Выбрать удалённых пользователей", и там добавьте пользователей, которым будет разрешено подключаться по RDP (Это же можно сделать в Управлении компьютером\Локальные пользователи и группы\Группы - нужных необходимо добавить в группу "Пользователи удалённого рабочего стола" (т.е. нужные пользователи должны быть созданы перед установкой патча, или при создании сразу добавляться в эту группу).


Установка

Итак, в обычном режиме работы Windows (а не обязательно в защищенном), из под пользователя с админ-правами запускаем TS-Free-1.1.exe и видим окно командной строки:

Terminalserver No Restrictions Patch Helper Script
==================================================
Please rename the path you installed windows or the latest servicepack from
to avoid that the Windows File Protection will undo the patch.
Example:
Rename C:\installs\WinXP_SP2 to C:\installs\WinXP_SP2.OUT
.
Hit Ctrl+C to Cancel.
Для продолжения нажмите любую клавишу . . .

нажимаем любую клавишу, и в этом окне добавляется:

* Preparing winlogon.exe for patching ...
* Preparing termsrv.dll for patching ...
* Preparing mstscax.dll for patching ...

* Register TS_Free.reg...

* Starting WPA_Kill.exe (for disabling Winlogon.exe selfchecks)...

тут же появляется  другое окно "TS_Free patch Helper Winlogon.exe-selfcheck-remover 2.0.2":

? Opening C:\WINDOWS\system32\winlogon.exe ...

? Scanning for byte pattern:
  ...................................
  PatchOffset: 0004C594  -  Ready to Patch !

? Preparing patch...
  Deleting: dllcache\winlogon.exe
  => FAILED - File not found
  Deleting: winlogon.bak
  => FAILED - Path/File access error
  Renaming: winlogon.exe -> winlogon.bak
  => FAILED - destination file already exists!
  Copying: winlogon.bak -> winlogon.exe

? Disabling Windows System File Protection temporary:
  RegDelete: ServicePackSourcePath=""
  RegDelete: SourcePath=""

? Disabling winlogon Anti-Crack-Security:
  ...............................

? Applying Anti-WPA Patch at offset:  4C594
  PE_Checksum updated!
  Waiting for "Windows Systemfile Protection" dialogbox

? Restoring Windows System File Protection data:
  RegSetValue: ServicePackSourcePath=
               "E:\"
  RegSetValue: SourcePath=
               "E:\"

? Congratulations 'winlogon.exe' was patched successfully.

  Remember: You must run this patch again after you have
            installed a servicepack !

и окно-предупреждение Please wait for the "Windows Systemfile Protection" dialogbox:

Now the "Windows Systemfile Protection" dialogbox shouls popup.
Click on "Abort" and then klick on "Yes".

Note: On Serversystems just wait about 5 Sec and then click Ok.

И тут же выскакивает предупреждение SFC, что важные системные файлы заменены, и оно просит CD- с дистрибутивом Windows, чтобы их вернуть к оригинальному виду, надо нажать Отмена, Да.

На окошке "TS_Free patch Helper Winlogon.exe-selfcheck-remover 2.0.2" нажимаем Quit, и в первом окне добавляется строка "Starting TS_Free.exe...", появляется следующее окно "Windows Terminalserver no Restrictions Patch 1.1 Beta" с содержимым:

--[ Terminalserver no Restrictions Patch ]--

This Patch modifies winlogon.exe, termsrv.dll and
mstscax.dll to remove the restrictions of Windows 2003
Windows XP Professional (and Home) Terminalserver

Нажимаем кнопку Patch, и в окне "Windows Terminalserver..." добавляется:

+ opening Winlogon.exe ... done.
  Checking file...

   Patching Winlogon.exe ...
   Seek for IsProfessionalTerminalServer function ...found!
   Moving to start of function ........
   Writing function fixdata. Return(0)
   Moving to end of function.
   Making IsPerOrProTerminalServer to retrun 0.

-----------------------------------------------------------

+ opening mstscax.dll ... done.

   Seek for CUI::IsRunningOnPTS function...ERROR !


-----------------------------------------------------------

+ opening termsrv.dll ... done
+ Fixing LCQueryAllowConcurrentConnections ...
   Seek for 'MOV  EAX, C00A0013'...found!
   Moving to previous function
   ..........................
   Skipping fillbytes 0xCC......
   Writing function fixdata.
   Moving to end of function.
   --------------------------

   Seek for 'MOV  EAX, C00A0013'...found!
   Moving to previous function
   .............................................................
   Skipping fillbytes 0xCC......
   Writing function fixdata.
   Moving to end of function.
   --------------------------

   Seek for 'MOV  EAX, C00A0013'...found!
   Moving to previous function
   ..........................................
   Skipping fillbytes 0xCC......
   Writing function fixdata.
   Moving to end of function.
   --------------------------

   Seek for 'MOV  EAX, C00A0013'...found!
   Moving to previous function
   .............................................................
   Skipping fillbytes 0xCC......
   Writing function fixdata.
   Moving to end of function.
   --------------------------

   Seek for 'MOV  EAX, C00A0013'...found!
   Moving to previous function
   ..........................................................
   Skipping fillbytes 0xCC......
   Writing function fixdata.
   Moving to end of function.
   --------------------------

   Seek for 'MOV  EAX, C00A0013'...found!
   Moving to previous function
   .....................................................................................................................
   Skipping fillbytes 0xCC......
   Writing function fixdata.
   Moving to end of function.
   --------------------------

   Seek for 'MOV  EAX, C00A0013'...

-----------------------------------------------------------

   Seek for 'CALL IsPersonalTerminalServicesEnable'...found!
   Overwriting with 'MOV EAX,1'
   Makeing gbServer to be always 1...

-----------------------------------------------------------

   Seek for IsPersonalWorkstation function...found!
   Moving to start of function ......
   Writing function fixdata. Return(0)
   Moving to end of function.

-----------------------------------------------------------

   Seek for IsPersonalTerminalServicesEnabled function...found!
   Moving to start of function ......
   Writing function fixdata. Return(0)
   Moving to end of function.


Patch successfully applied !

ждем когда закончит (несколько секунд) и потом - Quit. это окно закрывается, а в первом добавилось:

* Cleaning up...

    _______________________________
   /                               \
--( You can close this Window now ! ) --
   \_______________________________/

нажимаем Enter, окно закрывается.

Теперь надо перезапустить ПК, и он станет терминальным сервером.



Параллельные сеансы одного пользователя

TS Free позволяет подключаться под одним логинам двум пользователям одновременно. Где то так и надо, а где-то это не приемлемо. Чтобы второй подключающийся забирал себе сеанс первого под тем же именем пользователя надо в групповых политиках Пуск\Выполнить\gpedit.msc, Конфигурация Компьютера\Административные шаблоны, правой кн. мышки - Добавление и удаление шаблонов, откроется C:\Windows\inf, выбрать system.adm, Открыть. Теперь кнопку "Закрыть".  Появятся новые шаблоны, идём в Конфигурация Компьютера\Административные шаблоны\Компоненты Windows\Службы терминалов\, на пункте "Ограничить пользователей службы терминалов одним удалённым сеансом" кликаем "Свойства", Включен.
Теперь если войти под User с одного ПК, а затем под ним же с другого, сеанс перейдёт от первого ко 2-му вместе со всеми открытыми программами (т.е. сеанс не потеряется). Второго параллельного сеанса пользователя User не откроется.



Если ПК входит в состав домена

То при каждом запуске системы у него сбрасывается в "0" значение ключа реестра “AllowMultipleTSSessions” в HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon, поэтому надо сделать командный файл, который меняет это значение к "1" в реестре, и поместить его в автозагрузку, например через Групповые политики gpedit.msc, Конфигурация Windows\Сценарии (запуск/завершение). источник и тут

howto

http://deepxw.blogspot.ru/2009/04/unive … 4487511003
For windows xp in a domain, after installing the patch and running the reg file, also do the following:
log on with an administrator account
control panel/planned tasks
add new task
browse for c:\windows\system32\reg.exe
give task a name eg "EnableMultipleTSUsers"
When computer is booted
user: SYSTEM
toggle on advanced
change the path to run to:
C:\WINDOWS\system32\reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AllowMultipleTSSessions /t REG_DWORD /d 1 /f
Finish
reboot machine

Для ПК с WinXP в домене, после установки патча и запуска .reg-файла сделайте следующее:
Залогиньтесь с админ-правами
Панель управления/Назначенные задания
Добавить задание
отыщите файл c:\windows\system32\reg.exe
задайте имя задачи EnableMultipleTSUsers
выберите период: При загрузке компьютера
пользователь: SYSTEM (ИмяПК\Admin - работает +задать пароль, ИмяПК\System - не сработает, но System просто - работает)
Установить дополнительные параметры после нажатия кнопки "Готово"
Смените поле путь на:
C:\WINDOWS\system32\reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AllowMultipleTSSessions /t REG_DWORD /d 1 /f
OK, OK.






Ограничение на количество подключений к сетевым ресурсам


Чтобы в средних и крупных сетях Windows XP не мог конкурировать с Windows Server, в нём ограничили количество подключений по сети к расшаренным ресурсам:
- Windows XP Home пускает к своим папкам по сети (или к принтеру) 5 пользователей
- Windows XP Pro - 10
6-го/11-го соответственно просто не пускает.
  Решается патчем LanServer_NoConnectionLimit, который заменяет файлы Windows\system32\DRIVERS\srv.sys и Windows\system32\srvsvc.dll

Эти файлы охраняются SFC, поэтому заменить их можно только перезапустив систему в Защищенном режиме. Подменить так же надо копии этих файлов в папке Windows\system32\dllcache\srvsvc.dll

я написал командный фал start.bat

copy .\system32\DRIVERS\srv.sys  %SYSTEMROOT%\system32\dllcache\srv.sys
copy .\system32\srvsvc.dll %SYSTEMROOT%\system32\dllcache\srvsvc.dll

copy .\system32\DRIVERS\srv.sys %SYSTEMROOT%\system32\DRIVERS\srv.sys
copy .\system32\srvsvc.dll %SYSTEMROOT%\system32\srvsvc.dll
pause

Достаточно перезапуститься в защищенном режиме и запустить этот файл.






Ограничение на количество полу-открытых tcp/ip-соединений

После появления червей в Windows XP сделали такое ограничение, чтобы замедлить распространение эпидемий (так черви успевают разсылать гораздо меньше копий своих тел).
в АФИНЕ мы уже на этапе создания установочного диска, с помощью nLite увеличиваем это значение до 100...

Вручную можно использовать патчер EvID4226Patch.exe (найден на lvllord.de)
или искать патч здесь: http://deepxw.blogspot.ru/






uxtheme.dll

Чтобы устанавливать не стандартные темы оформления интерфейса в Windows, есть патч uxtheme.dll
в АФИНЕ мы уже на этапе создания установочного диска, с помощью nLite патчим этот файл...

Вручную можно использовать патчер UXTender.exe
или искать патч здесь: http://deepxw.blogspot.ru/

Редактировался ktokto (17.04.2013, 00:45:29)

Способ UniversalTermsrvPatch_20090425

Пробовал другой терминальный патчер: UniversalTermsrvPatch_20090425.zip (источник: http://deepxw.blogspot.ru/2009/04/unive … patch.html )

Важно сперва запустить (можно и в обычном режиме работы Windows) UniversalTermsrvPatch-x86.exe, затем обязательно xp.reg (иначе не будут внесены ключи в реестр, и терминальный режим не заработает).

Нравится что он рассчитан на все версии Windows (XP/2003/Vista/7, x32/x64) и он работает, но не нравится что в Windows XP я не смог включить для него параллельные сессии для одного пользователя.

В принципе, правильно. При верной архитектуре в сети у каждого должен быть свой пользователь. И этот самый пользователь хочет не терять свои открытые программы, и если он отключился (сам или из-за сбоя), а потом подключаясь, попадает в новый сеанс, то ему придётся выполнять лишние действия, чтобы переключиться в первый свой сеанс с оставленными в рабочем виде открытыми его программами и документами.

Кстати 7-я версия RDP-клиента автоматически переключает разрешение если подключаешься с компьютера, разрешение экрана которого отличается от того, с коего подключался до этого. Открытые программы при этом сдвигаются в пределы видимого окна, но не закрываются - нет потери данных. И проматывать вертикально/горизонтально теперь не надо, как это было в старых версиях DRP-клиента, когда начинаешь работать с монитора, разрешение которого меньше чем раньше - т.к. размер рабочего стола оставался большим и не влазил в новый экран.

В интернете я нашел для этого патча параметр
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server, fSingleSessionPerUser, если он равен 0 - открываются параллельные сессии для пользователя с одним логином, а если он равен 1, - сеанс перехватывается.

Написал командный файл:

REG.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f

Но так с Windows XP не работает... Витя пишет что работает с Windows 7

Т.е. в Windows XP Pro SP3 (+ обновления) мне не удалось переключить в режим параллельных сессий этот патч UniversalTermsrvPatch_20090425.zip


Причем на TSFree 1.1 в Windows XP Pro SP3 (+ обновления) он тоже не имеет никакого эффекта.

Вообще то я считаю что правильно не открывать параллельную сессию, а забирать текущую. Нечего плодить параллельные. Юзеру ещё и объясни-попробуй, как забирать свою первую сессию, если тебе параллельную открыло (т.е. гарантии что откроет параллельную -нет, но может и открыть, тогда надо переключаться, чтобы вернуть свои текущие открытые программы и документы), а потом ещё новая сессия останется висеть не закрытой. Поэтому правильнее, я считаю, использовать второй патч.

niikto пишет

Ограничение на количество подключений к сетевым ресурсам


Чтобы в средних и крупных сетях Windows XP не мог конкурировать с Windows Server
...
  Решается патчем LanServer_NoConnectionLimit, который заменяет файлы Windows\system32\DRIVERS\srv.sys и Windows\system32\srvsvc.dll
...

А разве это не нарушение лицензионного соглашения?

ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ
...
К рабочей станции разрешается подключать не более 10
(десяти) компьютеров или других электронных устройств (далее
«устройство») для использования служб данного продукта, причем
исключительно для доступа к файловым службам, службам печати,
службам IIS, а также к службам удаленного доступа (включая общий
доступ к подключению и телефонные службы). Максимальное
количество подключений, равное десяти, включает любые косвенные
подключения, производимые через «мультиплексирующее» или иное
программное или аппаратное обеспечение, позволяющее
осуществлять коллективный доступ или поочередные подключения.

вырезка от лицензионного соглашения КАКОЙ именно Windows? прожалуйста будь точенее

И, лучше напиши про ключ реестра fSingleSessionPerUser, в этой теме не лицензионная чистота обсуждается, а техническая возможность (ты его только в 7-рке пробовал?

у меня пока получается так, что когда он =0, и второй пользователь с тем же логином подключается, сеанс он забирает, а не открывает параллельный новый. когда =1 - то же самое. А по идее, при =0 - должен открывать параллельный новый сеанс, так?

niikto пишет

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

Да, пробовал только в Windows 7

niikto пишет

вырезка от лицензионного соглашения КАКОЙ именно Windows?

Windows xp professional sp3 x86, во время стандартной установки, перед выбором раздела для установки ОС появляется текст лицензионного соглашения( нужно еще F8 нажать чтоб согласится).

И помоему с точки зрения лицензионности, Get genuine kit тут тоже не спасает, т.е. пропатчил ОС и Windows больше не лицензионная. Но источников я не нашел, буду благодарен за ссылку.

Редактировался viktor (18.04.2013, 19:52:25)

Витя, в этой теме не обсуждаем лицензионность. здесь говорится о технической возможности.
Про лицензии я ещё напишу отдельную развернутую статью.

Хотя ты конечно прав - надо дать сслку на ту статью здесь будет, а пока - это отвлекает от сути.

http://forums.mydigitallife.info/thread … -8-Patcher
Windows 8 terminal server patch


и про сервера лицензий для "больших" (серверных) Windows: http://forum.ru-board.com/topic.cgi?for … c=1210&glp

 

Дизайн сайта отсутствует
оформление: Группа «САМОВАРчик»

[ Сгенерировано за 0.014 сек, 8 запросов выполнено - Использовано памяти: 1.99 MiB (Пик: 2.07 MiB) ]