-->

sexta-feira, 21 de novembro de 2008

Redirecionando LPT1 para uma impressora de rede no XP.

Em geral, imprimir a partir de programas MSDOS em uma impressora de rede é fácil usando o comando:

NET USE LPT1 \\SERVIDOR\IMPRESSORA 

Por exemplo: 

Net Use LPT1 \\contabilidade\epsonlx 

Essa configuração só dura até o proximo boot, mas você pode fazer com que seja permanente com o parâmetro /persistent:yes, assim:

Net Use LPT1 \\contabilidade\epsonlx /persistent:yes

Nota: você pode precisar incluir usuário e senha na linha de comando. Não vou entrar nesses detalhes agora. Digite NET USE ? para ver a sintaxe completa do comando.

Isso tinha funcionado bem até ontem, quando fui chamado para resolver o problema de um determinado programa que não queria imprimir na rede de jeito nenhum. O primeiro problema é que apesar de ser "for windows" o programa era uma "evolução" de um programa DOS e o programador só sabia imprimir em LPT1 (nem mesmo LPT2 ou LPT3 - esperto, não?). Não havia opção para escolher em que impressora imprimir, como é normal em programas Windows.

O segundo problema é que esse usuário específico não conseguia fazer o mapeamento com NET USE. Sempre pedia a senha e depois acusava Acesso Negado, não importando que usuário/senha eu fornecesse. Mas logando como o meu usuário o mapeamento funcionava normalmente.

Não demorou muito para que eu determinasse que não funcionava porque esse usuário era Limitado, mas eu era o Administrador.

Fiz uma rápida pesquisa no Google e encontrei esta página, que explica o motivo: por questões de segurança um usuário limitado não pode mapear uma porta física para uma impressora de rede no XP e 2003. A explicação de como resolver o problema me pareceu demasiado complicada ("devcon" what?!) porque enquanto eu lia já havia me ocorrido uma possível solução.

Fui no setup do BIOS do PC e desabilitei a porta LPT1. Tentei de novo fazer o mapeamento e tudo funcionou como deveria.

É claro que eu só tinha essa opção porque esse PC não tinha nenhuma impressora fisicamente conectada a LPT1 e nem vai ter. Se o seu caso for diferente você terá que seguir as outras sugestões da página. Mais tarde eu fui ler com calma os comentários do post e outras pessoas sugerem fazer o mesmo que eu fiz.

6 comentários:

  1. Bruxo! Ontem mesmo eu estava vendo como fazer isso, por outros motivos, mas exatamente a mesma coisa: mapear uma porta fisica p/ uma printer na rede.

    Esse mundinho e suas coincidencias nao cansam de me surpreender :)

    ResponderExcluir
  2. Jefferson,

    Eu já tive este problema aqui no serviço e apenas desativei a porta lpt1 no gerenciador de dispositivos que eu conseguia utilizar o net use no perfil do usuário.

    ResponderExcluir
  3. Oi Jefferson,

    A solução do link que voce indicou nada mais é do que desabilitar a porta LPT1:

    "Use the devcon disable *PNP0401 command to disable the LPT port"

    Portanto a solução do Fernando causa o mesmo resultado e é muito mais simples.

    ResponderExcluir
  4. isto serve também para quem tem impressora USB e tem que usar o TS, pois o TS não reconhece a porta DOT4 como porta de impressora só LPT, dai tem que fazer esta mágica para imprimir local.

    ResponderExcluir
  5. Caraca, deu certinho! Desativei LPT1 na BIOS e funfou. Valeu Cara!

    ResponderExcluir
  6. Túlio Oliveira16/1/14 13:42

    Galera , não encontrei onde desabilita a lpt1 na bios, alguém pode me indicar falar o caminho e nomes, obrigado!

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.