OU 设计与管理

Active Directory · 第 4 篇 · 适用于 Windows Server 2019 / 2022 / 2025

📑 目录

  1. OU 概念与设计原则
  2. 创建与管理 OU
  3. 移动对象到 OU
  4. GPO 链接到 OU
  5. 权限委派
  6. ADSI Edit 高级管理
  7. 常见问题

1. OU 概念与设计原则

组织单位(Organizational Unit,OU)是 AD 域内的逻辑容器,用于将用户、计算机、组等对象分组管理。OU 是链接组策略(GPO)的最小作用域。

OU 设计原则

原则说明示例
扁平化OU 层级不超过 3-4 层IT → Servers → WebServers(避免过深嵌套)
基于管理需求根据 GPO 应用需求划分IT信息部 OU 需要 RDP 策略,财务部 OU 需要严格的密码策略
稳定优先避免频繁调整 OU 结构先规划好,不要轻易移动大量对象
避免按地理位置用站点(Site)管理物理位置不要为北京、上海各建一个顶层 OU
💡 推荐的 OU 结构

基于部门或职能划分:OU=IT信息部, OU=财务部, OU=业务部, OU=生产部, OU=人事部, OU=Computers, OU=Groups 等。每个部门 OU 下再分 Users 和 Computers 子 OU。

2. 创建与管理 OU

1

打开Active Directory 用户和计算机dsa.msc

2

右键点击域名 iehang.cn新建组织单位

3

输入 OU 名称(如 "IT")→ 确定。可以取消勾选"防止容器被意外删除"方便实验

PowerShell - 创建 OU
# 创建部门 OU
New-ADOrganizationalUnit -Name "IT信息部" -Path "DC=iehang,DC=cn" -Description "IT信息部"
New-ADOrganizationalUnit -Name "财务部" -Path "DC=iehang,DC=cn" -Description "财务部"
New-ADOrganizationalUnit -Name "业务部" -Path "DC=iehang,DC=cn" -Description "业务部"
New-ADOrganizationalUnit -Name "生产部" -Path "DC=iehang,DC=cn" -Description "生产部"
New-ADOrganizationalUnit -Name "人事部" -Path "DC=iehang,DC=cn" -Description "人事部"

# 创建子 OU(以 IT信息部 为例,其他部门类似)
New-ADOrganizationalUnit -Name "Users" -Path "OU=IT信息部,DC=iehang,DC=cn"
New-ADOrganizationalUnit -Name "Computers" -Path "OU=IT信息部,DC=iehang,DC=cn"
New-ADOrganizationalUnit -Name "Users" -Path "OU=财务部,DC=iehang,DC=cn"
New-ADOrganizationalUnit -Name "Users" -Path "OU=业务部,DC=iehang,DC=cn"
New-ADOrganizationalUnit -Name "Users" -Path "OU=生产部,DC=iehang,DC=cn"
New-ADOrganizationalUnit -Name "Users" -Path "OU=人事部,DC=iehang,DC=cn"

# 禁止删除保护(默认启用,实验时建议关闭)
Set-ADOrganizationalUnit -Identity "OU=IT信息部,DC=iehang,DC=cn" -ProtectedFromAccidentalDeletion $false

# 列出所有 OU
Get-ADOrganizationalUnit -Filter "*" | Format-Table Name, DistinguishedName"

3. 移动对象到 OU

PowerShell - 移动对象
# 将用户移动到指定 OU
Move-ADObject -Identity "CN=zhangsan,CN=Users,DC=iehang,DC=cn" `
    -TargetPath "OU=Users,OU=IT信息部,DC=iehang,DC=cn"

# 批量移动:将所有 IT 部门用户移到 IT OU(假设 Department 属性已设置)
Get-ADUser -Filter { Department -eq "IT" } | ForEach-Object {
    Move-ADObject -Identity $_.DistinguishedName -TargetPath "OU=Users,OU=IT信息部,DC=iehang,DC=cn"
}

# 将计算机移到指定 OU
Get-ADComputer -Filter { Name -like "IT-*" } | ForEach-Object {
    Move-ADObject -Identity $_.DistinguishedName -TargetPath "OU=Computers,OU=IT信息部,DC=iehang,DC=cn"
}

4. GPO 链接到 OU

PowerShell - 链接 GPO 到 OU
# 创建新 GPO
New-GPO -Name "IT信息部密码策略" -Comment "IT信息部专用密码策略"

# 链接到 IT OU
New-GPLink -Name "IT信息部密码策略" -Target "OU=IT信息部,DC=iehang,DC=cn" -LinkEnabled $true

# 设置链接顺序
Set-GPLink -Name "IT信息部密码策略" -Target "OU=IT信息部,DC=iehang,DC=cn" -Order 1

# 查看 OU 上的 GPO 链接
Get-GPInheritance -Target "OU=IT信息部,DC=iehang,DC=cn"

5. 权限委派

通过权限委派,可以让非域管理员管理指定 OU 下的对象(如重置密码、创建用户)。

PowerShell - 委派 OU 控制权
# 授予用户 "ITAdmin" 在 IT OU 上重置密码的权限
$user = Get-ADUser "ITAdmin"
$ou = Get-ADOrganizationalUnit "IT"

$acl = Get-Acl $ou.DistinguishedName
$rule = New-Object System.DirectoryServices.ActiveDirectoryAccessRule(
    $user.SID, "ExtendedRight", "Allow",
    "00299570-246d-11d0-a768-00aa006e0529" # Reset Password GUID
)
$acl.AddAccessRule($rule)
Set-Acl $ou.DistinguishedName $acl

6. ADSI Edit 高级管理

ADSI Edit 是低级 AD 编辑工具,可以直接操作 AD 属性。使用 adsiedit.msc 打开。

⚠️ 警告

ADSI Edit 修改的属性会直接写入 AD 数据库,没有确认对话框。错误修改可能导致 AD 功能异常。仅在有明确需求时使用,修改前建议备份。

7. 常见问题

Q1:误删了 OU 怎么办

如果启用了 AD 回收站(参见第 8 篇),可以通过 Get-ADObject -Filter * -IncludeDeletedObjects 找回并恢复。否则需要使用 ntdsutil 授权还原。

Q2:OU 数量有限制吗

没有硬性限制,但 OU 层级过深会增加管理复杂度和 GPO 应用时间。建议不超过 3-4 层。