Командир 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 адреса комп’ютера ми будемо зберігати в атрибуті опис, А ім’я користувача, який працює за комп’ютером – в атрибуті Керований.
В першу чергу необхідно делегувати права групі Domain Users (або іншій групі безпеки користувачів) на OU з комп’ютерами на зміну значень в полях об’ктов типу Computer: ManagedBy і description (Написати опис + Написати Керує).
Тепер створюємо нову політику з наступним 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 адреси комп’ютерів, а у властивостях комп’ютера на вкладці Керує тепер є активне посилання на обліковий запис користувача, який останнім реєструвався на даному комп’ютері.
Тепер ви можете швидко знайти комп’ютери в домені по 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.