Inquiridor
Mapeando impressoras via VBS

Discussão Geral
-
Senhores, boa tarde!
A um tempo terminei um script aqui na empresa, e gostaria de compartilhar com vocês.
Tínhamos um grande problema em relação a instalação de impressoras, ter que instalar e mapear para 2 mil usuarios..como a um tempo trocamos todo parque de impressoras da empresa, não queria que fizessem esse trabalho a mão um por um..
então, consegui criar um script para mapear as impressoras novas, e desinstalar as impressoras antigas..creio que seja util para muita gente que queria ajudar o pessoal de suporte da empresa..
No meu caso, criei 2 grupos no AD.
USERS_PRINTER_BLACK (impressão preto e branco) e USERS_PRINTER_COLOR ( impressão colorida)
Bom, os usuarios que eu queria que imprimissem apenas preto e branco, adicionei ao grupo USERS_PRINTER_BLACK e os usuarios coloridos em USERS_PRINTER_COLOR ( creio que é a parte que deu mais trabalho foi a gerencia de cada departamento dizer quais usuarios teria permissão em tais impressoras) hahaha
Apos todo esse trabalho, consegui finalizar o script..
o script faz o seguinte na inicialização do usuario..ele vai no ad, verifica qual grupo o usuario está e instala a impressora, removendo as outras e adicionando a nova como padrão..sei que ficou meio gambiarra a parte de remover, mas não consegui fazer de outra forma..rs
SCRIPT PARA REMOVER IMPRESSORAS
'Inicio do script de mapeamento 'Daniel Vasconcelos Ferreira 'INFRAESTRUTURA DE TI - SISTEMAS ON ERROR RESUME NEXT Set objSysInfo = CreateObject("ADSystemInfo") Set WshNetwork = CreateObject("Wscript.Network") strUserPath = "LDAP://" & objSysInfo.UserName Set objUser = GetObject(strUserPath) objMemberOf = objUser.GetEx("MemberOf") objUserName = objUser.Get("givenName") For Each strGroup in objMemberOf strGroupPath = "LDAP://" & strGroup Set objGroup = GetObject(strGroupPath) strGroupName = objGroup.CN Select Case strGroupName Case "LG_COMP_USERS_PRINTER_BLACK" WshNetwork.RemovePrinterConnection "\\10.23.22.100\IMP_GERENCIA_01" End Select Next ' Fim do script
SCRIPT PARA ADICIONAR IMPRESSORAS VIA GRUPO
'Inicio do script de mapeamento 'Daniel Vasconcelos Ferreira 'INFRAESTRUTURA DE TI - SISTEMAS ON ERROR RESUME NEXT Set objSysInfo = CreateObject("ADSystemInfo") Set WshNetwork = CreateObject("Wscript.Network") strUserPath = "LDAP://" & objSysInfo.UserName Set objUser = GetObject(strUserPath) objMemberOf = objUser.GetEx("MemberOf") objUserName = objUser.Get("givenName") For Each strGroup in objMemberOf strGroupPath = "LDAP://" & strGroup Set objGroup = GetObject(strGroupPath) strGroupName = objGroup.CN Select Case strGroupName Case "LG_COMP_USERS_PRINTER_BLACK" WshNetwork.AddWindowsPrinterConnection "\\10.23.22.100\IMP_BLACK" WshNetwork.SetDefaultPrinter "\\10.23.22.100\IMP_BLACK" Case "LG_COMP_USERS_PRINTER_COLOR" WshNetwork.AddWindowsPrinterConnection "\\10.23.22.100\IMP_COLOR" WshNetwork.SetDefaultPrinter "\\10.23.22.100\IMP_COLOR" End Select Next ' Fim do script
Espero que possa ajudar!
Abs
Todas as Respostas
-
Daniel,
Obrigado pela sua colaboração.
Aproveito para te apresentar a galeria do TechNet. Lá você pode disponibilizar códigos e outras ferramentas para toda a comunidade.
https://gallery.technet.microsoft.com/
Heitor Mocelin Ferreira
-
Olá Heitor,
aproveitando o espaço sobre esse assunto, criei uma ferramenta com quase tudo para mapeamento de impressora, seu diferencial é que pode ser executado em computador remoto, aplicando em todos os perfís de usuário, mas está em *.exe, feito por mim mesmo, como posso partilhar? Segue o help ainda em revisão:
Conecta Fila v3 [Ajuda]
Ferramenta para adicionar, remover e/ou substituir conexão de impressora (mapeamento ou fila de impressão), em computador Local ou Remoto, Ó TODOS OS PERFÍS DE USUÁRIO de forma transparente(sem interação), efetivando em segundos.
Requer permiss§es de AdministraþÒo Remota para o caso de um computador da remoto.
Executar a partir do prompt de comando, ex.:
CONECTA_FILA_V3.EXE ARGUMENTOS
Conecta_Fila_v3.exe [hostname] ou [-e: entreda em arquivo]
[-n: conecta impressora] [-p: define impressora padrÒo]
[-a: indica conexÒo de impressora antiga] [-d remove conexÒo de impressora antiga]
Argumentos:
-e: ou /e: -Obtem arquivo de texto simples(*.TXT *.LOG *.CSV) como entrada de hosts.
-s: ou /s: -SaÝda de resultado em arquivo de texto simples(*.TXT *.LOG *.CSV).
-n: ou /n: -Adiciona conexÒo de impressora indicada.
-r ou /r -Refaz conexÒo de impressora indicada sobre parÔmetro -n: ou /n:.
-p: ou /p: -Forþa definiþÒo de impressora padrÒo.
-a: ou /a: -Indica conexÒo de impressora antiga. Sendo esta a impressora padrÒo, substitui pela indicada sobre parÔmetro -n ou /n:.
-d ou /d -Remove conexÒo de impressora indicada sobre o parÔmetro -a: ou /a:.
-dx ou /dx -Remove todas conex§es de impressora.
-t ou /t -Adiciona conexÒo de impressora na condiþÒo de existir uma das indicadas sobre o parÔmetro -a: ou /a:.
-? -Ajuda de utilizaþÒo do Script.
Exemplos:
Conecta_Fila_v3.exe hostname -n:\\Servidor\Impressora
Conecta_Fila_v3.exe hostname -n:\\Servidor1\Impressora1;\\Servidor\Impressora2;\\Servidor1\Impressora3
** Este mÚtodo permite conectar vßrias conex§es de impressora, separando-os por ";" **
Conecta_Fila_v3.exe hostname -n:\\Servidor\Impressora -r
** Este mÚtodo permite reconectar vßrios mapeamentos de uma s¾ vez, separando-os por ";" **
Conecta_Fila_v3.exe -e:"c:\Lista de Computadores.txt" -n:\\Servidor\Impressora_a_Conectar -a:\\Servidor\Impressora_Antiga
** Com um arquivo de texto simples contendo a lista de computadores(*.TXT *.LOG *.CSV) permite executar a aþÒo escolhida em m·ltiplos hosts **
Conecta_Fila_v3.exe hostname -n:\\Servidor\Impressora_Nova -a:\\Servidor\Impressora_Antiga -t -d
** Acrescentando "-t" se instala a conexÒo de impressora apenas na condiþÒo de existir a indicada sobre o parÔmetro "-a:", opcionalmente combinar com "-d" para remover a antiga **
Conecta_Fila_v3.exe hostname -n:\\Servidor\Impressora -a:\\Servidor\Impressora_Antiga -p:\\Servidor\Impressora
Informativo:
Efetuar elevaþÒo de privilÚgio do Prompt em S.O. com UAC(Controle de Conta de Usußrio), utilizando a opþÒo "Executar como administrador".
Pode-se utilizar em uma conta sem privilÚgio administrativo, porÚm surtirß efeito apenas no perfil do executor no computador local, ex.:
Conecta_Fila_v3.exe localhost -n:\\Servidor\Impressora_a_Conectar