通过PowerShell为AD共享邮箱用户批量添加邮编及邮箱柜信息
没问题,我帮你写一个完整的PowerShell脚本,正好能解决批量给Active Directory里的共享邮箱用户(AD用户对象)设置PostalCode和POBox属性的需求。
完整实现脚本
# 定义存储用户名的TXT文件路径,请替换为你实际的文件路径 $usernameFile = "C:\Scripts\usernames.txt" # 读取文件内容,拆分所有空白字符(空格、换行、制表符)分隔的用户名,过滤空条目 $usernames = Get-Content $usernameFile | ForEach-Object { $_ -split '\s+' } | Where-Object { $_ -ne '' } # 遍历每个用户名,批量设置AD用户属性 foreach ($username in $usernames) { try { # 使用Set-ADUser直接指定PostalCode和POBox参数 Set-ADUser -Identity $username -PostalCode "01010101" -POBox "000" -ErrorAction Stop Write-Host "✅ 成功为用户 $username 设置属性" -ForegroundColor Green } catch { Write-Host "❌ 处理用户 $username 时出错: $($_.Exception.Message)" -ForegroundColor Red } }
脚本细节说明
- 文件读取逻辑:不管你的
usernames.txt是一行用空格分隔多个用户名,还是每行一个用户名,脚本都能正确解析,同时会自动过滤空行/空字符串,避免无效操作。 - 错误处理:加入了
try/catch块,遇到用户不存在、权限不足等问题时会输出明确的错误信息,不会中断整个批量操作。 - 参数对应:
Set-ADUser确实有直接对应PostalCode和POBox的参数,之前你可能没找到正确的参数名,这个脚本里直接用官方参数就可以生效。
注意事项
- 运行脚本的机器需要安装RSAT Active Directory模块(可以在Windows功能中开启,或者在域控制器上直接运行)。
- 执行脚本的账号需要具备修改AD用户属性的权限。
- 建议先测试单个用户:比如临时修改脚本,只处理一个已知存在的用户,确认属性设置成功后再批量执行。
内容的提问来源于stack exchange,提问作者sj1986




