none
SCRIPT QUE VERIFICA SE A IMPRESSORA JÁ ESTÁ MAPEADA RRS feed

  • Pergunta

  • Prezados,

    Estou criando um print server e irei utilizar o seguinte código.

    Set WshNetwork = CreateObject("WScript.Network")
    WshNetwork.AddWindowsPrinterConnection "\\servidor\impressora"
    WshNetwork.SetDefaultPrinter "\\servidor\impressora"

    Alguém sabe como configurar o script para que ele verifique antes se a impressora está mapeada? Senão toda vez que o usuário fizer logon, a impressora será mapeada.

    Obrigado,

    Att,

    Jefferson

     

    quarta-feira, 15 de setembro de 2010 01:09

Respostas

  • Primeiro voce adiciona aquele primeiro código exatamente como esta no Post.

    Agora vamos para um exemplo mais prático, digamos que vc so quer mapear a impressora \\srv01\hp somente se ela não estiver mapeada, e o mesmo para a impressora \\srv01\epson

    ---

    Set WshNetwork = CreateObject("WScript.Network")

    if not Mapeada("\\sr01\hp") then

    WshNetwork.AddWindowsPrinterConnection "\\sr01\hp"
    WshNetwork.SetDefaultPrinter "\\sr01\hp"

    end if

    if not Mapeada("\\sr01\epson") then

    WshNetwork.AddWindowsPrinterConnection "\\sr01\epson"
    WshNetwork.SetDefaultPrinter "\\sr01\epson"

    end if

    ---

    O primieiro codigo é a estrutura de uma funcao, o "caminho" entre parenteses é uma argumento da funcao, quando voce chamar Mapeada("\\srv01\hp") a variavel caminho tera seu valor igual a \\srv01\hp, se ela estiver mapeada a funcao retorna TRUE se não retorna FALSE. Depois o mesmo para a EPSON.


    Fábio de Paula Junior
    • Marcado como Resposta - Jefferson quinta-feira, 16 de setembro de 2010 18:54
    quinta-feira, 16 de setembro de 2010 12:49
    Moderador

Todas as Respostas

  • Adicione esta função ao seu script (pode copiar o código e colar no final do seu script)

    Function Mapeada(Caminho)
     Mapeada = False
     Set objNetwork = WScript.CreateObject("WScript.Network")
     Set colPrinters = objNetwork.EnumPrinterConnections
     For i = 0 to colPrinters.Count -1 Step 2
     if ucase(colPrinters.Item (i + 1)) = ucase(caminho) then
     Mapeada = True
     exit for
     end if
     Next
    end function
    
    
    

     

    Exemplo de utilização:

    if Mapeada("\\seuservidor\suaimpressora") then
     wscript.echo "Mapeada"
    else
     wscript.echo "Nao mapeada"
    end if
    
    

    Fábio de Paula Junior
    quarta-feira, 15 de setembro de 2010 16:49
    Moderador
  • Fabio, primeiramente obrigado pelo script, porém gostaria de tirar uma dúvida.

    Você mencionou o código, porém depois o exemplo de utilização, no qual foi adicionado algumas informações, aí fiquei na dúvida, eu utilizo apenas?


    Function Mapeada("\\SERVIDOR\IMPRESSORA")
     Mapeada = False
     Set objNetwork = WScript.CreateObject("WScript.Network")
     Set colPrinters = objNetwork.EnumPrinterConnections
     For i = 0 to colPrinters.Count -1 Step 2
     if ucase(colPrinters.Item (i + 1)) = ucase("\\SERVIDOR\IMPRESSORA") then
     Mapeada = True
     exit for
     end if
     Next
    end function

    Obrigado,

    Jefferson

     

     

     

     

    • Marcado como Resposta - Jefferson quinta-feira, 16 de setembro de 2010 18:54
    • Não Marcado como Resposta - Jefferson quinta-feira, 16 de setembro de 2010 18:54
    quinta-feira, 16 de setembro de 2010 12:40
  • Primeiro voce adiciona aquele primeiro código exatamente como esta no Post.

    Agora vamos para um exemplo mais prático, digamos que vc so quer mapear a impressora \\srv01\hp somente se ela não estiver mapeada, e o mesmo para a impressora \\srv01\epson

    ---

    Set WshNetwork = CreateObject("WScript.Network")

    if not Mapeada("\\sr01\hp") then

    WshNetwork.AddWindowsPrinterConnection "\\sr01\hp"
    WshNetwork.SetDefaultPrinter "\\sr01\hp"

    end if

    if not Mapeada("\\sr01\epson") then

    WshNetwork.AddWindowsPrinterConnection "\\sr01\epson"
    WshNetwork.SetDefaultPrinter "\\sr01\epson"

    end if

    ---

    O primieiro codigo é a estrutura de uma funcao, o "caminho" entre parenteses é uma argumento da funcao, quando voce chamar Mapeada("\\srv01\hp") a variavel caminho tera seu valor igual a \\srv01\hp, se ela estiver mapeada a funcao retorna TRUE se não retorna FALSE. Depois o mesmo para a EPSON.


    Fábio de Paula Junior
    • Marcado como Resposta - Jefferson quinta-feira, 16 de setembro de 2010 18:54
    quinta-feira, 16 de setembro de 2010 12:49
    Moderador
  • OK Fabio obrigado pela ajuda!
    quinta-feira, 16 de setembro de 2010 18:54