none
Script para instalar impressora genérica e atribuir configurações em suas propriedades, compartilhar na rede e emular porta LPT RRS feed

  • Pergunta

  • Boa tarde a Todos, 

    Necessito auxilio na elaboração de um script no qual consiga com um "duplo clique" no arquivo(script) ou APP que faça a seguinte rotina abaixo:

    OBS. TODAS ESTAÇÕES DE TRABALHO EXECUTANDO WINDOWS 10 PRO

    1º Necessitamos instalar uma impressora “Generic / Text Only”  (esse script já consegui reproduzido abaixo)

    2º Alterar configurações nas propriedades da impressora nas abas: “geral; portas; compartilhamento”.]

    *Na Aba "Geral" deverá haver uma configuração nas "Preferencias" / "Papel/Qualidade", selecionar a fonte de papel: "Cortar a Folha"

    *Na Aba "Compartilhamento" deverá selecionar as "checkbox" ("compartilhar" esta impressora(nomea-la como "PROTOCOLO") selecionar/checar "Processar trabalhos de impressão em computadores cliente" ; "Listar diretório") OBS. COMANDO NO PROMPT ABAIXO REALIZA O COMPARTILHAMENTO DA IMPRESSORA

    3º Executar comando “NET USE” para emular a porta LPT1 para impressora local compartilhada, identificando o hostname local e aplicar o comando para respectiva impressora instalada e compartilhada em rede. OBS. COMANDO DO PROMPT ABAIXO, POREM NECESSITAMOS OBTER AUTOMATICAMENTE O HOSTNAME LOCAL DA ESTAÇÃO E APLICAR O COMANDO NET USE.

    strPorta = "LPT1:"
    strDriver = "Generic / Text Only"
    strNome = "PROTOCOLO"
    PrinterDefault = True


    if not Printerexist(strNome) then

    strINF = "%windir%\inf\ntprint.inf"
    Set objShell = WScript.CreateObject("WScript.Shell")
    strExec = "rundll32 printui.dll PrintUIEntry /if" & _
    " /b """ & strNome & """" & _
    " /f """ & strINF & """" & _
    " /r """ & strPorta & """" & _
    " /m """ & strDriver & """" 

    objShell.Run strExec,0,1

    if PrinterDefault then objShell.Run "RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n " & strNome

    end if


    '========= Funções ================

    Function PrinterExist(strPrinterPath)
    PrinterExist=False
    strPrinterPath=ucase(strPrinterPath)

    Set WshNetwork = WScript.CreateObject("WScript.Network")
    Set WSHPrinters = WSHNetwork.EnumPrinterConnections

    For i = 0 To WSHPrinters.Count - 1 Step 2
    if ucase(WSHPrinters.Item(i+1))=strPrinterPath then
    PrinterExist=true
    exit function
    end if
    Next


    end function

    Comando para compartilhar a impressora em rede: printer where name="PROTOCOLO" set shared=true

    O comando NET USE que deverá ser utilizado "NET USE LPT1 \\"ObterAutomaticamenteoHostname\PROTOCOLO"

    sexta-feira, 10 de agosto de 2018 19:39