我遇到了一个在我的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黑客,但它可以作为一个替代….