none
Remover todas as impressoras Mapeadas por VBScript RRS feed

  • Pergunta

  • Oi pessoal, preciso remover todas as impressoras que possivelmente esteja mapeada no micro do usuário.
    Estou montando um LogonScript pra executar tudo o que preciso nos micros dos users.
    Porém, trocamos de servidor de impressão e precisamos desmapear todas as impressoras que possam haver do servidor antigo.

    Existe alguma variável geral que desconecte todas, tipo *, %, etc...

    Fiz o seguinte.

    Set objNetwork = WScript.CreateObject("WScript.Network")
    Set colPrinters = objNetwork.EnumPrinterConnections
    if colPrinters.Item (i + 1) = "\\servidor\impressora1" then
      objNetwork.RemovePrinterConnection "\\servidor\impressora1"
    end if
    if colPrinters.Item (i + 1) = "\\servidor\impressora2" then
      objNetwork.RemovePrinterConnection "\\servidor\impressora2"
    end if
    if colPrinters.Item (i + 1) = "\\servidor\impressora3" then
      objNetwork.RemovePrinterConnection "\\servidor\impressora3"
    end if
    if colPrinters.Item (i + 1) = "\\servidor\impressora4" then
      objNetwork.RemovePrinterConnection "\\servidor\impressora4"
    end if
    if colPrinters.Item (i + 1) = "\\servidor\impressora5" then
      objNetwork.RemovePrinterConnection "\\servidor\impressora5"
    end if

    Mas não está dando certo.
    Não tem com fazer?

    Set objNetwork = WScript.CreateObject("WScript.Network")
    objNetwork.RemovePrinterConnection "\\servidor\*"
    quarta-feira, 7 de maio de 2008 14:35

Respostas

  • Code Snippet

    strComputer = "."
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters = objWMIService.ExecQuery _
    ("Select * from Win32_Printer")
    For Each objPrinter in colInstalledPrinters
      If InStr(objPrinter.Name, "\\Server") > 0 then 
         WshNetwork.RemovePrinterConnection objPrinter.Name
      End if
    Next

     

     

    quarta-feira, 7 de maio de 2008 18:36

Todas as Respostas

  • Code Snippet

    strComputer = "."
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters = objWMIService.ExecQuery _
    ("Select * from Win32_Printer")
    For Each objPrinter in colInstalledPrinters
      If InStr(objPrinter.Name, "\\Server") > 0 then 
         WshNetwork.RemovePrinterConnection objPrinter.Name
      End if
    Next

     

     

    quarta-feira, 7 de maio de 2008 18:36
  • Muito obrigado, realmente funcionou.
    quarta-feira, 7 de maio de 2008 19:59
  • Também me ajudou muito!

     

    Obrigado!

    sexta-feira, 6 de junho de 2008 15:08
  • Muito bom deu certinho !!!

    Vlw

    quinta-feira, 18 de agosto de 2011 15:20