Настроюємо термінальний сервер у Windows 7, блог

Блог про технології, технократію та методики боротьби з граблями

Термінальний сервер під керуванням Windows 7

Постала проблема що до Windows 7 встановленої на віддаленому майданчику необхідно одночасно підключатися мені і тамтешньому адміну, так на ній у нас заведені всі керування внутрішніми ресурсами. Природно, що за замовчуванням це не виходить, тому що Windows 7 є робочою станцією і дозволяє одночасно підключатися до системи тільки одному користувачеві, так що входячи в систему ми автоматично вирубуємо присутнього користувача.Природно, що дана процедура заборонена для комерційного використання, оскільки вона порушує ліцензійну угоду дрібном'яких.

Власне пам'ятаючи про те, що в XP це робилося через патч драйвера termsrv.dll (якщо віросповідання не дозволяє використовувати якусь нитку GPL типу UltraVNC або TightVNC), який був висмикнутий з XP SP2 beta, де обмеження на кількість підключених столів не було, то я вирішив погуглити на цю тему, і досить швидко нарив таку ж приладу для Windows 7, яка власне патчить вищезазначену утиліту після чого вхід через користувальний термінал стає доступний для адміністратора системи і групи користувачів віддаленого робочого столу. Власне прилад для версії 32 біта і версії 64 біта. Причому з усього вона використовує самі бібліотеки, оскільки на форумах народ пише, що користували якраз стару бібліотеку.

Завантажуємо, запускаємо, після чого перевантажуємо машину. Звичайно зробити це з управління сесією ми не можемо, тому вдається з консолі управління, звідки просто вводимо:

shutdown -r (не переплутати з ключиком -s, інакше нам доведеться пиляти в далекий офіс)

Після цього отримуємоповноцінний сервер терміналів, але принаймні в XP кількість максимальних з'єднань була обмежена 3 конкуруючими сесіями, тому розганятися більше 3-5 намагатися не варто. Єдине, що якщо ми хочемо мочити віддалених користувачів з-під адміну термінальної машини, нам необхідно відключити контроль облікових записів UAC у Windows.

А ось тут починається найцікавіше, тому що у функціоналі віддалених робочих столів Windows Server 2008+ з'явився цікавий функціонал Terminal Server RemoteApp, що дозволяє запускати віддалені програми на клієнтській машині, без використання термінальної консолі, що дозволить нам знизити навантаження на трафік, тому що нам не доведеться малювати всі плюхи, а також обрізати дикому юзверю весь інший функціонал. Власне маючи все це в Server 2008 можна було б припустити, що цей же функціонал доступний і на Windows 7. Тільки у випадку робочої станції він відключений, і його необхідно підключити в реєстрі, для чого, на віддаленій машині (уже сервері терміналів), йдемо в гілку реєстру:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList де змінюємо значення параметра fDisabledAllowList з 0 на 1, після чого в цій же гілці створюємо папку з назвою Application (начебто можна і довільне назва) в якій створюємо підпаки додатків доступних для запуску з віддаленого сервера терміналів, шляхом створення рядкових параметрів: Name - ім'я програми Path - директорія програми (саме директорія, а не повний шлях до файлу)

remoteapplicationmode:i:1 remoteapplicationprogram:s:ім'я бінарника програми disableremoteappcapscheck:i:1 alternate shell:s:rdpinit.exe

В імені бінарника треба писати ім'я файлу, що запускає, прописаного в рядковихпараметри. Найцікавіше, що цей спосіб дозволяє запускати програми Windows 7 Pro і вище як на віддалених машинах під керуванням Windows 7, так і під керуванням Windows XP SP3. Для мене поки що не функціонально, але для того щоб наприклад обмежити доступ віддалених користувачів до їх робочих столів - дуже цікаво.