Назад | Перейти на главную страницу

Добавить последнего пользователя, вошедшего в систему, в поле описания пользователей и компьютеров AD

В последнем месте, где я работал, была настройка AD таким образом, чтобы в поле Описание каждой учетной записи компьютера в консоли пользователей и компьютеров AD было указано, кто и когда входил в систему последним. Как вы его для этого настроили?

Скорее всего, разрешение на редактирование этого поля было делегировано пользователям, и сценарий входа в систему, который записывал этот атрибут, был развернут через GPO. Для этого нет встроенных функций.

Вот сценарий входа в систему, который я собрал давно, он добавляет имя пользователя, временную метку и IP-адрес к описанию компьютерного объекта в AD. Вы можете использовать его как есть или изменить по своему усмотрению. Инструкция по реализации после скрипта ...

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

Сохраните сценарий в удобном месте, например, в общей папке SYSVOL на контроллерах домена. Затем назначьте его как сценарий входа пользователя в систему с помощью групповой политики.

Наконец, поскольку обычные пользователи обычно не могут изменять описание компьютерного объекта, вам необходимо дать им разрешение на это, например:

  1. Откройте AD Пользователи и компьютеры.
  2. Щелкните правой кнопкой мыши вашдомен в дереве навигации слева, затем выберите Делегировать управление.
  3. Появится мастер делегирования управления. Нажмите кнопку "Далее.
  4. На странице «Пользователи» или «Группа» добавьте «Прошедшие проверку» и нажмите «Далее».
  5. На странице «Задачи для делегирования» выберите вариант настраиваемой задачи и нажмите «Далее».
  6. На странице «Тип объекта Active Directory» выберите только объекты «Компьютер» и нажмите «Далее».
  7. На странице разрешений установите флажок для конкретного свойства, затем установите соответствующие флажки разрешений в списке:
    • Написать описание
    • Запись extensionAttribute1
    • Запись extensionAttribute2
    • Запись extensionAttribute3
    • Запись extensionAttribute4
    • Запись extensionAttribute5
    • Запись extensionAttribute6
    • Запись extensionAttribute7
    • Запись extensionAttribute8
    • Запись extensionAttribute9
    • Запись extensionAttribute10
    • Запись extensionAttribute11
    • Запись extensionAttribute12
    • Запись extensionAttribute13
    • Запись extensionAttribute14
    • Запись extensionAttribute15
  8. Нажмите кнопку "Далее
  9. Убедитесь, что сводная информация об операции делегирования отображается правильно, затем нажмите «Готово».

Добавление к Ответ MarkM, после завершения делегирования vbscript, подобный этому, будет делать то, что вы хотите:

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

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

Это приведет к тому, что в поле описания компьютера будет установлено что-то вроде
CN=Joe Blow,OU=The Users,DC=example,DC=com 6/2/2011 10:55:00 AM