Alamat RDP Client tidak diketahui saat menghubungkan melalui gateway

10

Saya telah menemukan showstopper dalam tugas luar biasa saya untuk membuat printer GPO yang memetakan printer di dalam sesi TS berdasarkan pada alamat klien RDP - alamat tidak diketahui saat menggunakan server gateway :(

Klik kanan + status pada sesi melalui RD gateway:

masukkan deskripsi gambar di sini

Hal yang sama pada sesi TIDAK melalui RD gateway:

masukkan deskripsi gambar di sini

Adakah yang tahu kalau ini bisa dilakukan? Apakah mungkin ada semacam perubahan registri tidak berdokumen yang dapat saya lakukan pada server gateway untuk meneruskan informasi ini?

pauska
sumber

Jawaban:

2

Sepertinya ini tidak mungkin. Saya akan mengajukan permintaan fitur dengan Microsoft.

pauska
sumber
1

Karena gateway TS secara efektif adalah proksi, mengapa Anda tidak meminta log proksi ? Pemfilteran untuk acara terakhir 303 dari Remote Desktop Gateway oleh pengguna yang dipermasalahkan akan memberi Anda IP. Saya tidak mengetahui adanya header gaya "X-Forwarded-For" di RDP.

the-wabbit
sumber
Saya tidak yakin apakah Anda mengetahui cara penargetan level item berfungsi dalam GPO, tapi saya cukup yakin bahwa tidak ada cara untuk memberi makan dengan data dari file log.
pauska
@ payka ah, penargetan. Saya pikir Anda menulis skrip. Tidak ada ide lebih lanjut, maaf.
the-wabbit
Pencarian WQL di GPO? Itu ... kasar, tapi mungkin berhasil.
Patrick
@ Patrick hampir semua hal tentang skrip Windows kasar, jika tidak jelek. Kita tidak bisa mengubahnya, jadi kita harus hidup dengannya.
the-wabbit
0

Mungkin Anda bisa membuat skrip logon yang memetakan printer berdasarkan koneksi RDP? Pertama buat file "iplist.txt" yang berisi alamat ip dan departemen yang Anda inginkan untuk memetakan printer:

192.168.0.173,Marketing
192.168.1.173,Sales
192.168.2.173,Finance

Tempatkan file iplist.txt dalam direktori yang orang yang logon akan baca akses. Dari sana Anda dapat menggunakan file batch ini untuk memetakan printer:

@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

Anda juga ingin memastikan bahwa logfile.txt ditulis ke lokasi yang dapat diakses oleh pengguna yang login.

Mungkin bukan reg hack yang Anda cari, tetapi bisa berfungsi sebagai alternatif ....

matrixx333
sumber
Saya baru menyadari jika beberapa orang terhubung ke komputer melalui RDP, maka ini akan memetakan printer untuk orang yang alamat ipnya adalah yang tertinggi dalam daftar koneksi ..... sehingga mungkin tidak berfungsi dengan baik di lingkungan Anda :(
matrixx333
Terima kasih atas upaya Anda, tetapi intinya di sini adalah bahwa IP klien "TIDAK DIKETAHUI" ketika Anda terhubung melalui RD Gateway. Saya sudah punya solusi untuk memetakan printer ketika IP klien terungkap (ekstensi kebijakan grup).
pauska
Saya minta maaf atas kesalahpahaman ... masih, menulis skrip itu menyenangkan :)
matrixx333