Адреса клієнта RDP невідома при підключенні через шлюз


10

Я зіткнувся з showstopper у своєму величному завданні створити GPO принтера, який відображає принтери всередині сеансу TS на основі адреси клієнта RDP - адреса не відома при використанні шлюзового сервера :(

Клацніть правою кнопкою миші + статус на сеансі через шлюз RD:

введіть тут опис зображення

Те саме на сеансі, що НЕ проходить через шлюз RD:

введіть тут опис зображення

Хтось знає, чи це можливо обійти? Чи є якась незадокументована зміна реєстру, яку я можу зробити на сервері шлюзу для передачі цієї інформації?

Відповіді:


2

Схоже, це неможливо. Я збираюся подати запит на функцію в Microsoft.


1

Оскільки шлюз TS фактично є проксі-сервером, чому б ви не запитали журнали проксі-сервера ? Фільтрування останньої події 303 з шлюзу віддаленого робочого столу відповідним користувачем має забезпечити вам IP. Я не знаю жодного заголовка "X-Forwarded-For" в RDP.


Я не впевнений, чи знаєте ви, як працює націлювання на рівень предметів у груповій групі, але я впевнений, що немає жодного способу подати його з даних із журналу файлів.
pauska

@pauska ах, орієнтування. Я думав, що ти робиш сценарій. Більше ніяких ідей, вибачте.
wabbit

Пошук WQL в GPO? Це ... грубо, але може спрацювати.
Патрік

@Patrick майже все, що стосується сценаріїв Windows, є грубим, якщо не потворним. Ми не можемо її змінити, тому нам доведеться з цим жити.
Вабіт


0

Можливо, ви могли б створити сценарій входу, який відображає принтер на основі з'єднання RDP? Спочатку створіть файл "iplist.txt", який містить ip адреси та відділи, на які потрібно зіставити принтер:

192.168.0.173,Marketing
192.168.1.173,Sales
192.168.2.173,Finance

Помістіть файл iplist.txt у каталог, до якого людина, що ввійшов , матиме доступ для читання. Звідти ви можете використовувати цей пакетний файл для картографування принтера:

@echo off

netstat -na | find "3389" | find "ESTABLISHED" > logfile.txt

for /f "tokens=1,2 delims=," %%a in (iplist.txt) do (

    for /f %%i in ('findstr %%a logfile.txt') do (
        set ip_addr=%%a
    )

    if "%ip_addr%" == "%%a" (
        if "%%b" == "Marketing" (
            rundll32 printui.dll,PrintUIEntry /in /q /n \\print_server\marketing_ptr
            REM Set as default:
            rundll32 printui.dll,PrintUIEntry /y /q /n
            goto :end )
        if "%%b" == "Sales" (
            rundll32 printui.dll,PrintUIEntry /in /q /n \\print_server\sales_ptr
            REM Set as default:
            rundll32 printui.dll,PrintUIEntry /y /q /n
            goto :end ) 
        if "%%b" == "Finance" (
            rundll32 printui.dll,PrintUIEntry /in /q /n \\print_server\finance_ptr
            REM Set as default:
            rundll32 printui.dll,PrintUIEntry /y /q /n
            goto :end ) )
)

:end 

del logfile.txt

Ви також хочете переконатися, що logfile.txt записується до місця, до якого користувач, який увійшов, матиме доступ для запису.

Можливо, це не рег-хак, який ви шукаєте, але це може працювати як альтернатива ....


Я щойно зрозумів, якщо декілька людей підключені до комп'ютера через RDP, то це дозволить зіставити принтер для людини, яка ip-адреса є найвищою у списку підключень ..... тому він може не працювати належним чином у вашому оточенні :(
matrixx333

Дякую за докладені зусилля, але справа в тому, що клієнтський IP-код є "НЕВІДОМЛЕНО" при підключенні через шлюз RD. У мене вже є рішення для відображення принтерів при виявленні IP клієнта (розширення групової політики).
pauska

Прошу вибачення за непорозуміння ... все-таки написання сценарію було веселим :)
matrixx333
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.