O endereço do cliente RDP é desconhecido ao conectar-se através de um gateway

10

Eu me deparei com um showstopper na minha magnífica tarefa de criar um GPO de impressora que mapeia impressoras dentro da sessão TS com base no endereço do cliente RDP - o endereço não é conhecido ao usar um servidor de gateway :(

Clique com o botão direito do mouse em + status em uma sessão via gateway RD:

insira a descrição da imagem aqui

A mesma coisa em uma sessão que NÃO passa pelo gateway RD:

insira a descrição da imagem aqui

Alguém sabe se isso é possível para se locomover? Talvez haja algum tipo de alteração de registro não documentada que eu possa fazer no servidor de gateway para transmitir essas informações?

pauska
fonte

Respostas:

2

Parece que isso não é possível. Vou registrar uma solicitação de recurso na Microsoft.

pauska
fonte
1

Como o gateway TS é efetivamente um proxy, por que você não consulta os logs do proxy ? A filtragem do último evento 303 do Remote Desktop Gateway pelo usuário em questão deve fornecer o IP. Não conheço nenhum cabeçalho no estilo "X-Forwarded-For" no RDP.

o wabbit
fonte
Não sei se você sabe como a segmentação no nível do item funciona em um GPO, mas estou bastante confiante de que não há como alimentá-la com dados de um arquivo de log.
pauska 31/01
@ ahpauska, segmentação. Eu pensei que você estava escrevendo. Não há mais idéias, desculpe.
the-wabbit 31/01
Pesquisa WQL no GPO? É ... áspero, mas pode funcionar.
Patrick
@ Patrick quase tudo sobre scripts do Windows é difícil, se não feio. Não podemos mudar isso, então temos que conviver com isso.
precisa
0

Talvez você possa criar um script de logon que mapeie a impressora com base na conexão RDP? Primeiro, crie um arquivo "iplist.txt" que contenha os endereços IP e os departamentos para os quais você deseja mapear a impressora:

192.168.0.173,Marketing
192.168.1.173,Sales
192.168.2.173,Finance

Coloque o arquivo iplist.txt em um diretório ao qual a pessoa que está acessando terá acesso de leitura. A partir daí, você pode usar este arquivo em lotes para mapear a impressora:

@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

Você também deseja certificar-se de que o logfile.txt seja gravado em um local ao qual o usuário conectado terá acesso de gravação.

Pode não ser o registro que você está procurando, mas poderia funcionar como uma alternativa ....

matrixx333
fonte
Acabei de perceber que se várias pessoas estiverem conectadas ao computador via RDP, isso mapeará a impressora para a pessoa cujo endereço IP é o mais alto na lista de conexões ..... para que não funcione corretamente no seu ambiente :(
matrixx333
Obrigado pelo esforço, mas o ponto aqui é que o IP do cliente é "DESCONHECIDO" quando você se conecta por meio de um Gateway RD. Já tenho uma solução para mapear as impressoras quando o IP do cliente é revelado (extensão de diretiva de grupo).
pauska
Peço desculpas pelo mal-entendido ... ainda, escrevendo o roteiro foi divertido :)
matrixx333