none
Coletar informações de impressora remotamente RRS feed

  • Pergunta

  • Boa Tarde,

    Amigos, preciso efetuar instalações de impressoras diariamente, todas estão em um server, porem eu nao tenho uma lista de IPs sempre atualizada, teria algum script em VBS que colete as informações, exemplo:

    Quero instalar (via VNC) uma impressora Zebra no pc xxxxx-xxxx, eu tenho um outro pc na mesma rede que tem essa impressora configurada, porem a conexão e verificação demorará, eu queria executar um vbs colocando o hostname e o mesmo me retorna um log com o nome da Impressora , porta e IP que ela está configurada, dessa maneira eu configuro ja sabendo o nome e IP da impressora.

    Agradeço desde já.

    sexta-feira, 31 de janeiro de 2014 19:24

Respostas

  • Boa tarde André,

    Bom tente esse script ele usa WMI para obter as informações da impressora....

    Segue um link que pode te ajudar

    On Error Resume Next
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set oShell = CreateObject("wscript.shell")
    
    sComputer = InputBox ("Digite o host ou ip do Equipamento","PESQUISA IMPRESSORA",".")
    	If sComputer = "" Then wscript.quit
    		sPrint=Msgbox("Deseja verificar todas impressoras do equipamento",36,"PESQUISA IMPRESSORA")
    		If sPrint = Vbno Then
    			sPrintName = InputBox ("Digite o nome da Impressora","PESQUISA IMPRESSORA")
    			If sPrintName = "" Then wscript.quit
    			sPrinter = "FROM Win32_Printer where name Like '%" & sPrintName &"%'"
    		Else
    			sPrinter = "FROM Win32_Printer "
    	End If
    PrinterLog = "F:\Resultado_"& sComputer & ".txt"
    Set objWMIService = GetObject("winmgmts:\\" & sComputer & "\root\CIMV2")
    	If not objFSO.FileExists(PrinterLog)  Then
    		Set oFile = objFSO.CreateTextFile(PrinterLog)
    	End IF
    Set colItems = objWMIService.ExecQuery("SELECT * "& sPrinter)
    For Each objItem In colItems
    	 sDados = "====================================" & Vbnewline & objItem.name & Vbnewline & _
    	"====================================" & Vbnewline & _
    	"Description: " & objItem.Description & Vbnewline & _
    	"Printer: " & objItem.DeviceID & Vbnewline & _
    	"Driver Name: " & objItem.DriverName & Vbnewline & _
    	"Port Name: " & objItem.PortName & Vbnewline & _
    	"Printer State: " & objItem.PrinterState & Vbnewline & _
    	"Printer Status: " & objItem.PrinterStatus & Vbnewline & _
    	"PrintJobDataType: " & objItem.PrintJobDataType & Vbnewline & _
    	"Print Processor: " & objItem.PrintProcessor & Vbnewline & _
    	"Shared: " & objItem.Shared & Vbnewline & _
    	"ShareName: " & objItem.ShareName & Vbnewline & _
    	"Location: " & objItem.Location & Vbnewline
    	sResultado = sResultado + sDados
    Next
    
    Set oFile = objFSO.OpenTextFile(PrinterLog,8)
    	oFile.writeLine "Maquina :"  & sComputer & " Data hora: " & Now
    	oFile.write sResultado
    	oFile.close
    
    oShell.Run PrinterLog
    


    att, Aparecido Deveza

    • Marcado como Resposta andre080310 segunda-feira, 3 de fevereiro de 2014 12:25
    sábado, 1 de fevereiro de 2014 18:11

Todas as Respostas

  • Boa tarde André,

    Bom tente esse script ele usa WMI para obter as informações da impressora....

    Segue um link que pode te ajudar

    On Error Resume Next
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set oShell = CreateObject("wscript.shell")
    
    sComputer = InputBox ("Digite o host ou ip do Equipamento","PESQUISA IMPRESSORA",".")
    	If sComputer = "" Then wscript.quit
    		sPrint=Msgbox("Deseja verificar todas impressoras do equipamento",36,"PESQUISA IMPRESSORA")
    		If sPrint = Vbno Then
    			sPrintName = InputBox ("Digite o nome da Impressora","PESQUISA IMPRESSORA")
    			If sPrintName = "" Then wscript.quit
    			sPrinter = "FROM Win32_Printer where name Like '%" & sPrintName &"%'"
    		Else
    			sPrinter = "FROM Win32_Printer "
    	End If
    PrinterLog = "F:\Resultado_"& sComputer & ".txt"
    Set objWMIService = GetObject("winmgmts:\\" & sComputer & "\root\CIMV2")
    	If not objFSO.FileExists(PrinterLog)  Then
    		Set oFile = objFSO.CreateTextFile(PrinterLog)
    	End IF
    Set colItems = objWMIService.ExecQuery("SELECT * "& sPrinter)
    For Each objItem In colItems
    	 sDados = "====================================" & Vbnewline & objItem.name & Vbnewline & _
    	"====================================" & Vbnewline & _
    	"Description: " & objItem.Description & Vbnewline & _
    	"Printer: " & objItem.DeviceID & Vbnewline & _
    	"Driver Name: " & objItem.DriverName & Vbnewline & _
    	"Port Name: " & objItem.PortName & Vbnewline & _
    	"Printer State: " & objItem.PrinterState & Vbnewline & _
    	"Printer Status: " & objItem.PrinterStatus & Vbnewline & _
    	"PrintJobDataType: " & objItem.PrintJobDataType & Vbnewline & _
    	"Print Processor: " & objItem.PrintProcessor & Vbnewline & _
    	"Shared: " & objItem.Shared & Vbnewline & _
    	"ShareName: " & objItem.ShareName & Vbnewline & _
    	"Location: " & objItem.Location & Vbnewline
    	sResultado = sResultado + sDados
    Next
    
    Set oFile = objFSO.OpenTextFile(PrinterLog,8)
    	oFile.writeLine "Maquina :"  & sComputer & " Data hora: " & Now
    	oFile.write sResultado
    	oFile.close
    
    oShell.Run PrinterLog
    


    att, Aparecido Deveza

    • Marcado como Resposta andre080310 segunda-feira, 3 de fevereiro de 2014 12:25
    sábado, 1 de fevereiro de 2014 18:11
  • Perfeito Aparecido, funcionou aqui.

    Obrigado.

    segunda-feira, 3 de fevereiro de 2014 12:23