Я администратор-самоучка в рабочей сети Active Directory, используемой для входа в Windows на ~ 30 ПК. Я унаследовал систему от кого-то, кто также не проходил прямого обучения Microsoft, и в результате я не могу понять пару вещей.
В самой сети есть одна машина с Windows Server 2008 R2, выступающая в качестве контроллера домена, DNS, общих файловых ресурсов и т.д. Логины работают нормально, но я ковырялся в списке пользователей при отключении старых учетных записей и заметил кое-что, чего не совсем понимаю .
Вот несколько примеров учетных записей пользователей:
Имя для входа: Джон
Имя: Джон
Фамилия: Смит
Отображаемое имя: Джон Смит
Каноническое название объекта: domain.com/Users/john
Имя для входа: боб
Имя: Боб
Фамилия: французский язык
Отображаемое имя: Боб Френч
Каноническое название объекта: domain.com/Users/Bob French
Текущий контроллер домена был заменен другим контроллером, который использовался для запуска Windows Server 2003. Первый образец учетной записи был создан, когда поле Server 2003 было DC, а второе было создано, когда поле более нового Server 2008 R2 было DC. Почему каноническое имя отличается и имеет ли это значение?
Меня больше всего раздражает тот факт, что в моем списке пользователей в браузере Active Directory половина учетных записей имеет значение «имя», а половина - значение «имя и фамилия».
Могу ли я сделать что-нибудь, чтобы все они были одинаковыми, не нарушая рабочих аккаунтов?
Active Directory на самом деле не заботится о том, как RDN объекта учетной записи пользователя (последняя часть канонического имени) соотносится с другими свойствами, такими как отображаемое имя или имя входа, до тех пор, пока значение каждого отдельного атрибута не нарушает определение схемы.
Поведение формы «Новый пользователь» в Active Directory - пользователи и компьютеры (а также ряд других диалогов) значительно изменилось между Windows Server 2003 и Windows Server 2008 R2 - и, вероятно, поэтому они не согласованы.
Вы можете использовать PowerShell для перемещения несистемных учетных записей, а затем просмотреть пользователей и переименовать их в любое отображаемое имя:
# Create new OU named RegularUsers
New-ADOrganizationalUnit -Name RegularUsers -Path "dc=domain,dc=com"
# Retrieve all users that are not critical system objects
$users = Get-ADUser -SearchBase "CN=Users,DC=domain,DC=com" -SearchScope OneLevel -Filter {-not(isCriticalSystemObject -like '*')}
# Go through each and move to the new OU
foreach($user in $users){
Move-ADObject $user -TargetPath "OU=RegularUsers,DC=domain,DC=com"
}
# Retrieve all users in the new OU
$movedUsers = Get-ADUser -SearchBase "CN=Users,DC=domain,DC=com" -SearchScope OneLevel -Filter '*'
foreach($user in $movedUsers){
# Test if Display Name and object Name is the same, if not - rename
if($user.DisplayName -ne $user.Name)
{
Rename-ADObject $user -NewName "$($user.DisplayName)"
}
}
На первом этапе вы также можете просто выделить все учетные записи пользователей в ADUC и перетащить их в другое место.
CN / DN объекта не имеет большого значения, поскольку он используется только внутри AD и в запросах LDAP; конечные пользователи (и администраторы) очень редко даже видят это. Фактически он изменяется сам по себе, когда вы перемещаете объекты, потому что он включает полный путь LDAP объекта.
Если вы хотите его стандартизировать, это можно сделать без каких-либо побочных эффектов; единственное, что действительно волнует пользователей, - это их имя для входа, и пока вы не меняете который, они продолжат вход в систему как обычно.
Чтобы изменить его, вы можете использовать консоль ADUC или команду PowerShell. Переименовать-ADObject.
В dsmove команда должна иметь возможность изменять каноническое имя за вас. Я делал это в тестовых средах, но никогда в живых, поэтому я бы посоветовал действовать с осторожностью.
Кроме того, частично связанный, я бы посоветовал реализовать другой контроллер домена, чтобы избежать головной боли, если ваш единственный DC выйдет из строя.