evi*_*ons 10 windows-server-2003 active-directory windows-server-2008-r2
我是工作 Active Directory 网络的自学管理员,该网络用于在 ~30 台 PC 上登录 Windows。我从其他人那里继承了这个系统,他也没有接受过任何直接的 Microsoft 培训,因此我对一些事情一无所知。
网络本身有一台 Windows Server 2008 R2 机器充当域控制器、DNS、文件共享等。登录工作正常,但我在禁用旧帐户的同时浏览用户列表,我注意到一些我不太明白的事情.
以下是几个示例用户帐户:
登录名:john
名字:John
姓氏:Smith
显示名称:John Smith
对象的规范名称:domain.com/Users/john
登录名:bob
名字:Bob
姓氏:法语
显示名称:Bob 法语
对象的规范名称:domain.com/Users/Bob French
当前的域控制器是从另一个用于运行 Windows Server 2003 的域控制器换入的。第一个示例帐户是在 Server 2003 框为 DC 时创建的,第二个示例帐户是在较新的 Server 2008 R2 框为 DC 时创建的。为什么规范名称不同,它有什么不同吗?
我最恼火的是,我在活动目录浏览器中的用户列表有一半是“名字”,一半是“名字姓氏”。
我可以做些什么来使所有这些都相同而不破坏工作帐户吗?
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)"
}
}
Run Code Online (Sandbox Code Playgroud)
第一步,您还可以突出显示 ADUC 中的所有用户帐户,然后将它们拖放到另一个位置。
归档时间: |
|
查看次数: |
13250 次 |
最近记录: |