locked
Script compartilhar impressora por sessão RRS feed

  • Pergunta

  • Bom dia amigos,

    Surgiu uma demanda devido uma aplicação virtualizada que busca um compartilhamento para imprimir.

    Uso aplicação via TS e é necessário que a sessão de impressão criada seja compartilhada. Encontrei o seguinte script abaixo, mas ele está apresentando erro informando que não identificou a impressora.

    echo off
    timeout 45
    rem get the session ID out of the %TEMP% environment variable
    for /f "eol=; tokens=6 delims=\ " %%i in ("%TEMP%") do set TSSID=%%i
    rem construct the printer name
    set TSPrinterName=Datamax (from %CLIENTNAME%) in session %TSSID%
    rem share the printer
    rundll32 printui.dll,PrintUIEntry /Xs /n "%TSPrinterName%" sharename "datamaxA" attributes +Shared
    exit

     


    MCP-W2K3/MCDST/MCSA/MCTS SE A RESPOSTA FOR UTIL, CLASSIFIQUE-A!

    quinta-feira, 5 de fevereiro de 2015 14:41

Respostas

  • Achei a solução. Na verdade o problema era no delimitador do script. Segue abaixo o correto

    echo on
    rem get the session ID out of the %TEMP% environment variable
    for /f "eol=; tokens=7 delims=\ " %%i in ("%TEMP%") do set TSSID=%%i
    rem construct the printer name
    set TSPrinterName=Datamax (from %CLIENTNAME%) in session %TSSID%
    rem share the printer
    rundll32 printui.dll,PrintUIEntry /Xs /n "%TSPrinterName%" sharename "DatamaxA" attributes +Shared


    MCP-W2K3/MCDST/MCSA/MCTS SE A RESPOSTA FOR UTIL, CLASSIFIQUE-A!

    quinta-feira, 5 de fevereiro de 2015 20:26

Todas as Respostas

  • Gustavo,

    Esse link abaixo tem um Script que faz esse papel. Poderia testar pra fins de teste:

    http://stackoverflow.com/questions/676616/enumerate-printers-for-a-specific-terminal-server-session

    att.


    Carlos Eduardo Gnochi de Oliveira

    quinta-feira, 5 de fevereiro de 2015 14:45
  • Carlos obrigado pela resposta.

    Eu já tinha usando o script abaixo, o problema que ele só enumera as impressoras, no meu caso eu preciso compartilhar uma impressora que é criado a cada sessão.


    MCP-W2K3/MCDST/MCSA/MCTS SE A RESPOSTA FOR UTIL, CLASSIFIQUE-A!

    quinta-feira, 5 de fevereiro de 2015 14:54
  • Achei a solução. Na verdade o problema era no delimitador do script. Segue abaixo o correto

    echo on
    rem get the session ID out of the %TEMP% environment variable
    for /f "eol=; tokens=7 delims=\ " %%i in ("%TEMP%") do set TSSID=%%i
    rem construct the printer name
    set TSPrinterName=Datamax (from %CLIENTNAME%) in session %TSSID%
    rem share the printer
    rundll32 printui.dll,PrintUIEntry /Xs /n "%TSPrinterName%" sharename "DatamaxA" attributes +Shared


    MCP-W2K3/MCDST/MCSA/MCTS SE A RESPOSTA FOR UTIL, CLASSIFIQUE-A!

    quinta-feira, 5 de fevereiro de 2015 20:26