我是一个自学成才的管理员,用于在大约30台PC上进行
Windows登录的Active Directory网络.我从其他人那里继承了这个系统,他也没有任何直接的微软培训,因此我对一些事情一无所知.
网络本身有一台Windows Server 2008 R2机器充当域控制器,DNS,文件共享等.登录工作正常,但我在禁用旧帐户的同时捅了一下用户列表,我发现了一些我不太了解的东西.
以下是一些示例用户帐户:
>登录名称:约翰
名字:约翰
姓氏:史密斯
显示名称:John Smith
对象的规范名称:domain.com/Users/john
>登录名称:bob
名字:鲍勃
姓氏:法语
显示名称:Bob French
对象的规范名称:domain.com/Users/Bob French
当前域控制器与另一个用于运行Windows Server 2003的域控制器交换.第一个示例帐户是在Server 2003框为DC时创建的,第二个是在较新的Server 2008 R2框为DC时创建的.为什么Canonical Name不同,它有什么区别?
我主要是因为我在活动目录浏览器中的用户列表中有一半帐户是’firstname’而一半是’firstname lastname’.
如果不破坏工作账户,我可以做些什么来使它们全部相同吗?
Active Directory并不真正关心用户帐户对象的RDN(规范名称的最后一部分)如何与其他属性(如显示名称或登录名称)相关 – 只要每个属性的值不违反架构定义.
原文链接:https://www.f2er.com/windows/370735.htmlActive 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=com" } # Retrieve all users in the new OU $movedUsers = Get-ADUser -SearchBase "CN=Users,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)" } }