none
Variavel "Join" com problemas! RRS feed

  • Pergunta

  • Ola Tenho um script que é para mapear automaticamente a pasta referente aonde o usuario trabalha, como seu setor.

    Bem este Script estava funcionando, mas precisei formatar o Server, e refiz ele, mas agora esta dando um erro.

    Erro: Tipo incompativeis: "Join"
    Codigo: 800A000D

    Resumo do script:

    'chamando variaveis para identificar o grupo do usuario

     Set ADSysInfo = CreateObject("ADSystemInfo")
     Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
         strGroups = LCase(Join(CurrentUser.MemberOf))
     
    'Favor reparar que os grupos estao declarados no começo do script, criar o grupo no AD

     
    if not objFSO.DriveExists("X:") then

    Set wshNetwork = CreateObject("WScript.Network")

      If InStr(strGroups, GRP_Informatica) Then
     
      wshNetwork.MapNetworkDrive "x:", "\\sms-serv-01\coordenadorias$\informatica"
      'wshNetwork.MapNetworkDrive "k:", "\\servidor\k"
     
      ElseIf InStr(strGroups, GRP_Servico) Then

        wshNetwork.MapNetworkDrive "x:", "\\sms-serv-01\coordenadorias$\Serv. Saude"
        'wshNetwork.MapNetworkDrive "n:", "\\servidor\n"
     
      ElseIf InStr(strGroups, GRP_PSF) Then
     
        wshNetwork.MapNetworkDrive "x:", "\\sms-serv-01\coordenadorias$\PSF"
        'wshNetwork.MapNetworkDrive "n:", "\\servidor\n"
        
      ElseIf InStr(strGroups, GRP_Coletiva) Then

        wshNetwork.MapNetworkDrive "x:", "\\sms-serv-01\coordenadorias$\Saude Coletiva"
        'wshNetwork.MapNetworkDrive "n:", "\\servidor\n"   


      end if
    end if

    Bem gostaria de saber o que pode esta de errado, pois antes ele estava funcionando...

     

    Abraços

     

    Filipe Mendonça

     

    quinta-feira, 26 de outubro de 2006 18:46

Respostas

  • Olá, tenho algumas considerações:

    1) O Join não é uma variável, mas sim um método. Ele serve somente pra juntar ítens em um vetor em uma string só. Nesse caso, todos os nomes de grupos são concatenados uns com os outros, pra que o script compare usando a função InStr depois.

    2) O Join está dando erro porque ele não está recebendo nada pra concatenar. Isso tá acontecendo então por um erro nas linhas acima,

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

    sendo que, pelo que eu já vi até agora, provavelmente a primeira é a que tem problema. A classe ADSystemInfo não está sendo criada, provavelmente por não existir no servidor novo. Você atualizou todos os SPs nele? É Windows 2000 ou 2003? Você já verificou se existe uma DLL chamada activeds.dll no seu sistema?



    []s,



    Vinicius


    quinta-feira, 26 de outubro de 2006 23:20
    Moderador

Todas as Respostas

  • Olá, tenho algumas considerações:

    1) O Join não é uma variável, mas sim um método. Ele serve somente pra juntar ítens em um vetor em uma string só. Nesse caso, todos os nomes de grupos são concatenados uns com os outros, pra que o script compare usando a função InStr depois.

    2) O Join está dando erro porque ele não está recebendo nada pra concatenar. Isso tá acontecendo então por um erro nas linhas acima,

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

    sendo que, pelo que eu já vi até agora, provavelmente a primeira é a que tem problema. A classe ADSystemInfo não está sendo criada, provavelmente por não existir no servidor novo. Você atualizou todos os SPs nele? É Windows 2000 ou 2003? Você já verificou se existe uma DLL chamada activeds.dll no seu sistema?



    []s,



    Vinicius


    quinta-feira, 26 de outubro de 2006 23:20
    Moderador
  • Estou com o mesmo problema....

    Alguem já conseguiu resolver esse problema???...

    Se conseguiram me mostrem como...

    Att.
    GustavoGabriel
    sexta-feira, 13 de julho de 2007 16:20
  • vinicius,

     

    Sou mais um dos vários que estão co problemas neste método de concatenação dis grupos para leitura posterior.

    Assim com muitos outros, também não sou expert em script, ou desenvolvimento.

     

    Verifiquei várias respostas nos fóruns microsoft, mas eles não são concisos.

    Meu ambiente consiste de servidores 2003 R2 SP1 e 2000 SP4, com estações xp SP2 e Vista SP1.

    Dois fatos me parecem relevantes: Como usuário Administrador, o script roda sem problemas, em todos os ambientes.

    Com usuário comum, em qualquer dos SO das estações, ele apresenta o erro.

    Portanto a possibilidade de não ter informação não existe.

    Tem algo a mais que possamos informar para que você nos ajude?

    Existe alguma outra forma de criar uma matriz que não seja pelo join?

     

    Grato,

     

     

    terça-feira, 4 de novembro de 2008 20:15