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

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

我在创建打印机 GPO 的伟大任务中遇到了一个难题,该 GPO 根据 RDP 客户端地址映射 TS 会话内的打印机 - 使用网关服务器时该地址是未知的 :(

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

在此处输入图片描述

在不通过 RD 网关的会话中也会发生同样的事情:

在此处输入图片描述

有人知道是否可以解决这个问题吗?我是否可以在网关服务器上进行某种未记录的注册表更改来传递此信息?

答案1

这似乎不可能。我要向 Microsoft 提交功能请求。

答案2

由于 TS 网关实际上是一个代理,你为什么不查询代理的日志? 过滤最后一个 303 事件远程桌面网关问题用户应该向您提供 IP。我不知道任何“X-转发-针对”-RDP 中的样式标头。

答案3

答案4

也许您可以创建一个基于 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 写入登录用户具有写权限的位置。

它可能不是您所寻找的 reg hack,但它可以作为替代方案......

相关内容