如何通过PowerShell脚本调整域内用户个人资料的具体属性设置?
- 内容介绍
- 相关推荐
本文共计788个文字,预计阅读时间需要4分钟。
相关主题
powershell 是管理 active directory 域用户属性最高效的方式之一,尤其适合批量修改或自动化操作。核心命令是 set-aduser,它能直接更新用户的个人资料字段(如姓名、电话、部门、职位、地址等),无需打开图形界面。
确认前提条件与权限
执行前请确保:
- 已安装 Active Directory 模块(通常随 RSAT 工具包部署,Windows Server 默认自带);
- 当前账户对目标用户具有 写入权限(一般需域管理员或具备 OU 级别委派权限);
- 已通过
Import-Module ActiveDirectory加载模块; - 域控制器网络连通正常,且
Get-ADUser能成功查询到目标用户。
修改单个用户的常见个人资料属性
使用 -Identity 指定用户(支持 SAM 账户名、DistinguishedName 或 UPN),再用参数传入新值。例如:
Set-ADUser -Identity "zhangsan" -DisplayName "张三" -Title "高级开发工程师" -Department "信息技术部" -OfficePhone "010-8888XXXX" -StreetAddress "北京市朝阳区XX路1号" -City "北京" -PostalCode "100000"
注意:参数名严格区分大小写,常用字段对应关系如下:
-
-DisplayName→ 显示名称(登录后在开始菜单、邮件客户端中显示的名称) -
-Title→ 职务 -
-Department→ 部门 -
-OfficePhone→ 办公电话(会同步到 Outlook 地址簿) -
-StreetAddress/-City/-PostalCode→ 地址信息 -
-Description→ 描述(非必填,常用于备注)
批量修改多个用户(基于 CSV 文件)
准备一个 CSV 文件(如 users.csv),内容格式如下:
SAMAccountName,DisplayName,Title,Department,OfficePhone lisi,李四,测试工程师,质量保障部,021-6666XXXX wangwu,王五,产品经理,产品中心,0755-9999XXXX
运行脚本一次性更新:
Import-Csv "C:\temp\users.csv" | ForEach-Object { Set-ADUser -Identity $_.SAMAccountName ` -DisplayName $_.DisplayName ` -Title $_.Title ` -Department $_.Department ` -OfficePhone $_.OfficePhone }
建议先加 -WhatIf 参数预览执行效果,确认无误后再正式运行。
注意事项与常见问题
特别提醒:
- 修改
-UserPrincipalName或-SamAccountName需额外谨慎,可能影响登录和邮箱路由; - 中文字符需确保 PowerShell 控制台编码为 UTF-8(可运行
[Console]::OutputEncoding = [Text.UTF8Encoding]::new()设置); - 若提示“参数无法绑定”,检查属性名是否拼错、值是否为空字符串(某些属性不接受空值,可用
$null清除); - Exchange 属性(如邮箱地址、邮箱昵称)需用
Set-Mailbox(需 Exchange 远程 PowerShell),Set-ADUser不生效。
本文共计788个文字,预计阅读时间需要4分钟。
相关主题
powershell 是管理 active directory 域用户属性最高效的方式之一,尤其适合批量修改或自动化操作。核心命令是 set-aduser,它能直接更新用户的个人资料字段(如姓名、电话、部门、职位、地址等),无需打开图形界面。
确认前提条件与权限
执行前请确保:
- 已安装 Active Directory 模块(通常随 RSAT 工具包部署,Windows Server 默认自带);
- 当前账户对目标用户具有 写入权限(一般需域管理员或具备 OU 级别委派权限);
- 已通过
Import-Module ActiveDirectory加载模块; - 域控制器网络连通正常,且
Get-ADUser能成功查询到目标用户。
修改单个用户的常见个人资料属性
使用 -Identity 指定用户(支持 SAM 账户名、DistinguishedName 或 UPN),再用参数传入新值。例如:
Set-ADUser -Identity "zhangsan" -DisplayName "张三" -Title "高级开发工程师" -Department "信息技术部" -OfficePhone "010-8888XXXX" -StreetAddress "北京市朝阳区XX路1号" -City "北京" -PostalCode "100000"
注意:参数名严格区分大小写,常用字段对应关系如下:
-
-DisplayName→ 显示名称(登录后在开始菜单、邮件客户端中显示的名称) -
-Title→ 职务 -
-Department→ 部门 -
-OfficePhone→ 办公电话(会同步到 Outlook 地址簿) -
-StreetAddress/-City/-PostalCode→ 地址信息 -
-Description→ 描述(非必填,常用于备注)
批量修改多个用户(基于 CSV 文件)
准备一个 CSV 文件(如 users.csv),内容格式如下:
SAMAccountName,DisplayName,Title,Department,OfficePhone lisi,李四,测试工程师,质量保障部,021-6666XXXX wangwu,王五,产品经理,产品中心,0755-9999XXXX
运行脚本一次性更新:
Import-Csv "C:\temp\users.csv" | ForEach-Object { Set-ADUser -Identity $_.SAMAccountName ` -DisplayName $_.DisplayName ` -Title $_.Title ` -Department $_.Department ` -OfficePhone $_.OfficePhone }
建议先加 -WhatIf 参数预览执行效果,确认无误后再正式运行。
注意事项与常见问题
特别提醒:
- 修改
-UserPrincipalName或-SamAccountName需额外谨慎,可能影响登录和邮箱路由; - 中文字符需确保 PowerShell 控制台编码为 UTF-8(可运行
[Console]::OutputEncoding = [Text.UTF8Encoding]::new()设置); - 若提示“参数无法绑定”,检查属性名是否拼错、值是否为空字符串(某些属性不接受空值,可用
$null清除); - Exchange 属性(如邮箱地址、邮箱昵称)需用
Set-Mailbox(需 Exchange 远程 PowerShell),Set-ADUser不生效。

