通过网关连接时,RDP客户端地址是未知的

我遇到了一个在我的macros伟任务showstopper创build一个打印机GPO映射打印机内的TS会话基于RDP客户端地址 – 使用网关服务器时地址不知道:(

右键单击RD网关上的会话状态:

在这里输入图像描述

会议上同样的事情不通过RD网关:

在这里输入图像描述

有谁知道这是否有可能解决? 是否有可能在网关服务器上做一些无证的registry更改来传递这些信息?

看起来这是不可能的。 我将向微软提交function请求。

由于TS网关实际上是一个代理, 为什么不查询代理的日志 ? 有关用户从远程桌面网关过滤最后一个事件303应该为您提供IP。 我不知道RDP中有任何“X-Forwarded-For”风格的头文件。

也许你可以创build一个login脚本来映射基于RDP连接的打印机? 首先创build一个“iplist.txt”文件,其中包含要为其打印打印机的IP地址和部门:

192.168.0.173,Marketing 192.168.1.173,Sales 192.168.2.173,Finance 

iplist.txt文件放在login的用户可以读取的目录中。 从那里你可以使用这个batch file来映射打印机:

 @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写入到login用户将具有写权限的位置。

它可能不是您寻找的reg黑客,但它可以作为一个替代….