L'adresse du client RDP est inconnue lors de la connexion via une passerelle

10

Je suis tombé sur un showstopper dans ma magnifique tâche de créer un GPO d'imprimante qui mappe les imprimantes à l'intérieur de la session TS en fonction de l'adresse du client RDP - l'adresse n'est pas connue lors de l'utilisation d'un serveur de passerelle :(

Clic droit + état sur une session via la passerelle RD:

entrez la description de l'image ici

Même chose sur une session ne passant pas par la passerelle RD:

entrez la description de l'image ici

Est-ce que quelqu'un sait si cela est possible de se déplacer? Y a-t-il peut-être une sorte de modification de registre non documentée que je peux faire sur le serveur de passerelle pour transmettre ces informations?

pauska
la source

Réponses:

2

On dirait que ce n'est pas possible. Je vais déposer une demande de fonctionnalité auprès de Microsoft.

pauska
la source
1

Étant donné que la passerelle TS est effectivement un proxy, pourquoi ne pas interroger les journaux du proxy ? Le filtrage du dernier événement 303 à partir de la passerelle Bureau à distance par l'utilisateur en question devrait vous fournir l'adresse IP. Je ne connais aucun en - tête de style "X-Forwarded-For" dans RDP.

le-wabbit
la source
Je ne sais pas si vous savez comment fonctionne le ciblage au niveau de l'élément dans un objet de stratégie de groupe, mais je suis assez convaincu qu'il n'y a aucun moyen de l'alimenter avec les données d'un fichier journal.
pauska
@pauska ah, ciblage. Je pensais que tu écrivais. Aucune autre idée alors, désolé.
le-wabbit
Recherche WQL sur le GPO? C'est ... rude, mais ça pourrait marcher.
Patrick
@Patrick presque tout sur les scripts Windows est rude, sinon moche. Nous ne pouvons pas le changer, nous devons donc vivre avec.
the-wabbit
0

Peut-être pourriez-vous créer un script de connexion qui mappe l'imprimante en fonction de la connexion RDP? Créez d'abord un fichier "iplist.txt" qui contient les adresses IP et les services pour lesquels vous souhaitez mapper l'imprimante:

192.168.0.173,Marketing
192.168.1.173,Sales
192.168.2.173,Finance

Placez le fichier iplist.txt dans un répertoire auquel la personne qui se connectera aura accès en lecture. De là, vous pouvez utiliser ce fichier de commandes pour mapper l'imprimante:

@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

Vous voulez également vous assurer que logfile.txt est écrit dans un emplacement auquel l'utilisateur se connectant aura accès en écriture.

Ce n'est peut-être pas le reg hack que vous recherchez, mais cela pourrait fonctionner comme une alternative ....

matrixx333
la source
Je viens de réaliser que si plusieurs personnes sont connectées à l'ordinateur via RDP, cela mappera l'imprimante pour la personne dont l'adresse IP est la plus élevée dans la liste des connexions ..... donc cela pourrait ne pas fonctionner correctement dans votre environnement :(
matrixx333
Merci pour l'effort, mais le point ici est que l'adresse IP du client est "INCONNUE" lorsque vous vous connectez via une passerelle RD. J'ai déjà une solution pour mapper les imprimantes lorsque l'IP du client est révélée (extension de stratégie de groupe).
pauska
Je m'excuse pour le malentendu ... quand même, écrire le script était amusant :)
matrixx333