none
Instalar impressora compartilhada por Script

    Question

  • Boa tarde!

    Possuo um impressora instalada e compartilhada em um micro e gostaria de uma linha de comando para instalá-la no micro quando o usuário logar.

    De preferência um script .bat

    Obs: Já usuei o comando net use \\10.1.1.151\impressoras. E não funcionou

    Tuesday, July 24, 2007 4:36 PM

Answers

  •  

    Salve como .vbs...

     

    Code Snippet

    set objNet = CreateObject("wscript.network")

     

    objNet.AddWindowsPrinterConnection "\\servidor\impressora"

     

    wscript.quit

     

     

    Wednesday, July 25, 2007 7:59 PM
  • Cara faz o seguinte.

    adiciona as linhas abaixo num arquivo e salve como bat

     

     

    ;Instala conexão de impressora
    rundll32 printui.dll,PrintUIEntry /in /n\\COMPUTADOR\IMPRESSORA

    ;Torna a impressora como padrão
    rundll32 printui.dll,PrintUIEntry /y /n\\COMPUTADOR\IMPRESSORA
    Saturday, August 04, 2007 7:36 PM
  • Teste este script (.VBS), ele tem uma função que verifica se a impressora existe.

     

    if not printerexist("\\printserver\imphp") then
    	set objNet = CreateObject("wscript.network")
    	objNet.AddWindowsPrinterConnection "\\printserver\imphp"
    end if
    
    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
    


    Fábio de Paula Junior
    Tuesday, September 13, 2011 11:24 AM
  • Exemplo com .BAT

    :: Informe o caminho da impressora 
    SET IMPRESSORA=\\PRINTSERVER\IMPRESSORAHP
    
    :: Pesquisa com WMI e depois filtra com o nome da impressora
    wmic printer get name /value | findstr /I /E "%IMPRESSORA%"
    
    :: SE A IMPRESSORA NÃO EXISTIR ENTÃO INSTALA
    IF NOT %ERRORLEVEL% == 0 Rundll32 printui.dll,PrintUIEntry /in /n %IMPRESSORA%
    


    Fábio de Paula Junior
    Wednesday, September 14, 2011 3:30 PM
  • Felipe,

    Modifique um pouco mais o código.

    Criei uma Sub ficando mais fácil instalar (apenas chame a sub com o nome da impressora na frente) e de dentro da sub eu utilizo a função que verifica se a impressora existe.) Segue o código completo para as três impressoras.

    InstalaImpressora "\\PRINTSERVER\Printer01"
    InstalaImpressora "\\PRINTSERVER\Printer02"
    InstalaImpressora "\\PRINTSERVER\Printer03"
    		 
    
    Sub InstalaImpressora(strImpressora)
    	if not printerexist(strImpressora) then
    		Set objNet = CreateObject("wscript.network")
    		objNet.AddWindowsPrinterConnection strImpressora
    	end if
    end sub
    
    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
    
    


    Fábio de Paula Junior
    Thursday, September 15, 2011 8:31 PM

