Windows Server 2012中如何在用户主路径中引用组织单元(OU)
基于AD OU层级配置Windows Server 2012 R2用户主路径方案
你使用的是Windows Server 2012 R2域控环境,AD层级为「站点→部门→用户」,预期主路径格式为\\WinServer-DC\sharingZone\%ou%\%username%,可通过以下步骤完成配置:
步骤1:提前配置共享根目录权限
- 首先在域控或指定文件服务器的NTFS分区新建根文件夹
sharingZone - 共享权限配置:给Authenticated Users组授予「更改、读取」权限
- NTFS权限配置:给Authenticated Users组授予「读取、列出文件夹内容」权限,同时新增仅作用于「此文件夹和子文件夹」的「创建文件夹/附加数据」权限,避免用户越权访问其他OU的目录
步骤2:通过PowerShell批量配置用户主路径
AD原生没有直接可用的%ou%变量,需要通过脚本提取用户所属的上级部门OU名称,再批量赋值给用户主路径属性,可直接使用以下脚本:
# 导入AD管理模块 Import-Module ActiveDirectory # 遍历指定OU下的所有域用户,需替换为你实际的根站点OU可分辨名称 Get-ADUser -Filter * -SearchBase "OU=你的根站点OU名称,DC=你的域名,DC=后缀" -Properties CanonicalName | ForEach-Object { # 从用户的CanonicalName属性提取部门OU名称,对应层级「域名/站点/部门/用户」,分割后取倒数第2位即为部门名 $canonicalParts = $_.CanonicalName.Split('/') $ouName = $canonicalParts[-2] $userName = $_.SamAccountName # 构造用户主路径 $homePath = "\\WinServer-DC\sharingZone\$ouName\$userName" # 给用户配置主路径和挂载盘符,盘符默认设为Z盘可自行修改 Set-ADUser $_ -HomeDrive "Z:" -HomeDirectory $homePath # 可选:自动创建用户目录并配置专属权限 if (-not (Test-Path $homePath)) { New-Item -Path $homePath -ItemType Directory | Out-Null $acl = Get-Acl $homePath $permissionRule = New-Object System.Security.AccessControl.FileSystemAccessRule("$env:USERDOMAIN\$userName","Modify", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($permissionRule) Set-Acl $homePath $acl } }
注意事项
- 运行脚本前需要先替换
OU=你的根站点OU名称,DC=你的域名,DC=后缀为你实际的AD根站点可分辨名称 - 如果你的AD层级中部门OU下还有子OU,可调整
$canonicalParts[-2]的索引值,匹配你需要提取的OU层级 - 建议先拿单个测试用户验证脚本逻辑,确认路径和权限配置正确后再全量执行
内容的提问来源于stack exchange,提问作者Baba Hs
相关产品推荐
相关产品推荐

