Set-ADComputer: изменить атрибуты компьютера в Active Directory

Set-ADComputer: изменить атрибуты компьютера в Active Directory

При присоединении компьютера к домену Active Directory для него создается отдельная учетная запись типа Computer. У компьютера в AD есть набор обязательных атрибутов:
sAMAccountName
,
distinguishedName
, SID, версия и билд Windows (
operatingSystem
,
operatingSystemVersion
), userAccountControl,
lastLogonTimeStamp
и т.д. В необязательных атрибутах компьютера можно хранить информацию о его владельце, местоположении, описании, IP адресе. В этой статье мы покажем, как изменить значения атрибутов у учетной записи компьютера AD с помощью ADUC и PowerShell.

Изменить свойства компьютера с помощью консоли Active Directory (ADUC)

Администратор может изменить атрибуты компьютер в Active Directory с помощью графической консоли ADUC.

Откройте консоль Active Directory Users and Computers (
dsa.msc
), найдите учетную запись нужного компьютера (как искать объекты в AD) и откройте его свойства. Здесь вы можете задать описание компьютера (поле
Description
), указать местоположение, назначить пользователя, ответственного за это компьютер (
Managed by
).

Изменить свойства компьютера в Active Directory

Вы можете отредактировать значения остальных атрибутов компьютера на вкладке Attribute Editor. Будьте внимательными при редактировании обязательных атрибутов компьютера. Редактор атрибутов объекта в AD не проверяет корректность введенных данных (проверяется только тип данных и длина значения), поэтому при некорректных значения атрибутов компьютера, он может потерять доверительные отношения с доменом.

Редактор атрибутов компьютера в AD

Изменить значение атрибута компьютера в AD с помощью PowerShell

Командлет Set-ADComputer (из модуля Active Directory для PowerShell) позволяет изменить атрибуты учетной записи компьютера в Active Directory.

Например, вы хотите добавить в свойства компьютера в AD его, название компании и департамента, которому он принадлежит.

Чтобы изменить значение основных атрибутов компьютера, можно использовать встроенные параметры, таки как
-Description
,
-DisplayName
,
-DNSHostName
,
-HomePage
,
-Location
и т.д., Например указать местоположение компьютера:

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

Также можно изменить значение любого атрибута с помощью параметров
Add
,
Replace
,
Clear
и
Remove
.

Задать новое описание учетной записи компьютера:

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

Если нужно задать несколько параметров компьютера, воспользуйтесь такой конструкцией PowerShell:

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

С помощью Get-ADComputer можно получить текущие значения атрибутов:

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

Set-ADComputer командлет PowerShell

Теперь вы можете выбрать все компьютеры в AD, которые относятся к департаменту IT компании Contoso:

Get-ADComputer -Filter {(company -eq 'contoso') -and (department -eq "IT")} -properties *|select-object dNSHostName,operatingSystem,company,department,description | ft

С помощью Set-ADComputer вы также можете отключить или включить учетную запись компьютера в AD:

Set-ADComputer srv-man01 -Enabled $false

Как добавить имя пользователя и IP адрес в свойства компьютера в AD?

Вы можете автоматизировать добавление в свойства компьютера определенной информации. Например, вы хотите, чтобы в атрибутах компьютера в AD был указан его текущий IP адрес и имя последнего залогиненого пользователя.

IP адрес компьютера мы будем хранить в атрибуте description, а имя пользователя, который работает за компьютером – в атрибуте ManagedBy.

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

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

Теперь создайте новую GPO со следующим 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. Для работы скрипта на компьютерах должен быть установлен модуль AD PowerShell.

Прилинкуйте GPO на OU с компьютерами и включить замыкание групповой политики Configure user Group Policy Loopback Processing mode (см. здесь).

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

имя пользователя в свойствах компьютера 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 информацию о модели, серийном номере оборудования.

PowerShell
Set-ADComputer: изменить атрибуты компьютера в Active Directory