none
Deletar Impressoras Locais, menos impressora Pdf RRS feed

  • Pergunta

  • Boa Tarde

    Pessoal, estou com uma dificuldade aqui na empresa, estamos implantando um Server de Impressão e preciso remover todas as impressoras locais e conectar as que estão instaladas no servidor. Isto consegui fazer normalmente vis Script, porém não posso remover as impressoras pdfs das máquinas. O script que vi em um outro topico que é o que eu estou utilizando remove todas as impressoras.
    Segue Script
    ----

    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

    Set WshNetwork = WScript.CreateObject("WScript.Network")
    PrinterPath = "\\Server\FS-30DN"
    WshNetwork.AddWindowsPrinterConnection PrinterPath
    WshNetwork.SetDefaultPrinter "\\Server\FS-30DN"

    set net = createobject("wscript.network")

    wscript.quit

    -----

    voces podem me auxiliar a criar uma condição que não apague as impressoras PDFs?

    Obrigado
    segunda-feira, 31 de agosto de 2009 20:31

Respostas

  • Olá,

    Faça conforme o exemplo abaixo:



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

    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")
    lRet = False
    arrPDF     = "PRIMOPDF,CUTE PDF,PDF995"
    arrPDF  = split(arrPDF,",")

    For Each objPrinter in colInstalledPrinters
       lRet = FALSE
       for x = 0 to UBOUND(arrPDF)
          if instr(objPrinter.Name,arrPDF(X)) > 0 Then
             lRet = TRUE
             EXIT FOR
          End if
       Next
       if NOT lRet Then
          objPrinter.Delete_
       End if
    Next




    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Mcbarbalho quarta-feira, 2 de setembro de 2009 10:31
    terça-feira, 1 de setembro de 2009 19:59

Todas as Respostas

  • Olá,

    Faça conforme o exemplo:


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

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

    strPDF = "impressorapdf"

    For Each objPrinter in colInstalledPrinters
       if instr(objPrinter.Name,strPDF) = 0 Then
          objPrinter.Delete_
       End if
    Next



    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    segunda-feira, 31 de agosto de 2009 21:06
  • Boa Tarde

    Muito boa resposta, funcionou.
    Veja se pode me auxiliar em mais uma situação.
    Tenho aqui PRIMOPDF, CUTE PDF e PDF995. consigo colocar mais de uma impressora para que não seja apagada?

    Obrigado
    terça-feira, 1 de setembro de 2009 17:29
  • Olá,

    Faça conforme o exemplo abaixo:



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

    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")
    lRet = False
    arrPDF     = "PRIMOPDF,CUTE PDF,PDF995"
    arrPDF  = split(arrPDF,",")

    For Each objPrinter in colInstalledPrinters
       lRet = FALSE
       for x = 0 to UBOUND(arrPDF)
          if instr(objPrinter.Name,arrPDF(X)) > 0 Then
             lRet = TRUE
             EXIT FOR
          End if
       Next
       if NOT lRet Then
          objPrinter.Delete_
       End if
    Next




    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Mcbarbalho quarta-feira, 2 de setembro de 2009 10:31
    terça-feira, 1 de setembro de 2009 19:59
  • Boa Tarde

    esqueci de um detalhe veja se pode me ajudar.
    Quando o Script é executado pelo um usuario comum ele mostra a tela de acesso negado.(erro de execução)

    Como adm funcina normal.

    Como posso fazer para executar o script como um usuario comum?

    Obrigado

    quarta-feira, 23 de setembro de 2009 18:36
  • Olá,

    Tente colocar no startup da maquina...

    Se você está distribuindo por GPO, coloque em configurações de computador e coloque o link da GPO onde estão as contas de computadores no AD.

    Assim ele irá utilizar a conta SYSTEM que tem permissão para fazer isso.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique




    quarta-feira, 23 de setembro de 2009 19:04
  • Boa Tarde

    esqueci de um detalhe veja se pode me ajudar.
    Quando o Script é executado pelo um usuario comum ele mostra a tela de acesso negado.(erro de execução)

    Como adm funcina normal.

    Como posso fazer para executar o script como um usuario comum?

    Obrigado

    boa tarde, desculpe a falta de conhecimento  mais gostaria de saber onde executa-los, se é no cmd ?só sei trabalhar com interface e estou tentando aprimorar essa minha parte de conhecimento

     

    agradeço desde agora

    quarta-feira, 25 de maio de 2011 16:44
  • Copie o código para um arquivo texto e coloque o nome como , por exemplo, impressoras.vbs

    Agora duas maneiras de executar

    1)Abra um prompt de comando e digite o comando:

    cscript "c:\minha\pasta\onde\esta\o script\impressoras.vbs"

    2) ou dê dois clicks no arquivo impressoras.vbs


    Fábio de Paula Junior
    quarta-feira, 25 de maio de 2011 17:29
    Moderador