none
Obter Login do usuário RRS feed

  • Pergunta

  • Boa tarde.


    Estou temdo problemas com o script de logon para mapear uma pasta com o nome do usuario.

    Meu script usa ( objUserName = objUser.Get("givenName") ), para obter o nome do usuario.

    Por exemplo:

    Vanessa das Couves o script vai pegar o primeiro nome "Vanessa"

    e logo em seguida vai mapear usando ( objNetwork.MapNetworkDrive "Z:", "\\192.168.80.10\pessoais\"& objUserName )

    Ai que começa o problema, se eu tiver duas Vanessas.

    Vanessa das couves e Vanessa das cebolas

    O script vai tentar montar a mesma pasta.

    Existe alguma forma do script obter o nome de login e não o nome de usuario?


    A politica de usuarios e logins aqui na empresa, preve que o nome de login do usuario seja a primeira letra do nome seguindo de um sobre nome.

    Nome: Vanessa das couves
    Login> vcouves

    Nome: Vanessa das cebolas
    Login: Vcebola

    No caso o script teria de obter o login e montar nas pastas

    \\srv01\pessoais\vcouves
    \\srv01\pessoais\vcebolas

    Abaixo segue o script inteiro.

    Set objSysInfo = CreateObject("ADSystemInfo")
    Set objNetwork = CreateObject("Wscript.Network")

    strUserPath = "LDAP://" & objSysInfo.UserName
    Set objUser = GetObject(strUserPath)

    objMemberOf = objUser.GetEx("MemberOf")
    objUserName = objUser.Get("givenName")

    '**** Remove as Unidades de Rede'

    On Error Resume Next

    objNetwork.RemoveNetworkDrive "Z:", True, True

    objNetwork.RemoveNetworkDrive "Y:", True, True

    objNetwork.RemoveNetworkDrive "G:", True, True


    objNetwork.MapNetworkDrive "Z:", "\\192.168.80.10\pessoais\"& objUserName

    For Each strGroup in objMemberOf
    strGroupPath = "LDAP://" & strGroup
    Set objGroup = GetObject(strGroupPath)
    strGroupName = objGroup.CN

    Select Case strGroupName

    Case "Arquivos"
    objNetwork.MapNetworkDrive "G:", "\\192.168.80.10\Arquivos\arquivos"

    Case "Sistema"
    objNetwork.MapNetworkDrive "S:", "\\192.168.80.10\arquivos\sistema"

    Case "Zenite"
    objNetwork.MapNetworkDrive "Y:", "\\192.168.80.11\zenite"

    End Select
    Next

    Set objShell = CreateObject("Shell.Application")

    objShell.NameSpace("G:").Self.Name = "Arquivos"

    objShell.NameSpace("Y:").Self.Name = "Zenite"

    objShell.NameSpace("Z:").Self.Name = "Pessoal"

    objShell.NameSpace("S:").Self.Name = "Sistema"


    wscript.quit


    • Editado Fábio JrModerator sexta-feira, 10 de fevereiro de 2012 16:18 Alterado o título
    sexta-feira, 10 de fevereiro de 2012 15:54

Respostas

  • Gustavo,

    É simples, utilize o objeto WScript.Network

    Set WshNetwork = WScript.CreateObject("WScript.Network")
    strLogin = WshNetwork.UserName

    A váriavel strLogin vai ter a informação do login do usuário.

    Fábio de Paula Junior

    sexta-feira, 10 de fevereiro de 2012 16:20
    Moderador

Todas as Respostas

  • Gustavo,

    É simples, utilize o objeto WScript.Network

    Set WshNetwork = WScript.CreateObject("WScript.Network")
    strLogin = WshNetwork.UserName

    A váriavel strLogin vai ter a informação do login do usuário.

    Fábio de Paula Junior

    sexta-feira, 10 de fevereiro de 2012 16:20
    Moderador
  • Obrigado Fábio

    Funcionou redondinho o script.

    sexta-feira, 10 de fevereiro de 2012 17:09