Adiciona o último usuário logado no campo de descrição de Usuários e Computadores do AD

6

O último local em que trabalhei tinha a instalação do AD de forma que, no campo Descrição de cada conta de computador nos usuários do AD e no console de computadores, ele informasse quem estava logado por último e quando. Como você configura isso para isso?

    
por Matt 02.06.2011 / 16:24

3 respostas

6

Provavelmente, a permissão para editar esse campo foi delegada aos usuários e um script de login que gravaria esse atributo foi implantado por meio do GPO. Não há funcionalidade incorporada para realizar isso.

    
por 02.06.2011 / 16:27
3

Aqui está um script de logon de usuário que eu juntei há muito tempo, ele adiciona o nome de login do usuário, o registro de data e hora e o endereço IP à descrição do objeto de computador no AD. Você pode usar isso como está ou alterá-lo para melhor atender você. Instruções para implementá-lo após o script ...

On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo") 'Bind to AD
Set objNet = CreateObject("WScript.Network")

strCompDN = objSysInfo.ComputerName 'DN for computer, e.g. "CN=VISTAWORKSTATION,OU=Child OU Name,OU=Parent OU Name,DC=domain,DC=com"
Set objComp = GetObject("LDAP://" & strCompDN) 'IADsComputer object

strUserDN = objSysInfo.UserName 'DN for user, e.g. "CN=John Smith,OU=Child OU Name,OU=Parent OU Name,DC=domain,DC=com"
Set objUser = GetObject("LDAP://" & strUserDN) 'IADsUser object

strUsrLogin = LCase(objNet.UserName)

strNow = Now
strDateStamp = DatePart("yyyy",strNow) & _
    Right("0" & DatePart("m",strNow), 2) & _
    Right("0" & DatePart("d",strNow), 2) & _
    "@" & _
    Right("0" & DatePart("h",strNow), 2) & _
    Right("0" & DatePart("n",strNow), 2)

'RegExp object used to perform a simple match on IP address
Set objRE = New RegExp
objRE.IgnoreCase = True
'Note this regexp pattern isn't "correct" for matching an IPv4 address properly, but since WMI will return an
'array of IP addresses, this is sufficient to distinguish IPv4 vs IPv6
objRE.Pattern = "^\d+\.\d+\.\d+\.\d+$"

strIP = ""

'Connect to WMI and retreive all network adapters
Set objWMI = GetObject("winmgmts:")
Set colNICs = objWMI.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")

'Get the IP(s) assigned to whichever network adapter has our default gateway
If colNICs.Count > 0 Then
    For Each objNIC in colNICs
        If IsArray(objNIC.DefaultIPGateway) Then
            arrIP = objNIC.IPAddress
            For i = 0 To UBound(arrip)
                If objRE.Test(arrIP(i)) Then strIP = strIP & " " & arrIP(i)
            Next
            strMAC = objNIC.MACAddress
        End If    
    Next
End If

strIP = Trim(strIP)

objComp.Description = strDateStamp & " " & strUsrLogin & " " & strIP
objComp.Put "extensionAttribute1", strUsrLogin
objComp.Put "extensionAttribute2", strIP
objComp.Put "extensionAttribute3", strMAC

objComp.SetInfo

Salve o script em algum lugar sensato, como o compartilhamento SYSVOL nos seus DCs. Em seguida, atribua-o como um script de logon do usuário usando a política de grupo.

Por fim, como os usuários comuns normalmente não podem alterar a descrição em um objeto de computador, você precisa dar a eles permissão para fazer isso:

  1. Abra os Usuários do AD & Computadores.
  2. Clique com o botão direito do mouse em yourdomain na árvore de navegação à esquerda e selecione Delegar controle.
  3. O Assistente para Delegação de Controle é exibido. Clique em Próximo.
  4. Na página Usuários ou grupo, adicione “Usuários autenticados” e clique em Próximo.
  5. Na página Tarefas a delegar, selecione a opção de tarefa personalizada e clique em Avançar.
  6. Na página Tipo de objeto do Active Directory, selecione apenas objetos Computador e clique em próximo.
  7. Na página Permissões, marque a caixa Propriedade específica e marque as caixas de permissões correspondentes na lista:
    • Escrever descrição
    • Escreva extensionAttribute1
    • Escreva extensionAttribute2
    • Escreva extensionAttribute3
    • Escreva extensionAttribute4
    • Escreva extensionAttribute5
    • Escreva extensionAttribute6
    • Escreva extensionAttribute7
    • Escreva extensionAttribute8
    • Escreva extensionAttribute9
    • Escreva extensionAttribute10
    • Escreva extensionAttribute11
    • Escreva extensionAttribute12
    • Escreva extensionAttribute13
    • Escreva extensionAttribute14
    • Escreva extensionAttribute15
  8. Clique em Próximo
  9. Verifique se o resumo da operação de delegação está correto e clique em Concluir.
por 02.06.2011 / 17:02
2

Adicionando a resposta do MarkM , após a delegação, um vbscript como este faria o que você quer:

Set objADSystemInfo = CreateObject("ADSystemInfo")
Set objLDAPComp = GetObject("LDAP://" & objADSystemInfo.ComputerName)

objLDAPComp.Description = objADSystemInfo.UserName & " " & Now()
objLDAPComp.SetInfo

Isso resultaria na definição do campo de descrição do computador em algo como CN=Joe Blow,OU=The Users,DC=example,DC=com 6/2/2011 10:55:00 AM

    
por 02.06.2011 / 16:55