none
Script VBS mostrar telefone em consulta - Ja obtenho nome no AD RRS feed

  • Pergunta

  • Bom dia galerinha...

    Possuo o seguinte script

    'Pega a informação com o usuário
    strLogin = Inputbox("Informe a conta do usuário")
    
    'Pega o atributo do usuário
    strNome = GetUserAtribute (strLogin,"DisplayName")
    
    'Se está vazio pode ser que o usuário não existe
    wscript.echo strNome
    
    
    Function GetUserAtribute(strSamaccountName, strAtributo)
    	Const ADS_SCOPE_SUBTREE = 2
    	Set objRootDSE = GetObject("LDAP://RootDSE") 
    	Set objDomain = GetObject("LDAP://" & objRootDSE.Get("DefaultNamingContext")) 
    	' Get domain components
    	strDomain = objRootDSE.Get("DefaultNamingContext")
    	' Set ADO connection
    	Set objConnection = CreateObject("ADODB.Connection")
    	objConnection.Provider = "ADsDSOObject"
    	objConnection.Open "Active Directory Provider"
    	' Set ADO command
    	Set objCommand = CreateObject("ADODB.Command")
    	Set objCommand.ActiveConnection = objConnection
    	objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
    
    	strAtributos="distinguishedName,samAccountName,DisplayName,physicalDeliveryOfficeName,mail,Department,Description,Phone"
    	objCommand.CommandText = "SELECT " & strAtributo & _
    			" FROM 'LDAP://" & strDomain & _
    			"' WHERE objectCategory='person' AND objectClass='user' AND samAccountName='" & _
    			strsamAccountName & "'"
    
    
    	' Set recordset to hold the query result
    	Set objRecordSet = objCommand.Execute
    
    	Do Until objRecordSet.EOF
    		GetUserAtribute = objRecordSet.Fields(strAtributo).Value 
    		'Move para o próximo registro
    		objRecordSet.MoveNext
    
    	Loop
    	
    	
    End Function

    Gostaria de obter no resultado o os dados do campo telefone que tem no ad...mas não estou conseguindo...

    Na linha de atributos até inseri o campo TelephoneNumber, tentei com Phone, mas não quando insiro a variavel para obter o resultado da erro no vbs...se eu deixar somente como esta agora, consigo obter o nome completo pelo login do usuario...alguma dica???

    Sei que seria nessa parte onde deixei em negrito que é o resultado, mas não consegui obter...

    Obrigado galera

    segunda-feira, 7 de abril de 2014 14:33

Respostas

  • Plinio,

    O "telephoneNumber" é o campo correto no AD. Tente executar o script abaixo:

    On Error Resume Next
    Dim objSysInfo, objUser
    Set objSysInfo = CreateObject("ADSystemInfo")
    
    Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
    
    MsgBox objSysInfo.userName
    MsgBox objUser.telephoneNumber
    

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Marcado como Resposta pliniobaladassp terça-feira, 8 de abril de 2014 12:08
    segunda-feira, 7 de abril de 2014 19:33

Todas as Respostas

  • Plinio,

    O "telephoneNumber" é o campo correto no AD. Tente executar o script abaixo:

    On Error Resume Next
    Dim objSysInfo, objUser
    Set objSysInfo = CreateObject("ADSystemInfo")
    
    Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
    
    MsgBox objSysInfo.userName
    MsgBox objUser.telephoneNumber
    

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Marcado como Resposta pliniobaladassp terça-feira, 8 de abril de 2014 12:08
    segunda-feira, 7 de abril de 2014 19:33
  • Plinio,

    O "telephoneNumber" é o campo correto no AD. Tente executar o script abaixo:

    On Error Resume Next
    Dim objSysInfo, objUser
    Set objSysInfo = CreateObject("ADSystemInfo")
    
    Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
    
    MsgBox objSysInfo.userName
    MsgBox objUser.telephoneNumber
    

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    Obrigado Durval...

    Me ajudou, só que quero utilizar para localizar o ramal de usuários no AD, então, vou adaptar para consultar um determinado usuário e retornar os dados.

    Mas é isso ai que preciso...

    Abraços

    terça-feira, 8 de abril de 2014 12:10