Set-ADComputer додаємо інформацію про користувача в якості комп'ютерів AD

командлет Set-ADComputer дозволяє змінити атрибути облікового запису комп'ютера в Active Directory. У цій статті ми покажемо, як за допомогою логон скриптів і командлет Set-ADComputer записати ім'я поточного користувача і IP адреса в властивості комп'ютера в AD. Такий скрипт може бути корисний, коли вам потрібно знайти в домені комп'ютер, за яким працює конкретний користувач.

зміст:

  • Використання Set-ADComputer для зміни атрибутів комп'ютера в AD
  • Як додати ім'я користувача в якості комп'ютера в AD?

Використання Set-ADComputer для зміни атрибутів комп'ютера в AD

командлет Set-ADComputer входить до складу модуля Active Directory для PowerShell і вимагає наявність встановленого модуля на комп'ютері. Розглянемо як користуватися Командлети Set-ADComputer. Спробуємо додати в властивості комп'ютера в AD найменування компанії і департаменту. Спочатку за допомогою Get-ADComputer перевіримо, що зазначено у конкретного комп'ютера домену в полях company, department і description.

Get-ADComputer SRV-MAN01 -properties * | select-object dNSHostName, operatingSystem, company, department, description | ft -wrap -auto

Як ви бачите, у комп'ютера незаповнені поля з описом, назвою компанії і департаментом.

Спробуємо змінити опис комп'ютера командою:

Set-ADComputer -Identity SRV-MAN01 -Add @ "description" = "Сервер управління інфраструктурою"

Можна вказати місце розташування комп'ютера:

Set-ADComputer -Identity SRV-MAN01-Location "Spb / Russia"

Якщо потрібно задати декілька параметрів комп'ютера, скористайтеся такою конуструкціей PowerShell:

$ Server = Get-ADComputer -Identity SRV-MAN01
$ Server.company = "contoso"
$ Server.department = "IT"
Set-ADComputer -Instance $ Server

Перевіримо, що атрибути комп'ютера змінилися:

Get-ADComputer SRV-MAN01 -properties * | select-object dNSHostName, operatingSystem, company, department, description | ft -wrap -auto

Як ви бачите, тепер в атрибутах комп'ютера міститься потрібна нам інформація. Тепер ми можемо вибирати комп'ютери в AD на основі цих критеріїв. Наприклад, я хочу вибрати всі комп'ютери департаменту IT компанії Contoso. Команда для вибірки може виглядати так:

Get-ADComputer -Filter company -eq 'contoso'-AND department -like' IT ' -properties * | select-object dNSHostName, operatingSystem, company, department, description | ft -wrap -auto

Командлет Set-ADComputer також дозволяє заблокувати (розблокувати) обліковий запис комп'ютера в AD:

Set-ADComputer pc-name -Enabled $ false

Як додати ім'я користувача в якості комп'ютера в AD?

Розглянемо більш цікавий і корисний досвід використання командлет Set-ADComputer. Припустимо, ви вирішили зберігати в атрибутах кожного комп'ютера в Active Directory його поточний IP адреса і ім'я останнього залогіненним користувача.

IP адреса комп'ютера ми будемо зберігати в атрибуті description, а ім'я користувача, який працює за комп'ютером - в атрибуті ManagedBy.

В першу чергу необхідно делегувати права групі Domain Users (або іншій групі безпеки користувачів) на OU з комп'ютерами на зміну значень в полях об'ктов типу Computer: ManagedBy і description (Write Description + Write Managed By).

Тепер створюємо нову політику з наступним Logon скриптом PowerShell (User Configuration -> Policies -> Windows Settings -> Scripts -> Logon), Який повинен запускатися при вході користувача в систему:

$ Curhostname = $ env: computername
$ Env: HostIP = (
Get-NetIPConfiguration |
Where-Object
$ _. IPv4DefaultGateway -ne $ null -and
$ _. NetAdapter.Status -ne "Disconnected"

) .IPv4Address.IPAddress
$ Currus_cn = (get-aduser $ env: UserName -properties *). DistinguishedName
$ ADComp = Get-ADComputer -Identity $ curhostname
$ ADComp.ManagedBy = $ currus_cn
$ ADComp.description = $ env: HostIP
Set-ADComputer -Instance $ ADComp

Даний PowerShell скрипт запускається під користувачем, визначає ім'я і IP адреса поточного комп'ютера, CN користувача і зберігає їх в обліковому записі комп'ютера в AD.

Цю політику потрібно прілінкованние на контейнер з комп'ютерами і включити замикання групової політики Configure user Group Policy Loopback Processing mode (Див. Тут).

Тепер при вході користувача в систему на комп'ютері відпрацьовує даний скрипт і оновлює опис комп'ютера в AD.

В консолі ADUC тепер відображаються IP адреси комп'ютерів, а у властивостях комп'ютера на вкладці Managed By тепер є активне посилання на обліковий запис користувача, який останнім реєструвався на даному комп'ютері.

Тепер ви можете швидко знайти комп'ютери в домені по IP адресою:

get-adcomputer -filter description -like "10.10.1. *" -properties * | select name, description, managedBy

Або можна знайти все комп'ютери в домені, на яких залягання конкретний користувач (командлет Get-AdUser испоьзуется для отримання DistinguishedName користувача):

$ User = 'daivanov'
$ User_cn = (get-aduser $ user -properties *). DistinguishedName
Get-ADComputer -Filter "ManagedBy -eq '$ user_cn'" -properties * | select name, description, managedBy | ft

Аналогічним чином ви можете записати в властивості акаунтів комп'ютерів в AD будь-яку інформацію про робочої станції або користувача, і використовувати її для пошуку (вибірки) комп'ютерів в AD.

Схожий сценарій зі зберіганням інформації про модель, серійний номер сервера в AD розглянуто в наступній статті.