none
Deletar determina impressora RRS feed

  • Pergunta

  •  

    Pessoal, estou com um mega problema aki, preciso de deletar 5 impressora que foram desativas na empresa, mais preciso que seja deletada somente as 5 e que o usuario continue com as outras que ele tem, tenho um script aki que deleta todas, tem alguma coisa de escolher os nomes das impressoras a serem deletadas???

     

    Segue o script que tenho (mais ele deleta todas as impressoras instaladas)

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")

    For Each objPrinter in colInstalledPrinters
        objPrinter.Delete_
    Next

    Abraços
    quinta-feira, 18 de outubro de 2007 14:38

Respostas

  •  

    Você disse que quer deletar umas impressoras.

    Se for isto, o script vai funcionar sim. É que faltou o "_" no que mandei.

     

    Rode este para saber quais impressoras/portas você precisa deletar.

    ---------------------------------------------------------------------------------------------------------------

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")

     

    For Each objPrinter in colInstalledPrinters
        wscript.echo "Nome: " & objPrinter.Name & "  Porta: " & objPrinter.PortName

    Next
    ---------------------------------------------------------------------------------------------------------------

    Ele irá retornar algo assim: 

    Nome:  Xerox 4250  Porta: IP_192.168.0.1

    Nome:  Xerox 4950  Porta: IP_192.168.0.2

    ---------------------------------------------------------------------------------------------------------------

     

     

    Depois, altere a linha em vermelho com os dados das impressoras que você quer deletar.

    ---------------------------------------------------------------------------------------------------------------

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")

    For Each objPrinter in colInstalledPrinters
        if instr(1, "IP_192.168.0.1, IP_192.168.0.2", objPrinter.PortName ) > 0 then
         objPrinter.Delete_
        end if
    Next

    quinta-feira, 18 de outubro de 2007 17:12

Todas as Respostas

  • Faça um teste com wscript.echo objPrinter.Name no lugar do objPrinter.delete para saber os nomes das impressoras, altere o codigo abaixo e depois é só executar localmente nas estações.

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")

    For Each objPrinter in colInstalledPrinters
        If instr("Xerox Phaser 3425 PCL 6, HP Color LaserJet 5500 PCL6", objPrinter.Name ) > 0 then
            objPrinter.Delete

        End If
    Next


     

    quinta-feira, 18 de outubro de 2007 15:30
  • Eugenio,

     

    Não deu certo, vou te mandar o que eu tenho para instalar ve se ajuda alguma coisa

     

    'Instala Impressoras e define padrão.

    Set WshNetwork = CreateObject("WScript.Network")

    WshNetwork.AddWindowsPrinterConnection "\\sbcampo7\ADM-HPL3800"
    WshNetwork.AddWindowsPrinterConnection "\\sbcampo7\ADM-HPL4050"
    WshNetwork.AddWindowsPrinterConnection "\\sbcampo7\ADM-RICOHL1205"
    WshNetwork.AddWindowsPrinterConnection "\\sbcampo7\ALM-HPL2015"
    WshNetwork.AddWindowsPrinterConnection "\\sbcampo7\COM-HPL1300"
    WshNetwork.AddWindowsPrinterConnection "\\sbcampo7\COM-HPL2420"

     


    WshNetwork.SetDefaultPrinter "\\sbcampo7\ADM-HPL3800"

     

    esse eh o que eu instalo.

    quinta-feira, 18 de outubro de 2007 16:03
  •  

    Você disse que quer deletar umas impressoras.

    Se for isto, o script vai funcionar sim. É que faltou o "_" no que mandei.

     

    Rode este para saber quais impressoras/portas você precisa deletar.

    ---------------------------------------------------------------------------------------------------------------

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")

     

    For Each objPrinter in colInstalledPrinters
        wscript.echo "Nome: " & objPrinter.Name & "  Porta: " & objPrinter.PortName

    Next
    ---------------------------------------------------------------------------------------------------------------

    Ele irá retornar algo assim: 

    Nome:  Xerox 4250  Porta: IP_192.168.0.1

    Nome:  Xerox 4950  Porta: IP_192.168.0.2

    ---------------------------------------------------------------------------------------------------------------

     

     

    Depois, altere a linha em vermelho com os dados das impressoras que você quer deletar.

    ---------------------------------------------------------------------------------------------------------------

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")

    For Each objPrinter in colInstalledPrinters
        if instr(1, "IP_192.168.0.1, IP_192.168.0.2", objPrinter.PortName ) > 0 then
         objPrinter.Delete_
        end if
    Next

    quinta-feira, 18 de outubro de 2007 17:12
  •  

    Valeu msm amigo deu certinho aki

     

    abraços

    • Sugerido como Resposta Mauro Dourado sexta-feira, 7 de agosto de 2009 14:18
    quinta-feira, 18 de outubro de 2007 18:11
  • Eugenio, sei que tem muito tempo essa dúvida, mais gostaria de incrementar o problema. Se a impressora estiver instalada no computador e se colocar esse script para rodar como o usuário comum, o script não roda porque o usuário não tem privilégio sobre objeto: Acesso negado.
    Você sabe como dar credenciais para que essa ação seja realizada.
    sexta-feira, 7 de agosto de 2009 14:24