Windows Server 2025 / 如何创建 Active Directory 用户、组和组织单位
Active Directory(AD)中的用户、组和组织单位用途不同:用户账户标识身份,组织单位(OU)划分管理与策略范围,安全组则用于接收资源权限。本实验在专用 OU 中创建 labuser1 和 GG_LabUsers。把用户加入组,并不等于获得文件访问权;还需要将相应权限授予该组。
规划实验专用 OU
在已正常运行的 ad.example.test 域下创建 Lab OU,再创建 LabUsers、LabGroups、Workstations 和 Servers 四个子 OU。保留这些名称的原始拼写,使界面与命令一致。实验对象应与默认 Users、Computers 容器分开,不要随意移动内置管理账户、服务身份或 Domain Controllers 中的域控制器。在 DC1 或授权管理电脑上操作,确保已安装 Active Directory 工具,并具备目标位置的对象创建、修改权限。
| OU | 实验室对象 |
|---|---|
| LabUsers | 标准用户 labuser1 |
| LabGroups | 安全组 GG_LabUsers |
| Workstations | 已加入域的 CLIENT1 计算机对象 |
| Servers | 作为成员服务器的 FS1,不包括域控制器 |
根据管理委派和策略需要设计 OU,而不是机械复制组织架构。层次太深会增加追查设置来源和管理范围的难度,OU 设计指南说明了相关原则。新 OU 应保留防止意外删除的保护;这种保护不是备份,不能替代恢复计划。
通过图形界面创建用户与组
- 在 DC1 或装有 Active Directory RSAT 的授权电脑上运行 dsa.msc。确认选中 ad.example.test,并使用有权管理实验对象的账户。
- 右键单击 ad.example.test → 新建 → 组织单位,创建 Lab 并保留防止意外删除的保护。再在 Lab 内依次创建 LabUsers、LabGroups、Workstations、Servers,核对层级关系。
- 在 LabUsers 中选择“新建 → 用户”。姓名使用 Lab User One,用户登录名使用 labuser1,后缀为 ad.example.test。输入并确认符合策略的唯一初始密码,要求下次登录时修改,并确认账户未保持禁用。不要为完成实验而关闭密码要求。
- 在 LabGroups 中选择“新建 → 组”,名称填写 GG_LabUsers,组作用域选“全局”,组类型选“安全”。确认后检查属性,不要选择通讯组类型。
- 打开 GG_LabUsers 的“属性 → 成员 → 添加”,选择 labuser1,并在保存前核对找到的账户。再检查组的“成员”和用户属性的“隶属于”,两处都应显示新的成员关系。
资源授权应使用安全组,而不是用于邮件分发列表的通讯组。组作用域决定允许包含哪些成员以及可用于何处;本单域实验从全局作用域开始。参见 New-ADGroup 和安全组类型与作用域说明。将 GG_LabUsers 放入 LabGroups 并不会自动添加成员或授予资源权限。
使用 PowerShell 作为替代方法
下面的代码是图形界面创建的替代方法,不是创建完成后再做一遍。在 DC1 或具备 ActiveDirectory 模块、能连接域的授权管理电脑上运行 Windows PowerShell。先检查同名对象是否存在;若存在,应核对身份、位置与用途,不要删除、覆盖或重复执行整个代码块。DC=ad,DC=example,DC=test 和 OU=Lab 是目录路径,不是磁盘文件夹。Read-Host -AsSecureString 会交互式请求初始密码,无需将密码写入代码;不要把密码以明文保存到实验报告。
Import-Module ActiveDirectory
$domainPath = 'DC=ad,DC=example,DC=test'
$labPath = 'OU=Lab,' + $domainPath
New-ADOrganizationalUnit -Name 'Lab' -Path $domainPath -ProtectedFromAccidentalDeletion $true
foreach ($ouName in 'LabUsers','LabGroups','Workstations','Servers') {
New-ADOrganizationalUnit -Name $ouName -Path $labPath -ProtectedFromAccidentalDeletion $true
}
$initialPassword = Read-Host 'Initial password for labuser1' -AsSecureString
New-ADUser -Name 'Lab User One' -SamAccountName 'labuser1' -UserPrincipalName 'labuser1@ad.example.test' -Path ('OU=LabUsers,' + $labPath) -AccountPassword $initialPassword -Enabled $true -ChangePasswordAtLogon $true
New-ADGroup -Name 'GG_LabUsers' -GroupCategory Security -GroupScope Global -Path ('OU=LabGroups,' + $labPath)
Add-ADGroupMember -Identity 'GG_LabUsers' -Members 'labuser1'
Get-ADGroupMember -Identity 'GG_LabUsers'
OU 创建参考解释了 -Path 和防止意外删除的保护。New-ADUser 参数说明中,Lab User One 是对象名称,labuser1 是登录名,labuser1@ad.example.test 是用户主体名称。-Enabled $true 请求启用账户,-ChangePasswordAtLogon $true 要求下次登录时修改密码。最后的查询应在 GG_LabUsers 的直接成员中列出 labuser1,但这还不能证明用户已成功登录或能够访问共享文件。
如果密码被策略拒绝,New-ADUser 仍可能已经创建对象,只是未能启用账户。应先检查错误和 Enabled,不要假定操作全部回滚,也不要再次创建同一个用户。在“Active Directory 用户和计算机”中找到 labuser1,通过“重置密码”设置有效密码,并按需启用账户,同时保留下次登录修改密码的要求。AD 账户密码重置参考说明了管理命令的替代方式。不要用空密码或关闭策略来强制启用。
移动成员计算机并测试普通用户
移动计算机前,确认层级中有五个 OU:Lab 及其四个子 OU。检查 labuser1 位于 LabUsers,GG_LabUsers 位于 LabGroups,组类型为安全、作用域为全局,且成员查询列出预期用户。若缺少某部分,应依据真实错误修正对应步骤;后面的某一行成功,不代表前面的每一行都已成功。
只移动已经加入域的成员计算机对象。如果 CLIENT1 尚未加入域,先完成将客户端加入域的实验。FS1 只有在已作为成员服务器加入域后才会出现;如果 AD 中还没有它,应跳过 FS1 的移动和查询,不要为了掩盖错误新建替代对象。在“Active Directory 用户和计算机”中右键单击正确对象,选择“移动”,将 CLIENT1 放到 Lab\Workstations,将 FS1 放到 Lab\Servers。确认它们都不是域控制器,记录原位置,并在移动前检查目标位置的策略影响。随后查询位置和用户状态:
Get-ADComputer -Identity 'CLIENT1' | Select-Object Name,DistinguishedName
Get-ADComputer -Identity 'FS1' | Select-Object Name,DistinguishedName
Get-ADUser -Identity 'labuser1' -Properties Enabled | Select-Object SamAccountName,Enabled,DistinguishedName
CLIENT1 的 DistinguishedName 应包含 OU=Workstations,OU=Lab,已存在的成员服务器 FS1 应包含 OU=Servers,OU=Lab,后面均为 DC=ad,DC=example,DC=test。labuser1 应显示正确的 SamAccountName、Enabled True 以及 OU=LabUsers,OU=Lab 路径。之后保存工作,在 CLIENT1 完全注销会话,不要只锁定屏幕。选择“其他用户”,以 labuser1@ad.example.test 登录,按要求修改初始密码,再执行 whoami,预期身份为 AD\labuser1。此组尚未获得文件权限,单纯的共享访问被拒绝不能证明组创建失败。
用户设置和计算机设置分别按照各自对象位置及适用策略评估。移动 labuser1 不会移动 CLIENT1;把 GG_LabUsers 放进某个 OU,也不会将其成员移入该 OU。若移动造成意外影响,先检查策略链接和继承,再考虑仅将相关对象移回之前记录的位置,不要通过移动其他对象来补偿未知结果。
检查成员变更与清理的影响
现有会话可能在访问令牌中保留旧的组信息。访问令牌是描述会话或进程安全上下文的对象,访问令牌文档说明其中包含用户的组信息。修改组成员后,先保存工作,完全注销,再以 labuser1 重新登录,将 whoami /groups 与 AD 成员关系和 Get-ADGroupMember 结果比较。在旧会话中另开窗口不等于重新身份验证。重命名或删除用户、组前,应检查依赖应用及文件权限。
为后续实验保留这些对象。如果确需清理,先列明需保留的对象、原位置、策略链接、委派和依赖权限,在考虑删除 OU 前将所需对象移到合适位置。防止意外删除的保护是刻意设置的:仅在明确选定并审查某个 OU 后,才针对该 OU 移除保护,不要递归取消保护或删除整个 Lab 结构。一次访问被拒绝不构成删除层级或修改无关管理账户的理由。