All replies

  •  

    Salve como .vbs...

     

    Code Snippet

    set objNet = CreateObject("wscript.network")

     

    objNet.AddWindowsPrinterConnection "\\servidor\impressora"

     

    wscript.quit

     

     

    Wednesday, July 25, 2007 7:59 PM
  • Cara faz o seguinte.

    adiciona as linhas abaixo num arquivo e salve como bat

     

     

    ;Instala conexão de impressora
    rundll32 printui.dll,PrintUIEntry /in /n\\COMPUTADOR\IMPRESSORA

    ;Torna a impressora como padrão
    rundll32 printui.dll,PrintUIEntry /y /n\\COMPUTADOR\IMPRESSORA
    Saturday, August 04, 2007 7:36 PM
  • Se quiser mesmo utilizar uma bat, use este comando.....

     

     

    Code Snippet

    net use lpt1 \\nome_computador\impressora /persistent:yes

     

     

     

    o.0

    Monday, August 06, 2007 7:36 PM
  • O topico á me ajudou bastante, mas ainda tenho uma duvida.

    Vc's sabem como configurar a "QUALIDADE DE IMPRESSÃO" por linha de comando??

     

    Valeu!!!

     

    Friday, August 29, 2008 2:08 PM
  • Ola Delia, desculpe a demora em responder, mas eu estive meio ausente..

     

    Então vc, pode controlar a qualidade com a propriedade PrintQuality...

     

    Ela varia de impressora pra impressora mas de um modo geral os valores são:

     

    PrintQuality=100    => Qualidade baixa

    PrintQuality=200    => Qualidade média

    PrintQuality=600    => Qualidade alta

     

    Aqui um exemplo de como ver os valores atuais da impressora:

     

    Code Snippet

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_PrinterConfiguration")
    For Each objPrinter in colInstalledPrinters
        Wscript.Echo "Name: " & objPrinter.Name
        Wscript.Echo "Collate: " & objPrinter.Collate
        Wscript.Echo "Copies: " & objPrinter.Copies
        Wscript.Echo "Driver Version: " & objPrinter.DriverVersion
        Wscript.Echo "Duplex: " & objPrinter.Duplex
        Wscript.Echo "Horizontal Resolution: " & _
            objPrinter.HorizontalResolution
        If objPrinter.Orientation = 1 Then
            strOrientation =  "Portrait"
        Else
            strOrientation = "Landscape"
        End If
        Wscript.Echo "Orientation : " & strOrientation
        Wscript.Echo "Paper Length: " & objPrinter.PaperLength / 254
        Wscript.Echo "Paper Width: " & objPrinter.PaperWidth / 254
        Wscript.Echo "Print Quality: " & objPrinter.PrintQuality
        Wscript.Echo "Scale: " & objPrinter.Scale
        Wscript.Echo "Specification Version: " & _
            objPrinter.SpecificationVersion
        If objPrinter.TTOption = 1 Then
            strTTOption = "Print TrueType fonts as graphics."
        Elseif objPrinter.TTOption = 2 Then
            strTTOption = "Download TrueType fonts as soft fonts."
        Else
            strTTOption = "Substitute device fonts for TrueType fonts."
        End If
        Wscript.Echo "True Type Option: " & strTTOption
        Wscript.Echo "Vertical Resolution: " & objPrinter.VerticalResolution
    Next

     

     

     

    Thursday, September 18, 2008 5:54 PM
  • Sou novo no TechNet não conheço muito bem as regras, Mas aproveitando o tópico gostaria de saber como desabilitar a opção "Ativar recursos de impressão avançados", que se encontra na aba avançadas da propriedades da impressora. 

    Tuesday, November 11, 2008 7:11 PM
  • Você tem que defirnir permissão de impressão e informar que a pessoa não pode controlar a impressora, somente os documentos.
    Monday, March 16, 2009 11:10 PM
  • Valdir, desculpa relembrar esse post depois de tanto tempo.

        Utilizei esse comando que descreveu para instalar as impressoras compartilhadar na rede, esse script é executado em todo logon do usuario, porem sem que o usuario efetua o login o script instala a impressora mesmo ela já estando lá, é possivel inserir algum comando antes para verificar se essas impressoras já estão instaladas?

    Grato desde já

     

    Abraço

    Thursday, February 24, 2011 8:31 PM
  • Estou na mesma situação do "Naamã Werneck" (Acima).

    Preciso que o Script verifique se a impressora já esta instalada e caso sim encerre o script, caso não, efetue a instalação.

    Porque só se faz necessario instalar quando um usuário se loga pela 1º vez em uma determinada máquina do dominio.

    Valeu galera


    Felipe Cavalcanti C. de Melo felipeccmelo@hotmail.com
    Monday, September 12, 2011 5:25 PM
  • Teste este script (.VBS), ele tem uma função que verifica se a impressora existe.

     

    if not printerexist("\\printserver\imphp") then
    	set objNet = CreateObject("wscript.network")
    	objNet.AddWindowsPrinterConnection "\\printserver\imphp"
    end if
    
    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
    


    Fábio de Paula Junior
    Tuesday, September 13, 2011 11:24 AM
  • Exemplo com .BAT

    :: Informe o caminho da impressora 
    SET IMPRESSORA=\\PRINTSERVER\IMPRESSORAHP
    
    :: Pesquisa com WMI e depois filtra com o nome da impressora
    wmic printer get name /value | findstr /I /E "%IMPRESSORA%"
    
    :: SE A IMPRESSORA NÃO EXISTIR ENTÃO INSTALA
    IF NOT %ERRORLEVEL% == 0 Rundll32 printui.dll,PrintUIEntry /in /n %IMPRESSORA%
    


    Fábio de Paula Junior
    Wednesday, September 14, 2011 3:30 PM
  • Fabio Jr,

    Testei os dois Scripts (.bat e .vbs), ambos funcionaram perfeitamente!!! Muito Obrigado!

    Mais uma dúvida...

    Eu preciso instalar simultaneamente 03 impressoras, \\PRINTSERVER\Printer01, \\PRINTSERVER\Printer02 e \\PRINTSERVER\Printer03.

    O que preciso inserir no script para automatizar a instalação dessas 3 impressoras? e antes sempre testando se elas já existem!!!

    Tenho preferencia em utilizar o .vbs


    Felipe Cavalcanti C. de Melo felipeccmelo@hotmail.com
    Thursday, September 15, 2011 8:09 PM
  • Felipe,

    Modifique um pouco mais o código.

    Criei uma Sub ficando mais fácil instalar (apenas chame a sub com o nome da impressora na frente) e de dentro da sub eu utilizo a função que verifica se a impressora existe.) Segue o código completo para as três impressoras.

    InstalaImpressora "\\PRINTSERVER\Printer01"
    InstalaImpressora "\\PRINTSERVER\Printer02"
    InstalaImpressora "\\PRINTSERVER\Printer03"
    		 
    
    Sub InstalaImpressora(strImpressora)
    	if not printerexist(strImpressora) then
    		Set objNet = CreateObject("wscript.network")
    		objNet.AddWindowsPrinterConnection strImpressora
    	end if
    end sub
    
    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
    
    


    Fábio de Paula Junior
    Thursday, September 15, 2011 8:31 PM
  • Fabio,

    Ficou Perfeito! Muito Obrigado!


    Felipe Cavalcanti C. de Melo felipeccmelo@hotmail.com
    Thursday, September 15, 2011 8:44 PM
  • Cara faz o seguinte.

    adiciona as linhas abaixo num arquivo e salve como bat

    ;Instala conexão de impressora
    rundll32 printui.dll,PrintUIEntry /in /n\\COMPUTADOR\IMPRESSORA

    ;Torna a impressora como padrão
    rundll32 printui.dll,PrintUIEntry /y /n\\COMPUTADOR\IMPRESSORA

    Simples, rápido e eficaz. Obrigado!!!
    Saturday, April 07, 2012 3:45 PM