none
Script checar a impressora padrao e alterar para outra RRS feed

  • Pergunta

  • Ola,

    Gostaria da ajuda na construcao de um script para a seguinte necessidade:

    se existe a fila de impressao  \\server\ind_normal altere a fila \\server\ind_frenteverso  para padrao

    se existe a fila de impressao \\server\eng_normal altere a fila \\server\eng_frenteverso  para padrao

    Ou seja, se existe uma fila especifica, faca com que outra fila seja padrao, ou seja a impressora padrao sera alterada tendo como referencia as filas instaladas para cada usuario.

    o porque disso,  ha muitas impressoras na empresa e em departamentos diferentes, nao posso configurar a mesma fila padrao para todos, eu poderia ate criar grupos no AD e criar uma GPO para alterar a impressora padrao baseado nesses grupos, mas sao muitos departamentos e vai demorar muito ate mapear todos os usuarios.

     

    Abraco

     

     


    MCP, MCDST, MCTS(Forefront, Windows7, Windows2008), MCSA, MCSE, MCT, ITIL (mcsamcse.blogspot.com)
    quinta-feira, 30 de setembro de 2010 12:05

Respostas

  • Veja o script completo e para as duas impressoras

     

    Set objPrinter = CreateObject("WScript.Network") 
    
    if Mapeada("\\server\ind_normal") then
     objPrinter.SetDefaultPrinter "\\server\ind_frenteverso"
    end if
    
    if Mapeada("\\server\eng_normal") then
     objPrinter.SetDefaultPrinter "\\server\eng_frenteverso"
    end if
    
    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
    

     

     


    Fábio de Paula Junior
    • Marcado como Resposta Adriano Neiva quinta-feira, 30 de setembro de 2010 15:43
    quinta-feira, 30 de setembro de 2010 15:14
    Moderador

Todas as Respostas

  • Adriano,
    

    Há pouco tempo coloquei uma função aqui no fórum que pode ajuda-lo, ela verifica se a impressora esta mapeada:

    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
    

    No seu caso vc pode usar assim:

    Set objPrinter = CreateObject("WScript.Network") 
    
    if Mapeada( "\\server\ind_normal") then
     objPrinter.SetDefaultPrinter "\\server\ind_frenteverso"
    end if
    
    

     

     Ref.: http://social.technet.microsoft.com/Forums/pt-BR/scriptadminpt/thread/46dbe98b-33f2-40c0-bcbd-f3eda9afdc01/#9c78f95f-ea5a-40f8-b786-8729eb9da295


    Fábio de Paula Junior
    quinta-feira, 30 de setembro de 2010 12:55
    Moderador
  • Ola Fabio,

    Obrigado pela resposta, eu tinha visto este post, mas tem um pequeno problema, nao sei absolutamente nada de script, tentei adequar o script para o que eu queria e nao consegui.

    agora pouco tentei usar as suas dicas, mas tambem nao funcionou.

    como montar o script usando a funcao que vc indicou?

     

     


    MCP, MCDST, MCTS(Forefront, Windows7, Windows2008), MCSA, MCSE, MCT, ITIL (mcsamcse.blogspot.com)
    quinta-feira, 30 de setembro de 2010 14:13
  • Veja o script completo e para as duas impressoras

     

    Set objPrinter = CreateObject("WScript.Network") 
    
    if Mapeada("\\server\ind_normal") then
     objPrinter.SetDefaultPrinter "\\server\ind_frenteverso"
    end if
    
    if Mapeada("\\server\eng_normal") then
     objPrinter.SetDefaultPrinter "\\server\eng_frenteverso"
    end if
    
    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
    

     

     


    Fábio de Paula Junior
    • Marcado como Resposta Adriano Neiva quinta-feira, 30 de setembro de 2010 15:43
    quinta-feira, 30 de setembro de 2010 15:14
    Moderador
  • Fabio,

    muito obrigado, funcionou corretamente


    MCP, MCDST, MCTS(Forefront, Windows7, Windows2008), MCSA, MCSE, MCT, ITIL (mcsamcse.blogspot.com)
    quinta-feira, 30 de setembro de 2010 15:44
  • PRecisava de uma ultima ajuda..

    como eu poderia alterar o script para fazer o seguinte

    se a fila de impressao  \\server\ind_normal for padrao altere a fila \\server\ind_frenteverso  para padrao

    se a fila de impressao  \\server\eng_normal for padrao altere a fila \\server\eng_frenteverso  para padrao

     

    neste caso eu nao estou verificando se existe a fila, a minha referencia e se ela e a padrao


    MCP, MCDST, MCTS(Forefront, Windows7, Windows2008), MCSA, MCSE, MCT, ITIL (mcsamcse.blogspot.com)
    quinta-feira, 30 de setembro de 2010 18:58