Win Terminal Server / RDS - mapeamento de impressora dinâmica após reconexão de sessão

1

Estou tentando descobrir esse problema: Quando um usuário desconecta sua sessão RDS (no Windows Server 2012 R2) no Office 1 e se reconecta no Office 2, ainda assim todas as impressoras relevantes para o Office 1 serão mapeadas.

A primeira ideia foi usar o Agendador de Tarefas para executar um script do powershell no gatilho "Reconexão de sessão" que analisa a variável "clientname" e adiciona todas as impressoras relevantes a esse local após a reconexão.

Problemas com isso são:

  • para fazer com que o script seja executado no contexto do usuário específico que acabou de se reconectar e não em algum contexto administrativo (tentei resolver isso com o comando Run DOMAIN \ Users, mas parece não funcionar como desejado)
  • a variável de ambiente "clientname" não está disponível quando o script PS é executado por meio do Agendador de Tarefas. Parece que é a única variável que está faltando, mas, ruim o suficiente, é exatamente isso que eu precisaria aqui!

Então, estou procurando uma maneira de solucionar o problema de script ou, melhor ainda, se há uma prática recomendada para lidar com o mapeamento de impressoras quando um usuário reconecta uma sessão do Terminal Server de um local diferente? Não faz muito sentido que o papel apareça em escritórios / locais distantes; -)

Muito obrigado.

    
por schueric 28.05.2015 / 10:38

1 resposta

0

Infelizmente, a sua melhor aposta aqui é ter um script que o usuário possa executar quando se reconectar.

Existem várias coisas que dificultam que você faça algo automaticamente (algumas que você já viu):

  1. ClientName é uma variável de ambiente no nível do usuário (é diferente para cada usuário no servidor RDS).
  2. Uma tarefa agendada não terá acesso às variáveis de ambiente no nível de usuário (exceto talvez para um usuário específico que esteja configurado para executar como).
  3. Um conjunto de tarefas agendadas para executar no logon do usuário funcionaria se os usuários estivessem fazendo logon, mas não seriam acionados por uma reconexão (se os usuários estivessem fazendo logon, você não teria esse problema em primeiro lugar) .
  4. Qualquer processo que seria iniciado no contexto do usuário (como se você tivesse um script do PowerShell que fosse executado no logon e verificado periodicamente) obtém uma cópia do ambiente na inicialização e não veria uma alteração no ClientName em uma reconexão, a menos que o processo tenha sido reiniciado. Gerar um novo processo também não ajudaria porque o processo filho herdaria uma cópia do ambiente de seus pais.
por 28.05.2015 / 18:51