none
Script não executa automaticamente RRS feed

  • Pergunta

  • Boa Tarde,

    Preciso de uma ajuda da comunidade, para o script que segue:

    On Error Resume Next

    'Option Explicit

    Dim objNetwork, objFS, objUser

    Set objNetwork = createobject("Wscript.Network")
    Set objFS  = CreateObject("Scripting.FileSystemObject")
    Set objUser = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.Username & ",user")

    For each Grupo in User.groups

        Select Case Ucase(Grupo.name)

            Case "PROCESSOS"
                If objFS.DriveExists("I:") = true then
                       objNetwork.RemoveNetworkDrive "I:", true, true
                       objNetwork.RemoveNetworkDrive "P:", true, true
                       objNetwork.RemoveNetworkDrive "U:", true, true
                Else    
                    objNetwork.MapNetworkDrive "I:", "\\srvwindados001\Setores"
                    objNetwork.MapNetworkDrive "P:", "\\srvwindados001\Publico"   
                    objNetwork.MapNetworkDrive "U:", "\\srvwindados001\" & objNetwork.UserName
                    objNetwork.AddWindowsPrinterConnection "\\srvwindados001\hp2200_administrativo"
                    objNetwork.SetDefaultPrinter "\\srvwindados001\hp2200_administrativo"
                End If
            Case "GER.FABRICA"
                if objFS.DriveExists("I:") = true then
                       objNetwork.RemoveNetworkDrive "I:", true, true
                       objNetwork.RemoveNetworkDrive "P:", true, true
                       objNetwork.RemoveNetworkDrive "U:", true, true
                Else    
                    objNetwork.MapNetworkDrive "I:", "\\srvwindados001\Setores"
                    objNetwork.MapNetworkDrive "P:", "\\srvwindados001\Publico"   
                    objNetwork.MapNetworkDrive "U:", "\\srvwindados001\" & objNetwork.UserName
                    objNetwork.AddWindowsPrinterConnection "\\srvwindados001\hp2200_administrativo"
                    objNetwork.SetDefaultPrinter "\\srvwindados001\hp2200_administrativo"
                End If
            Case "TI"
                if objFS.DriveExists("I:") = true then
                       objNetwork.RemoveNetworkDrive "I:", true, true
                       objNetwork.RemoveNetworkDrive "P:", true, true
                       objNetwork.RemoveNetworkDrive "U:", true, true
                Else    
                    objNetwork.MapNetworkDrive "I:", "\\srvwindados001\Setores"
                    objNetwork.MapNetworkDrive "P:", "\\srvwindados001\Publico"   
                    objNetwork.MapNetworkDrive "U:", "\\srvwindados001\" & objNetwork.UserName
                    objNetwork.AddWindowsPrinterConnection "\\srvwindados001\hp2200_administrativo"
                    objNetwork.SetDefaultPrinter "\\srvwindados001\hp2200_administrativo"
                End If
            Case "RH"
                if objFS.DriveExists("I:") = true then
                       objNetwork.RemoveNetworkDrive "I:", true, true
                       objNetwork.RemoveNetworkDrive "P:", true, true
                       objNetwork.RemoveNetworkDrive "U:", true, true
                Else    
                    objNetwork.MapNetworkDrive "I:", "\\srvwindados001\Setores"
                    objNetwork.MapNetworkDrive "P:", "\\srvwindados001\Publico"   
                    objNetwork.MapNetworkDrive "U:", "\\srvwindados001\" & objNetwork.UserName        
                    objNetwork.AddWindowsPrinterConnection "\\srvwindados001\hp2200_rh"
                    objNetwork.SetDefaultPrinter "\\srvwindados001\hp2200_rh"
                End If
        End Select    

    next

    Set wshNet = nothing
    Set objUser = nothing
    Set strGrupo = nothing
    Set objFS = Nothing
    Set objNetwork = Nothing
    WScript.Quit

    Ele não executa automaticamente. Só executa manual. Configurei via GPO, mas as máquinas não executam ele. Não sei o que pode ser.

    No aguardo de um breve retorno.

    Gustavo Gabriel

    terça-feira, 22 de maio de 2012 17:53

