Хранить эту информацию буду в поле Описание объекта Компьютер. Ну а для чего оно еще нам нужно?
Поехали. Чтобы пользовательские компы могли в Description что-то писать, дадим им на это разрешение.
Идем в оснастку Active Directory – пользователи и компьютеры (или просто dsa.msc). Меню Вид — Включаем Дополнительные компоненты
теперь на домене — правой кнопкой мышки, дальше Свойства, закладка Безопасность, кнопка Дополнительно.
В открывшемся окне «Дополнительные параметры безопасности для %domainname» — жмем Добавить. Получаем окно «Элемент разрешения для %domainname». Гиперссылка «Выберите субъект» — выбираем, например , «Пользователи домена»
Снимаем все галки, ставим одну — Запись:Описание
Сохраняем.
Вторая часть балета.
Ползём в C:\Windows\SYSVOL\sysvol\%MySweetDomain\scripts, создаем там папочку logon и в нее сохраняем парочку скриптов —
Сначала User-Logon.VBS
On Error Resume Next
Dim adsinfo, ThisComp, oUser
Set adsinfo = CreateObject(«adsysteminfo»)
Set ThisComp = GetObject(«LDAP://» & adsinfo.ComputerName)
Set oUser = GetObject(«LDAP://» & adsinfo.UserName)
Thiscomp.put «description», «>> Logged on: » + oUser.cn + » («+ oUser.sAMAccountName+») » + CStr(Now)
ThisComp.Setinfo
И, cоответственно, User-Logoff.vbs (можно, конечно один скрипт использовать, с передачей параметров, но отложим это на потом. то есть оставим так, как есть)
On Error Resume Next
Dim adsinfo, ThisComp, oUser
Set adsinfo = CreateObject(«adsysteminfo»)
Set ThisComp = GetObject(«LDAP://» & adsinfo.ComputerName)
Set oUser = GetObject(«LDAP://» & adsinfo.UserName)
Thiscomp.put «description», «<< Logged off: » + oUser.cn + » («+ oUser.sAMAccountName+») » + CStr(Now)
ThisComp.Setinfo
Идем в Управление групповой политикой (или gpmc.msc), создаем Объект групповой политики, допустим UserLogon
Для входа/выхода в систему выбираем соответствующий скрипт
Линкуем политику к Users
C:\>Gpupdate /force
Вечером заходим в Пользователи и компьютеры и немножко радуемся —
Но мы же не хотим каждый раз ползать в оснастку, жать сто кнопок. Хотим при необходимости видет все это на рабочем компьютере. Поэтому идем на рабочий комп и в удобное место валим ссылочку на свой PS-скриптик, который нам будет выводит нужную инфу в красивой табличке.
ИТАК
Сначала включим (если еще не) в Powershell поддержку Active Directory. Т.к. у нас Windows 10.1809, то, как подсказывает нам WIP, включаем поддержку AD простой командой
Кто Где Когда?
29.01.2020
Windows Server, Без рубрики
No Comments
Aleks
AD. Хочу видеть, кто на каком компьютере домена залогинен/разлогинен. и когда.
Контролёр домена — WinServer2012R2. Рабочая машина — Windows10Corp.
Компилирую из тыц тыц тыц
Хранить эту информацию буду в поле Описание объекта Компьютер. Ну а для чего оно еще нам нужно?
Поехали. Чтобы пользовательские компы могли в Description что-то писать, дадим им на это разрешение.
Идем в оснастку Active Directory – пользователи и компьютеры (или просто dsa.msc). Меню Вид — Включаем Дополнительные компоненты
теперь на домене — правой кнопкой мышки, дальше Свойства, закладка Безопасность, кнопка Дополнительно.
В открывшемся окне «Дополнительные параметры безопасности для %domainname» — жмем Добавить. Получаем окно «Элемент разрешения для %domainname». Гиперссылка «Выберите субъект» — выбираем, например , «Пользователи домена»
Снимаем все галки, ставим одну — Запись:Описание
Сохраняем.
Вторая часть балета.
Ползём в C:\Windows\SYSVOL\sysvol\%MySweetDomain\scripts, создаем там папочку logon и в нее сохраняем парочку скриптов —
Сначала User-Logon.VBS
On Error Resume Next
Dim adsinfo, ThisComp, oUser
Set adsinfo = CreateObject(«adsysteminfo»)
Set ThisComp = GetObject(«LDAP://» & adsinfo.ComputerName)
Set oUser = GetObject(«LDAP://» & adsinfo.UserName)
Thiscomp.put «description», «>> Logged on: » + oUser.cn + » («+ oUser.sAMAccountName+») » + CStr(Now)
ThisComp.Setinfo
И, cоответственно, User-Logoff.vbs (можно, конечно один скрипт использовать, с передачей параметров, но отложим это на потом. то есть оставим так, как есть)
On Error Resume Next
Dim adsinfo, ThisComp, oUser
Set adsinfo = CreateObject(«adsysteminfo»)
Set ThisComp = GetObject(«LDAP://» & adsinfo.ComputerName)
Set oUser = GetObject(«LDAP://» & adsinfo.UserName)
Thiscomp.put «description», «<< Logged off: » + oUser.cn + » («+ oUser.sAMAccountName+») » + CStr(Now)
ThisComp.Setinfo
Идем в Управление групповой политикой (или gpmc.msc), создаем Объект групповой политики, допустим UserLogon
Для входа/выхода в систему выбираем соответствующий скрипт
Вечером заходим в Пользователи и компьютеры и немножко радуемся —
Но мы же не хотим каждый раз ползать в оснастку, жать сто кнопок. Хотим при необходимости видет все это на рабочем компьютере. Поэтому идем на рабочий комп и в удобное место валим ссылочку на свой PS-скриптик, который нам будет выводит нужную инфу в красивой табличке.
ИТАК
Сначала включим (если еще не) в Powershell поддержку Active Directory. Т.к. у нас Windows 10.1809, то, как подсказывает нам WIP, включаем поддержку AD простой командой
Add-WindowsCapability –online –Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”
Теперь у нас развязаны руки, развлекаемся
Get-ADComputer -SearchBase «OU=Computers,OU=#####,DC=######,DC=ru» -Properties * -Filter * | Select-Object CN, Description
Get-ADComputer -SearchBase «OU=Computers,OU=#####,DC=######,DC=ru» -Properties * -Filter * | Select-Object CN, Description | where {$_.description -like «>>*»}
Get-ADComputer -SearchBase «OU=Computers,OU=#####,DC=######,DC=ru» -Properties * -Filter * | Select-Object CN, Description | where {$_.description -like «>>*»} | Sort CN | Out-GridView -Title «Информация по логонам»
Get-ADComputer -SearchBase «OU=Computers,OU=#####,DC=######,DC=ru» -Properties * -Filter * | Select-Object CN, Description | where {$_.description -like «>>*»} | Measure-Object |%{$_.count}
И это, мать его, великолепно
adgpopowershellwindows server 2012 r2