none
Script de logon no Server 2003 RRS feed

  • Pergunta

  • boa tarde pessoal!
    andei pesquisando em alguns foruns, inclusive aqui no Technet e não achei uma resposta ainda p/ o problema do meu script.
    sou novo na área de script de logon no Server 2003 com AD.
    montei um script com uns passos que peguei na internet, beleza. o script funciona até uma parte, depois não.
    tipo:
    coloquei uma mensagem de "boas vindas" aos usuários e um script que pergunta ao AD: "esse cliente é do grupo comercial? é! então vou mapear as pastas do comercial e a impressora do ambiente.", e assim por diante, cada usuário é perguntado ao AD sobre seu grupo.
    o problema é que o Script não está, quando chega nessa parte de mapeamento de pasta, encontrando resultados... no final ele não resulta mapeamentos, só resulta na mensagem.
    segue script:
    se alguém souber, algum passo errado que eu coloquei, me auxilie pois, estou dependendo destes scripts para terminar meu servidor que foi re-feito.

    desde já agradeço!

    ||
    \/
    ---

    Const ATENDIMENTO_GROUP = "cn=atendimento,ou=atendimento,ou=logma,dc=logma,dc=intranet,dc=br"

    Const COMERCIAL_GROUP = "cn=comercial,ou=comercial,ou=logma,dc=logma,dc=intranet,dc=br"

    Const ELETRONICO_GROUP = "cn=eletronico,ou=eletronico,ou=logma,dc=logma,dc=intranet,dc=br"

    Const ADMINISTRACAO_GROUP = "cn=administracao,ou=administracao,ou=logma,dc=logma,dc=intranet,dc=br"

    Const DIRETORIA_GROUP = "cn=diretoria,ou=diretoria,ou=logma,dc=logma,dc=intranet,dc=br"

    Const ESTOQUE_GROUP = "cn=estoque,ou=estoque,ou=logma,dc=logma,dc=intranet,dc=br"

    Const FINANCEIRO_GROUP = "cn=financeiro,ou=financeiro,ou=logma,dc=logma,dc=intranet,dc=br"

    'Definindo o nome o usuário e grupo em uma variável

    Set wshNetwork = CreateObject("WScript.Network")

    Set ADSysInfo = CreateObject("ADSystemInfo")

    Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)

    colGroups = CurrentUser.memberOf

    If IsEmpty(colGroups) Then

    strGroups = ""

    ElseIf TypeName(colGroups) = "String" Then

    strGroups = LCase(colGroups)

    Else

    strGroups = LCase(Join(colGroups))

    End If

     

    'msgbox "Teste antes dos grupos - " & colgroups & " - " & strgroups,0,"Testes"

    If strGroups = ATENDIMENTO_GROUP Then

    wshNetwork.MapNetworkDrive "v:","\\serverad\Departamentos\Atendimento"

    wshNetwork.MapNetworkDrive "x:","\\serverad\publico"

    WshNetwork.AddWindowsPrinterConnection "\\serverad\hp2015"

    WshNetwork.SetDefaultPrinter "\\serverad\hp2015"

    ElseIf strGroups = COMERCIAL_GROUP Then

    wshNetwork.MapNetworkDrive "v:","\\serverad\Departamentos\Comercial"

    wshNetwork.MapNetworkDrive "x:","\\serverad\publico"

    WshNetwork.AddWindowsPrinterConnection "\\serverad\hp2015"

    WshNetwork.SetDefaultPrinter "\\serverad\hp2015"

    ElseIf strGroups = ELETRONICO_GROUP Then

    wshNetwork.MapNetworkDrive "v:","\\serverad\Departamentos\ELETRONICO"

    wshNetwork.MapNetworkDrive "x:","\\serverad\publico"

    WshNetwork.AddWindowsPrinterConnection "\\serverad\hp2015"

    WshNetwork.SetDefaultPrinter "\\serverad\hp2015"

    ElseIf strGroups = ADMINISTRACAO_GROUP Then

    wshNetwork.MapNetworkDrive "v:","\\serverad\Departamentos\ADMINISTRACAO"

    wshNetwork.MapNetworkDrive "x:","\\serverad\publico"

    WshNetwork.AddWindowsPrinterConnection "\\serverad\hp2015"

    WshNetwork.SetDefaultPrinter "\\serverad\hp2015"

    ElseIf strGroups = DIRETORIA_GROUP Then

    wshNetwork.MapNetworkDrive "h:","\\serverad\Departamentos\DIRETORIA"

    wshNetwork.MapNetworkDrive "i:","\\serverad\Departamentos\ATENDIMENTO"

    wshNetwork.MapNetworkDrive "j:","\\serverad\Departamentos\COMERCIAL"

    wshNetwork.MapNetworkDrive "k:","\\serverad\Departamentos\ELETRONICO"

    wshNetwork.MapNetworkDrive "l:","\\serverad\Departamentos\ADMINISTRACAO"

    wshNetwork.MapNetworkDrive "m:","\\serverad\Departamentos\ESTOQUE"

    wshNetwork.MapNetworkDrive "n:","\\serverad\Departamentos\FINANCEIRO"

    wshNetwork.MapNetworkDrive "o:","\\serverad\publico"

    WshNetwork.AddWindowsPrinterConnection "\\serverad\hp2015"

    WshNetwork.SetDefaultPrinter "\\serverad\hp2015"

    ElseIf strGroups = ESTOQUE_GROUP Then

    wshNetwork.MapNetworkDrive "v:","\\serverad\Departamentos\ESTOQUE"

    wshNetwork.MapNetworkDrive "x:","\\serverad\publico"

    WshNetwork.AddWindowsPrinterConnection "\\serverad\hp2015"

    WshNetwork.SetDefaultPrinter "\\serverad\hp2015"

    ElseIf strGroups = FINANCEIRO_GROUP Then

    wshNetwork.MapNetworkDrive "v:","\\serverad\Departamentos\FINANCEIRO"

    wshNetwork.MapNetworkDrive "x:","\\serverad\publico"

    WshNetwork.AddWindowsPrinterConnection "\\serverad\hp2015"

    WshNetwork.SetDefaultPrinter "\\serverad\hp2015"

    End If

     

    Set objUser = WScript.CreateObject("WScript.Network")

    wuser=objUser.UserName

    If Time <= "12:00:00" Then

    MsgBox ("Bom Dia "+Wuser+", você acaba de ingressar na rede corporativa da Logma Distribuidora, por favor respeite as políticas de segurança e bom trabalho!")

    ElseIf Time >= "12:00:01" And Time <= "18:00:00" Then

    MsgBox ("Boa Tarde "+Wuser+", você acaba de ingressar na rede corporativa da Logma Distribuidora, por favor respeite as políticas de segurança e bom trabalho!")

    Else

    MsgBox ("Boa Noite "+wuser+", você acaba de ingressar na rede corporativa da Logma Distribuidora, por favor respeite as políticas de segurança e bom trabalho!")

    End If

     

    'Set objShell = WScript.CreateObject("Wscript.Shell")

    'objShell.Run "\\nome_servidor\anti-virus\autopccp.exe",1,false

    'objShell.Run \\nome_servidor\netlogon\administrador.bat

    terça-feira, 29 de setembro de 2009 15:49

