Usuário com melhor resposta
Script de logon não mapeia quando usuário faz parte de dois grupos

Pergunta
-
AMIGOS USO O APLICATIVO KIXTART(NÃO TENHO NENHUM DOMINIO ALGUM NO VBSCRIPT) PARA EXECUTAR O MEU SCRIPT DE LOGON DA REDE, NO SCRIPT ABAIXO TUDO FUNCIONA, POREM SE TENHO UM USUARIO QUE PERTENÇA A DOIS GRUPOS DIFERENTES, NEM TODOS OS MAPEAMENTOS ESTÃO SENDO EXECUTADOS, VEJAM O SCRIPT ABAIXO:
CLS Color W+ at (02,08) "Ola, "+@userid+" , Bem-vindo a Rede NEXUS" at (04,08) "Aguarde. Definindo os Parametros de Sua Conexao !!!" sleep 1 small Color b+/n BOX (0,0,24,79,SINGLE) Color b/n BOX (8,06,21,70,SINGLE) Color g+/n Color w+/n AT (10,08) "Usuário : " AT (11,08) "Nome : " AT (12,08) "Privilégio : " AT (13,08) "Estação : " AT (14,08) "Dominio : " AT (15,08) "Servidor de Logon : " at (16,08) "Hora : " at (17,08) "Data : " Color y+/n AT (10,28) @userid AT (11,28) @fullname AT (12,28) @priv AT (13,28) @wksta AT (14,28) @domain AT (15,28) @lserver AT (16,28) @time AT (17,28) ""+@mdayno+"/"+@monthno+"/"+@year Color y+/n AT (19,08) "Aguarde, Gravando os Parametros de Sua Conexão ...!" sleep 3 if ingroup("QLIKVIEW_ADM") USE P: "\\SRV-QLIK\aplicacoes" endif if ingroup("Domain Users") USE Y: "\\SRVSUPORTE\PUBLICA" /PERSISTENT endif if ingroup("LEXCOLOR2") ADDPRINTERCONNECTION ("\\SRV-IMP2.NEXUS.LOCAL\L-SECEXEC") endif if ingroup("ACESSO_LEX_2ANDAR") ADDPRINTERCONNECTION ("\\SRV-IMP2.NEXUS.LOCAL\L-SGTG") endif if ingroup("FINANCEIRO") USE X: "\\SRVARQ01\FINANCEIRO" ADDPRINTERCONNECTION ("\\SRV-IMP2.NEXUS.LOCAL\X-FINAN") SETDEFAULTPRINTER ("\\SRV-IMP2.NEXUS.LOCAL\X-FINAN") endif if ingroup("JURIDICO") USE X: "\\SRVARQ01\JURIDICO" ADDPRINTERCONNECTION ("\\SRV-IMP2.NEXUS.LOCAL\X-SGTG") ADDPRINTERCONNECTION ("\\SRV-IMP2.NEXUS.LOCAL\X-PROTOC") SETDEFAULTPRINTER ("\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2") endif if ingroup("LICITACAO") USE X: "\\SRVARQ01\LICITACAO" ADDPRINTERCONNECTION ("\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2") SETDEFAULTPRINTER ("\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2") endif if ingroup("SGTG") USE R: "\\SRVARQ01\ADMINISTRATIVO" ADDPRINTERCONNECTION ("\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2") SETDEFAULTPRINTER ("\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2") endif EXIT
EU TENHO UM USUARIO QUALQUER QUE PERTENCE AOS GRUPOS QLIKVIEW_ADM e SGTG POIS BEM NO CASO OS MAPEAMENTOS REFERENTE AO GRUPO SGTG TA OK, POREM AO GRUPO QLIKVIEW_ADM QUE ESSE USUARIO TAMBEM PERTENCE NÃO APARECE DE FORMA ALGUMA, ALGUEM PODE DAR UMA DICA ? E SE NÃO FOR PEDIR MUITO, DA PRA CONVERTE ESTE SCRIPT COM ESSE MESMOS MAPEAMENTOS PARA VBS ? DESDE JÁ AGRADEÇO A JUDA
- Movido Adriel GavazzaModerator sexta-feira, 9 de novembro de 2012 18:38 16:36 (De:Windows Server 2003)
- Editado Fábio JrModerator sexta-feira, 9 de novembro de 2012 19:05 Código formatado
Respostas
-
Olá Marcony Lacerda,
Você pode obter um suporte mais especializado nos fóruns do Kixtart: http://www.kixtart.org/forums/ubbthreads.php.
Particularmente, não vejo nenhum erro no script. Para certificar-se de que o caminho do compartilhamento está correto e que o usuário tem as permissões necesárias, faça logon com as credenciais do usuário que apresenta a falha, e digite na barra de navegação do Windows Explorer \\SRV-QLIK\aplicacoes. Se o compartilhamento não abrir, então o erro está no caminho informado no script ou nas permissões de compartilhamento.
Espero ter ajudado.
Atenciosamente,
Caio Vilas Boas
Microsoft Certified Trainer
www.itprogroup.com.br - Comunidade Técnica- Sugerido como Resposta Adriel GavazzaModerator sexta-feira, 9 de novembro de 2012 18:37
- Marcado como Resposta Caio Vilas BoasModerator quarta-feira, 9 de abril de 2014 17:47
-
Quanto ao script .Kix já tentou fazer o debug dele utilizando /d (acho que isso mesmo) para ver se consegue ver algo diferente no seu script?
Pra quebrar o galho, segue um modelo de script .VBS, veja se acontece o mesmo problema nele.
.VBS
on error resume next 'Objetos Set WshNetwork = CreateObject("WScript.Network") set objShell = CreateObject( "WScript.Shell" ) strUserName = objShell.ExpandEnvironmentStrings("%username%") strUserDomain = objShell.ExpandEnvironmentStrings("%userdomain%") 'Configura Dicionário de Grupos Set dicGrupo = CreateObject("Scripting.Dictionary") dicGrupo.CompareMode = 1 ADSPath = strUserDomain & "/" & strUserName Set userPath = GetObject("WinNT://" & ADSPath & ",user") For Each listGroup in userPath.Groups dicGrupo.Add listGroup.Name, "-" next 'Inicio do Script if IsMember("QLIKVIEW_ADM") then MapDrive "P:","\\SRV-QLIK\aplicacoes" end if if IsMember("SGTG") then MapDrive "R:","\\SRVARQ01\ADMINISTRATIVO" WshNetwork.AddWindowsPrinterConnection "\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2" WshNetwork.SetDefaultPrinter "\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2" end if 'Final do script ' ***************************************************** ' Funções Function IsMember(groupName) IsMember = cbool(dicGrupo.Exists(groupName)) End Function Function MapDrive(DriveLetter, SharedPath) On Error Resume Next Set objNetwork = CreateObject("Wscript.Network") if objNetwork.DriveExists(SharedPath) then If objNetwork.DriveExists(DriveLetter) then objNetwork.RemoveNetworkDrive DriveLetter, true, true end if objNetwork.MapNetworkDrive DriveLetter, SharedPath, true end if end Function
O VBScript não tem algumas das facilidades do Kix, veja, tive que criar uma função para verificar se o usuário é membro.
Coloquei apenas dois IFs para te ajudar, complete com o restante.
Fábio de Paula Junior
- Sugerido como Resposta Fábio JrModerator segunda-feira, 19 de novembro de 2012 22:50
- Marcado como Resposta Fábio JrModerator segunda-feira, 26 de novembro de 2012 11:02
Todas as Respostas
-
Olá Marcony Lacerda,
Você pode obter um suporte mais especializado nos fóruns do Kixtart: http://www.kixtart.org/forums/ubbthreads.php.
Particularmente, não vejo nenhum erro no script. Para certificar-se de que o caminho do compartilhamento está correto e que o usuário tem as permissões necesárias, faça logon com as credenciais do usuário que apresenta a falha, e digite na barra de navegação do Windows Explorer \\SRV-QLIK\aplicacoes. Se o compartilhamento não abrir, então o erro está no caminho informado no script ou nas permissões de compartilhamento.
Espero ter ajudado.
Atenciosamente,
Caio Vilas Boas
Microsoft Certified Trainer
www.itprogroup.com.br - Comunidade Técnica- Sugerido como Resposta Adriel GavazzaModerator sexta-feira, 9 de novembro de 2012 18:37
- Marcado como Resposta Caio Vilas BoasModerator quarta-feira, 9 de abril de 2014 17:47
-
Olá, Marcony Lacerda.
Faço das palavras do Caio, as minhas.
Não consegui ver erro algum no script. De qualquer forma verifique o site que ele te informou, e irei mover o tópico para a sessão de scripts. Lá o pessoal pode te ajudar melhor.
Abraço.
Atenciosamente.
Adriel Gavazza Ventura
Microsoft Certified Professional
www.itprogroup.com.br - Comunidade Técnica -
Marcony,
Se o usuário faz parte apenas do grupo QLIKVIEW_ADM o mapeamento P: e feito sem problemas??
Se não é feito você pode tentar o seguinte: reescreve parte do código, apague esta parte:
sleep 3 if ingroup("QLIKVIEW_ADM") USE P: "\\SRV-QLIK\aplicacoes" endif if ingroup("Domain Users")
E reescreva exatamente igual, mas não é copiar e colar, É REESCREVER.
Fábio de Paula Junior
- Sugerido como Resposta Caio Vilas BoasModerator sábado, 10 de novembro de 2012 04:41
-
-
Quanto ao script .Kix já tentou fazer o debug dele utilizando /d (acho que isso mesmo) para ver se consegue ver algo diferente no seu script?
Pra quebrar o galho, segue um modelo de script .VBS, veja se acontece o mesmo problema nele.
.VBS
on error resume next 'Objetos Set WshNetwork = CreateObject("WScript.Network") set objShell = CreateObject( "WScript.Shell" ) strUserName = objShell.ExpandEnvironmentStrings("%username%") strUserDomain = objShell.ExpandEnvironmentStrings("%userdomain%") 'Configura Dicionário de Grupos Set dicGrupo = CreateObject("Scripting.Dictionary") dicGrupo.CompareMode = 1 ADSPath = strUserDomain & "/" & strUserName Set userPath = GetObject("WinNT://" & ADSPath & ",user") For Each listGroup in userPath.Groups dicGrupo.Add listGroup.Name, "-" next 'Inicio do Script if IsMember("QLIKVIEW_ADM") then MapDrive "P:","\\SRV-QLIK\aplicacoes" end if if IsMember("SGTG") then MapDrive "R:","\\SRVARQ01\ADMINISTRATIVO" WshNetwork.AddWindowsPrinterConnection "\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2" WshNetwork.SetDefaultPrinter "\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2" end if 'Final do script ' ***************************************************** ' Funções Function IsMember(groupName) IsMember = cbool(dicGrupo.Exists(groupName)) End Function Function MapDrive(DriveLetter, SharedPath) On Error Resume Next Set objNetwork = CreateObject("Wscript.Network") if objNetwork.DriveExists(SharedPath) then If objNetwork.DriveExists(DriveLetter) then objNetwork.RemoveNetworkDrive DriveLetter, true, true end if objNetwork.MapNetworkDrive DriveLetter, SharedPath, true end if end Function
O VBScript não tem algumas das facilidades do Kix, veja, tive que criar uma função para verificar se o usuário é membro.
Coloquei apenas dois IFs para te ajudar, complete com o restante.
Fábio de Paula Junior
- Sugerido como Resposta Fábio JrModerator segunda-feira, 19 de novembro de 2012 22:50
- Marcado como Resposta Fábio JrModerator segunda-feira, 26 de novembro de 2012 11:02
-