Active Directory 用户名:为什么规范名称会有所不同?我可以做些什么让它们统一吗?

Active Directory 用户名:为什么规范名称会有所不同?我可以做些什么让它们统一吗?

我是一名自学成才的 Active Directory 网络管理员,负责管理约 30 台 PC 上的 Windows 登录。我从其他人那里继承了该系统,而他也没有接受过任何直接的 Microsoft 培训,因此我对一些事情一无所知。

网络本身只有一台 Windows Server 2008 R2 机器充当域控制器、DNS、文件共享等。登录工作正常,但我在禁用旧帐户的同时查看用户列表,发现一些我不太明白的东西。

以下是几个示例用户帐户:

  1. 登录名:约翰
    名:约翰
    姓:史密斯
    显示名称:约翰·史密斯
    对象的规范名称:domain.com/用户/john

  2. 登录名:鲍勃
    名:鲍勃
    姓:法语
    显示名称:鲍勃·弗伦奇
    对象的规范名称:domain.com/Users/Bob French

当前域控制器是从另一个运行 Windows Server 2003 的域控制器换来的。第一个示例帐户是在 Server 2003 框作为 DC 时创建的,第二个是在较新的 Server 2008 R2 框作为 DC 时创建的。为什么规范名称不同,这有什么区别吗?

最让我恼火的是,活动目录浏览器中的用户列表中,一半账户名为“firstname”,另一半账户名为“firstname lastname”。

我可以做些什么让它们全部相同而不破坏有效帐户吗?

答案1

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 中的所有用户帐户,然后将其拖放到另一个位置。

答案2

对象的 CN/DN 并不那么重要,因为它仅供 AD 内部使用,并用于 LDAP 查询;最终用户(和管理员)很少看到它。当您移动对象时,它实际上会自行更改,因为它包含对象的完整 LDAP 路径。

如果你想标准化它,这可以做到,没有任何副作用;用户真正关心的只是他们的登录名,只要你不改变,他们将继续照常登录。

要更改它,您可以使用 ADUC 控制台或 PowerShell 命令重命名-ADObject

答案3

移动命令应该能够为您更改规范名称。我在测试环境中这样做过,但从未在实际环境中这样做过,因此我建议谨慎行事。

此外,半相关的是,我建议实施另一个域控制器,以避免唯一的 DC 出现故障时出现麻烦。

相关内容