Respostas

  • Boa tarde Gustavo.

    Segue documentação oficial para adicionar script de logon

    http://technet.microsoft.com/pt-br/library/cc779490%28v=ws.10%29

    Imagem da Direitiva

    Lembre que esta diretiva pode ser usada para Usuario ou Computador, veja qual melhor se adequa ao que vc esteja realizando.

    Espero ter lhe ajudado.


    Enderson Valente Teixeira - Coordenador de Informática

    terça-feira, 22 de maio de 2012 18:09
  • Tente usar este script aqui:

    on error resume next 
    
    Set WshNetwork = CreateObject("WScript.Network")
    Set ADSysInfo = CreateObject("ADSystemInfo")
    Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
    set ofso=createobject("Scripting.filesystemobject") 
    Set oShell = CreateObject("Wscript.shell") 
    Set Sh = Wscript.CreateObject("Wscript.Shell") 
    
    sysDomain = WshNetwork.UserDomain
    strComputerName = wshNetwork.ComputerName 
    
    '
    ' Lê os grupos do Usuário
    strGroups = LCase(CurrentUser.MemberOf)
    if strGroups = "" then
    	strGroups = LCase(Join(CurrentUser.MemberOf))
    End if
    'msgbox strGroups
    '
    ' Mapeia unidade padrão a TODOS usuarios da OU
    '
    wshNetwork.MapNetworkDrive "P:", "\\server\Programas"
    '
    ' Conexoes de rede Baseadas em Grupo
    '
    If (InStr(1, strGroups, LCase("cn=processos"), 1) <> 0) Then 
    	wshNetwork.MapNetworkDrive "Q:", "\\server\Arquivos"
    End If
    If (InStr(1, strGroups, LCase("cn=boletim"), 1) <> 0) Then 
    	WSHNetwork.MapNetworkDrive "Z:", "\\server\boletim" 
    End If
    If (InStr(1, strGroups, LCase("cn=admins"), 1) <> 0) Then 
    	WSHNetwork.MapNetworkDrive "Z:", "\\server\Programs" 
    End If
    
    
    ' Conexoes de impressoras Baseadas em Grupo
    
    If (InStr(1, strGroups, LCase("cn=PRN-processos"), 1) <> 0) Then 
    	WshNetwork.AddWindowsPrinterConnection "\\printserver\PRN-PROC"
    	WshNetwork.SetDefaultPrinter "\\printserver\PRN-PROC"
    End If
    If (InStr(1, strGroups, LCase("cn=PRN-Geral"), 1) <> 0) Then 
    	WshNetwork.AddWindowsPrinterConnection "\\printserver\PRN-Geral"
    	WshNetwork.SetDefaultPrinter "\\printserver\PRN-Geral"
    End If
    
    WScript.Quit

    Adapte ele a suas necessidades aí.

    Uso este aqui no trabalho e funciona 100%.

    Favor marcar se util.

    Até...


    Warley

    quarta-feira, 23 de maio de 2012 13:02

Todas as Respostas

  • Boa tarde Gustavo.

    Segue documentação oficial para adicionar script de logon

    http://technet.microsoft.com/pt-br/library/cc779490%28v=ws.10%29

    Imagem da Direitiva

    Lembre que esta diretiva pode ser usada para Usuario ou Computador, veja qual melhor se adequa ao que vc esteja realizando.

    Espero ter lhe ajudado.


    Enderson Valente Teixeira - Coordenador de Informática

    terça-feira, 22 de maio de 2012 18:09
  • Estou fazendo via GPO, conforme está na documentação.

    Estou buscando uma solução para esse problema, mas ainda não encontrei.

    Obrigado

    Gustavo Gabriel

    terça-feira, 22 de maio de 2012 18:26
  • Pessoal,

    Estou fazendo uns testes, e verifiquei que executando manualmente ele faz os mepaementos na boa... qdo deixo para fazer os mapeamentos automaticos, no logon, ele mostra uma mensagem que coloquei, para debug, a princípio executa o script, porém não mostra as unidades...

    estranho nunca passei por issso.

    Gustavo Gabriel

    terça-feira, 22 de maio de 2012 19:14
  • Tente usar este script aqui:

    on error resume next 
    
    Set WshNetwork = CreateObject("WScript.Network")
    Set ADSysInfo = CreateObject("ADSystemInfo")
    Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
    set ofso=createobject("Scripting.filesystemobject") 
    Set oShell = CreateObject("Wscript.shell") 
    Set Sh = Wscript.CreateObject("Wscript.Shell") 
    
    sysDomain = WshNetwork.UserDomain
    strComputerName = wshNetwork.ComputerName 
    
    '
    ' Lê os grupos do Usuário
    strGroups = LCase(CurrentUser.MemberOf)
    if strGroups = "" then
    	strGroups = LCase(Join(CurrentUser.MemberOf))
    End if
    'msgbox strGroups
    '
    ' Mapeia unidade padrão a TODOS usuarios da OU
    '
    wshNetwork.MapNetworkDrive "P:", "\\server\Programas"
    '
    ' Conexoes de rede Baseadas em Grupo
    '
    If (InStr(1, strGroups, LCase("cn=processos"), 1) <> 0) Then 
    	wshNetwork.MapNetworkDrive "Q:", "\\server\Arquivos"
    End If
    If (InStr(1, strGroups, LCase("cn=boletim"), 1) <> 0) Then 
    	WSHNetwork.MapNetworkDrive "Z:", "\\server\boletim" 
    End If
    If (InStr(1, strGroups, LCase("cn=admins"), 1) <> 0) Then 
    	WSHNetwork.MapNetworkDrive "Z:", "\\server\Programs" 
    End If
    
    
    ' Conexoes de impressoras Baseadas em Grupo
    
    If (InStr(1, strGroups, LCase("cn=PRN-processos"), 1) <> 0) Then 
    	WshNetwork.AddWindowsPrinterConnection "\\printserver\PRN-PROC"
    	WshNetwork.SetDefaultPrinter "\\printserver\PRN-PROC"
    End If
    If (InStr(1, strGroups, LCase("cn=PRN-Geral"), 1) <> 0) Then 
    	WshNetwork.AddWindowsPrinterConnection "\\printserver\PRN-Geral"
    	WshNetwork.SetDefaultPrinter "\\printserver\PRN-Geral"
    End If
    
    WScript.Quit

    Adapte ele a suas necessidades aí.

    Uso este aqui no trabalho e funciona 100%.

    Favor marcar se util.

    Até...


    Warley

    quarta-feira, 23 de maio de 2012 13:02
  • Bom dia,

    Seu script me ajudou muito, porém tem um detalhe. Para alguns usuários ele executa automaticamente, para outros ele executa uma parte, para outros não vai.Para solucionar o problema, paleativo, coloquei manualmente no inicializar de cada máquina que não vai e nas que dão erro.

    Se puderem me ajudar, ficarei muito grato.

    Obrigado.

    Gustavo Gabriel

    quarta-feira, 6 de junho de 2012 14:52