Сопоставление имени компьютера + имя пользователя в домене
Задача: Хочу чтобы у меня в оснастке Active Directory Users and Computers
домена polygon.com
базирующего на Windows Server 2012 R2 Std
в описании к каждому компьютеру в колонке Description
отображалось, кто в данный момент под ним работает из пользователей. Мне это нужно дабы когда пользователь просит подключитесь ко мне (я использую Radmin Viewer
), то я мог быстро это посмотреть, а после подключиться и оказать помощь.
В итоге должно получиться вот так: (это как сделано у меня на работе)
В наличии тестовый полигон srv-proxmox
внутри которого создана структура из виртуальных машин показывающая обычный набор систем:
srv-dc1.polygon.com (Windows Server 2012 R2 Std)
- Roles: AD, DNS, DHCP
W10X64.polygon.com (Windows 10 Pro)
- Roles: рабочая станция
srv-gw.polygon.com (pfSense 2.4.4)
- Roles: шлюз для тестовой системы.
Приступим:
Шаг №1:
На домен контроллере, я авторизован как Login: ekzorchik
права у меня Group: Domain Admins
(srv-dc1.polygon.com
) открываем оснастку управления пользователями и компьютерами:
Win + R - control.exe или Win + X → Control Panel - Administrative Tools - Active Directory Users and Computers
, включаю показ расширенных элементов: View - Advanced Feature
s, затем на OU=Computers
через правый клик открываю Properties (Свойства)
перехожу на вкладку Security - Advanced
, нахожу запись прав вида:
Type: Allow
Principal: Authenticated Users
Access: Special
Inherited from: None
Applies to: This object only
выделяю ее и нажимаю Edit
Затем отмечаем галочкой права:
Principal: Authenticated Users
Type: Allow
Applies to: This object only изменяю на Descendant Computer objects и отмечаю галочкой
На заметку: Все остальные галочки прав не трогаем.
После нажимаем OK
окна Permission Entry for Computers, Apply
окна Advanced Security Settings for Computers, OK
окна Advanced Security Settings for Computers, OK
окна Computer Properties.
Шаг №2:
На домен контроллере, я авторизован как Login: ekzorchik
права у меня Group: Domain Admins (srv-dc1.polygon.com)
открываем оснастку управления групповыми политиками Group Policy Management:
Файлы для загрузки: ADDescription
Структура каталога scripts
на srv-dc1: C:\Windows\SYSVOL\sysvol\polygon.com\scripts
На заметку: По пути on srv-dc1: C:\Windows\SYSVOL\sysvol\polygon.com\scripts
создаю два исполняемых файла с расширением cmd.
writeComputerDescription_Logon.cmd
\\polygon.com\SysVol\polygon.com\scripts\wscript.exe \\polygon.com\SysVol\polygon.com\scripts\writeComputerDescription_Logon.vbs
writeComputerDescription_Logoff.cmd
\\polygon.com\SysVol\polygon.com\scripts\wscript.exe \\polygon.com\SysVol\polygon.com\scripts\writeComputerDescription_Logoff.vbs
На заметку: По пути on srv-dc1: C:\Windows\SYSVOL\sysvol\polygon.com\scripts
создаю два исполняемых файла с расширением vbs
writeComputerDescription_Logon.vbs
On Error Resume NextDim adsinfo, ThisComp, oUserSet adsinfo = CreateObject(“adsysteminfo”)Set ThisComp = GetObject(“LDAP://” & adsinfo.ComputerName)Set oUser = GetObject(“LDAP://” & adsinfo.UserName)Thiscomp.put “description”,CStr(Now) + ” / “ + “Logged on / “ + oUser.cnThisComp.Setinf
writeComputerDescription_Logoff.vbs
On Error Resume NextDim adsinfo, ThisComp, oUserSet adsinfo = CreateObject(“adsysteminfo”)Set ThisComp = GetObject(“LDAP://” & adsinfo.ComputerName)Set oUser = GetObject(“LDAP://” & adsinfo.UserName)Thiscomp.put “description”, CStr(Now) + ” / “ + “Logged off / “ + oUser.cnThisComp.Setinfo
Win + R - control.exe
или Win + X → Control Panel - Administrative Tools - Group Policy Management
и редактирую Default Domain Policy
Computer Configuration - Policies - Administrative Templates - System - Group Policy
Configure scripts policy processing: Enabled
Allow processing across a slow network connection: отмечаю галочкой
User Configuration - Policies - Windows Settings - Scripts - Logon - Add - Browse
и указываю путь:
File name: \\polygon.com\SysVol\polygon.com\scripts\writeComputerDescription_Logon.cmd
User Configuration - Policies - Windows Settings - Scripts - Logoff - Add - Browse
и указываю путь:
File name: \\polygon.com\SysVol\polygon.com\scripts\writeComputerDescription_Logoff.cmd
Итого политика Default Domain Policy
расширилась по части применения на User Configuration:
Шаг №3:
Проводим испытания, к примеру на W10X64
, включаю ее и авторизуюсь как Login: alektest
, инициирую применение всех политик:
Win + R → cmd → gpupdate /force
После перезагрузившись и авторизовавшись если посмотреть на домен контроллере на оснастку Active Directory Users and Computers
то видно результат заполнения колонки Description
При Logon:
При Logoff:
Но бывает, что скрипт Logoff
или Logon
не отрабатывает, т. е. В Description
информация не заносится, отчего так я не особо понял. Значит нужен еще какой-либо способ логировать за каким компьютером сейчас авторизован пользователь.
Создал каталог info
и обозначил его как скрытая шара, в него могут писать authenticated users
, а затем создал cmd
скрипт и положил его в Logon
дабы он после каждой авторизации пользователя на рабочей станции запускался и сохранял информацию в каталог на srv-dc1\c:\info
или \\polygon.com\info$
if not exist c:\INFO mkdir c:\INFOnet share INFO$=C:\INFO /GRANT:“Authenticated Users”,CHANGEicacls C:\INFO /inheritance:dicacls c:\INFO /remove “Users” /Ticacls c:\INFO /grant “CREATOR OWNER”:(OI)(CI)(IO)(F)icacls c:\INFO /grant “NT AUTHORITY\Authenticated Users”:(OI)(CI)(M)icacls c:\INFO /grant “NT AUTHORITY\SYSTEM”:(OI)(CI)(F)icacls c:\INFO /grant “POLYGON\ekzorchik”:(OI)(CI)(F)icacls c:\INFO /grant “BUILTIN\Administrators”:(OI)(CI)(F
Group Policy Management - Edit (Default Domain Policy) - User Configuration - Policies - Windows Settings - Scripts (Logon/Logoff) - Logon - Add - Browse
и политику:
\\polygon.com\sysvol\polygon.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\USER\Scripts\Logon
копирую созданный cmd
скрипт следующего содержания:
logoncomputer.cmd
echo %date% %time% %computername% %username% >> \\polygon.com\info$\%username%.txt
после нажимаю Open, OK
, получает что теперь два cmd
скрипта при авторизации пользователя на ПК:
Затем нажимаю Apply, OK.
После того как пользователь авторизовался, сперва выполняется скрипт записи в Description
оснастки на домен контроллере Active Directory Users and Computers
, а после данные заносятся в \\srv-dc1\info$
где смотрим последнюю дату, к примеру под учетной записью alektest
последний раз заходили в 11.12.2020 20:16
, открываю данный текстовый файл и вижу:
10.12.2020 22:51:45,69 W10X642 alektest
11.12.2020 20:16:10,28 W10X642 alektest
что в указанную дату и время пользователя авторизовался на рабочей станции W10X642.
Используя оба скрипта в данной заметке я получаю полную информацию на случай если мне нужно опознать имя компьютера дабы используя Radmin Viewer
инициировать подключение и оказать удаленную помощь.