Командир 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
Get-ADComputer dNSHostName, операційна система, компанія, відділ, опис
Як ви бачите, у комп’ютера незаповнені поля з описом, назвою компанії і департаментом.

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

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

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

Як ви бачите, тепер в атрибутах комп’ютера міститься потрібна нам інформація. Тепер ми можемо вибирати комп’ютери в 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

Set-ADComputer - заблокувати комп'ютер

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

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

IP адреса комп’ютера ми будемо зберігати в атрибуті опис, А ім’я користувача, який працює за комп’ютером – в атрибуті Керований.

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

делегування прав Write Description + Write Managed By в AD на комп'ютери

Тепер створюємо нову політику з наступним Logon скриптом PowerShell (Конфігурація користувача -> Політика -> Налаштування Windows -> Сценарії -> Вхід), Який повинен запускатися при вході користувача в систему:

$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.

Цю політику потрібно прілінкованние на контейнер з комп’ютерами і включити замикання групової політики Налаштуйте режим обробки циклічної політики користувачів (Див. Тут).

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

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

ім'я користувача у властивостях комп'ютера ad

Тепер ви можете швидко знайти комп’ютери в домені по 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.

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

Leave a Reply

Your email address will not be published. Required fields are marked *