Địa chỉ máy khách RDP không xác định khi kết nối qua cổng


10

Tôi đã bắt gặp một showstopper trong nhiệm vụ tuyệt vời của mình là tạo GPO máy in để ánh xạ các máy in bên trong phiên TS dựa trên địa chỉ máy khách RDP - địa chỉ không được biết khi sử dụng máy chủ cổng :(

Nhấp chuột phải + trạng thái trên một phiên thông qua cổng RD:

nhập mô tả hình ảnh ở đây

Điều tương tự trên một phiên KHÔNG đi qua cổng RD:

nhập mô tả hình ảnh ở đây

Có ai biết nếu điều này là có thể để có được xung quanh? Có lẽ có một số loại thay đổi đăng ký không có giấy tờ mà tôi có thể làm trên máy chủ cổng để truyền thông tin này cùng?

Câu trả lời:


2

Có vẻ như điều này là không thể. Tôi sẽ gửi một yêu cầu tính năng với Microsoft.


1

Vì cổng TS thực sự là một proxy, tại sao bạn không truy vấn nhật ký của proxy ? Việc lọc cho sự kiện cuối cùng 303 từ Remote Desktop Gateway bởi người dùng được đề cập sẽ cung cấp cho bạn IP. Tôi không biết về bất kỳ tiêu đề kiểu "X-Forwarded-For" nào trong RDP.


Tôi không chắc liệu bạn có biết cách nhắm mục tiêu cấp mục hoạt động trong GPO hay không, nhưng tôi khá tự tin rằng không có cách nào để cung cấp dữ liệu từ tệp nhật ký.
pauseka

@pauska ah, nhắm mục tiêu. Tôi nghĩ bạn đang viết kịch bản. Không có ý tưởng thêm sau đó, xin lỗi.
the-wợi

Tra cứu WQL trên GPO? Nó ... thô, nhưng có thể hoạt động.
Patrick

@Patrick gần như mọi thứ về kịch bản Windows là thô, nếu không nói là xấu. Chúng ta không thể thay đổi nó, vì vậy chúng ta phải sống với nó.
the-wợi


0

Có lẽ bạn có thể tạo một tập lệnh đăng nhập ánh xạ máy in dựa trên kết nối RDP? Trước tiên hãy tạo tệp "iplist.txt" chứa địa chỉ IP và các phòng ban mà bạn muốn ánh xạ máy in cho:

192.168.0.173,Marketing
192.168.1.173,Sales
192.168.2.173,Finance

Đặt tệp iplist.txt trong thư mục mà người đăng nhập sẽ có quyền truy cập đọc. Từ đó bạn có thể sử dụng tệp bó này để ánh xạ máy in:

@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

Bạn cũng muốn đảm bảo rằng logfile.txt được ghi vào một vị trí mà người dùng đăng nhập sẽ có quyền truy cập ghi.

Nó có thể không phải là bản hack mà bạn đang tìm kiếm, nhưng nó có thể hoạt động như một giải pháp thay thế ....


Tôi mới nhận ra nếu nhiều người được kết nối với máy tính qua RDP, thì điều này sẽ ánh xạ máy in cho người có địa chỉ ip cao nhất trong danh sách kết nối ..... vì vậy nó có thể không hoạt động chính xác trong môi trường của bạn :(
matrixx333

Cảm ơn bạn đã nỗ lực, nhưng vấn đề ở đây là IP của máy khách là "UNKNOWN" khi bạn kết nối qua Cổng RD. Tôi đã có một giải pháp để ánh xạ máy in khi IP của máy khách bị lộ (phần mở rộng chính sách nhóm).
pauseka

Tôi xin lỗi vì sự hiểu lầm ... vẫn vậy, viết kịch bản rất vui :)
matrixx333 17/03/2016
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.