Todas as Respostas

  • Olá,

    Verifique o exemplo que tenho funcionando:


    On Error Resume Next

    Const GG_1 = "grupoA"
    Const GG_2 = "grupoB"
    Const GG_3 = "grupoC"
    Const GG_4 = "grupoD"



    Set wshNetwork = CreateObject("WScript.Network")
    Set oDrives = WshNetwork.EnumNetworkDrives
    Set ADSysInfo = CreateObject("ADSystemInfo")
    'wscript.echo ADSysInfo.UserName
    Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)

    'coloque aqui as unidades que serão mapeadas
    'o DriveMapper apenas desconecta para não gerar erro quando mapear.


    DriveMapper "G:"
    DriveMapper "H:"
    DriveMapper "I:"
    DriveMapper "J:"



    arrMembersOf = CurrentUser.GetEx("memberOf")
    For Each strMembro in arrMembersOf
        mapear strMembro
        subGrupo strMembro
    Next

    '=========================================


    sub subgrupo(strcaminho)

    Set objGroup = GetObject("LDAP://" & strCaminho)
    objGroup.GetInfo

    arrSubMembro = objGroup.GetEx("memberOf")

    For Each strSubMember in arrSubMembro
       mapear strSubMember
    Next

    end sub

    '===========================================

    Sub DriveMapper(Drive)
    For i = 0 to oDrives.Count -1 Step 2
       if LCase(Drive) = LCase(oDrives.Item(i)) then
          WshNetwork.RemoveNetworkDrive Drive, true, true
       End if
    Next

    End sub

    '============================================

    Sub Mapear(strGrupoFIM)

    If InStr(UCASE(strGrupoFIM), UCASE(GG_1)) Then
       wshNetwork.MapNetworkDrive "G:", "\\server\compartilhamento1"
    End if

    If InStr(UCASE(strGrupoFIM), UCASE(GG_2)) Then
       wshNetwork.MapNetworkDrive "H:", "\\server\compartilhamento2"
    End if

    If InStr(UCASE(strGrupoFIM), UCASE(GG_3)) Then
       wshNetwork.MapNetworkDrive "I:", "\\server\compartilhamento3"
    End if

    If InStr(UCASE(strGrupoFIM), UCASE(GG_4)) Then
       wshNetwork.MapNetworkDrive "J:", "\\server\compartilhamento4"
    End If
     

    End sub




    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    terça-feira, 29 de setembro de 2009 17:17
  • Boa tarde Jesiel;

    vou testar esse script e assim que possivel retorno;


    obrigado

    Elinton Soares

    terça-feira, 29 de setembro de 2009 18:24
  • Boa tarde Jesiel!

    então, testei o script... não funcionou esse aí!

    não sei se fiz algo errado mas peguei esse script seu e mudei os grupos e as pastas de mapeamento.


    certo?
    quarta-feira, 30 de setembro de 2009 17:21