Usuário com melhor resposta
Script Logon

Pergunta
-
Boa tarde...
Sou leigo nesta área de scripts e verifiquei alguns aqui onde tentei adapta-los mas não consegui entender muito bem a dinâmica dos mesmo...vamos lá..o que preciso....Tenho uma estrutura de AD e gostaria de fazer um script que tivesse + - a seguinte lógica:
Todos meus usuários ficam definidos dentro do AD em OU´s diversas...então tenho por exemplo uma OU=Financeiro outra OU=ADM e assim vai...são muitas...e tenho um bat para cada uma..ou seja...cada uma carrega um perfil nesse bat via GPO...e a mesma carregando esse bat me faz o mapeamento da rede para cada perfil...
Queria criar um script em vbs...único, independente de qual OU o logon esteja ele deve fazer os seguintes passos:
1 - Verificar qual OU o logon se encontra
2 - Carregar o mapeamento de rede daquela OU especifica (onde esse mapeamento pode ser definido no proprio vbs...algo do Genero IF OU=ADM carrega o mapeamento de rede para ADM...IF OU=Financeiro....carrega o mapeamento de rede para financeiro...)
3 - Carregar o mapeamento de impressoras de um Security Group - Global especifico no mesmo procedimento do mapeamento de rede
Assim....tendo um script único, não precisaria ter N arquivos .BAT para logon como tenho hoje...pois utilizaria a lógica....SE o usuário é de X OU carrega X mapeamento de rede e SE está em X Security Group - Global, carrega X mapeamento de impressoras...
É possível?
Rombesso
Respostas
-
Olá Edgar.
Pelo que você perguntou...sim! Its possible! Porém você terá de adaptar o codigo conforme sua necessidade.
Veja um exemplo no qual ele consulta o grupo do usuário e efetua o mapeamento....
Const ENGINEERING_GROUP = "cn=engineering" Const FINANCE_GROUP = "cn=finance" Const HUMAN_RESOURCES_GROUP = "cn=human resources" Set wshNetwork = CreateObject("WScript.Network") wshNetwork.MapNetworkDrive "h:", "\\FileServer\Users\" & wshNetwork.NomeUsuário 'mapeamento pasta pessoal 'Obtem os dados do AD Set ADSysInfo = CreateObject("ADSystemInfo") Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) strGroups = LCase(Join(CurrentUser.MemberOf)) 'Inicia o If da consulta. If InStr(strGroups, ENGINEERING_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Engineering\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\EngLaser" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\Plotter" wshNetWork.SetDefaultPrinter "\\PrintServer\EngLaser" ElseIf InStr(strGroups, FINANCE_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Finance\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\FinLaser" wshNetWork.SetDefaultPrinter "\\PrintServer\FinLaser" ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Human Resources\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\HrLaser" wshNetWork.SetDefaultPrinter "\\PrintServer\HrLaser" End If
Lógico, lembrando que aqui o código é bem simples. Porém no sistema de search do site você poderá procurar por "n" exemplos e formas de executar.
Qualquer dúvida poste! E se útil classifique!
[]s,
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"- Marcado como Resposta Edgar Rombesso quinta-feira, 21 de julho de 2011 18:31
-
Legal Marcellus....já consigo adaptar seu código para o que preciso..porém, dentro de parte do código abaixo...
ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Human Resources\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\HrLaser" wshNetWork.SetDefaultPrinter "\\PrintServer\HrLaser"
queria ainda incluir a seguinte condição: antes de mapear o drive de rede e a impressora e definir como padrão, queria que ele removesse qualquer mapeamento que tivesse, mesmo sem saber qual e também qualquer impressora, mesmo sem saber qual.....tem como?
Rombesso- Marcado como Resposta Edgar Rombesso quinta-feira, 21 de julho de 2011 18:30
Todas as Respostas
-
Olá Edgar.
Pelo que você perguntou...sim! Its possible! Porém você terá de adaptar o codigo conforme sua necessidade.
Veja um exemplo no qual ele consulta o grupo do usuário e efetua o mapeamento....
Const ENGINEERING_GROUP = "cn=engineering" Const FINANCE_GROUP = "cn=finance" Const HUMAN_RESOURCES_GROUP = "cn=human resources" Set wshNetwork = CreateObject("WScript.Network") wshNetwork.MapNetworkDrive "h:", "\\FileServer\Users\" & wshNetwork.NomeUsuário 'mapeamento pasta pessoal 'Obtem os dados do AD Set ADSysInfo = CreateObject("ADSystemInfo") Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) strGroups = LCase(Join(CurrentUser.MemberOf)) 'Inicia o If da consulta. If InStr(strGroups, ENGINEERING_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Engineering\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\EngLaser" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\Plotter" wshNetWork.SetDefaultPrinter "\\PrintServer\EngLaser" ElseIf InStr(strGroups, FINANCE_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Finance\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\FinLaser" wshNetWork.SetDefaultPrinter "\\PrintServer\FinLaser" ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Human Resources\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\HrLaser" wshNetWork.SetDefaultPrinter "\\PrintServer\HrLaser" End If
Lógico, lembrando que aqui o código é bem simples. Porém no sistema de search do site você poderá procurar por "n" exemplos e formas de executar.
Qualquer dúvida poste! E se útil classifique!
[]s,
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"- Marcado como Resposta Edgar Rombesso quinta-feira, 21 de julho de 2011 18:31
-
Legal Marcellus....já consigo adaptar seu código para o que preciso..porém, dentro de parte do código abaixo...
ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Human Resources\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\HrLaser" wshNetWork.SetDefaultPrinter "\\PrintServer\HrLaser"
queria ainda incluir a seguinte condição: antes de mapear o drive de rede e a impressora e definir como padrão, queria que ele removesse qualquer mapeamento que tivesse, mesmo sem saber qual e também qualquer impressora, mesmo sem saber qual.....tem como?
Rombesso- Marcado como Resposta Edgar Rombesso quinta-feira, 21 de julho de 2011 18:30