You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

通过PowerShell为AD共享邮箱用户批量添加邮编及邮箱柜信息

没问题,我帮你写一个完整的PowerShell脚本,正好能解决批量给Active Directory里的共享邮箱用户(AD用户对象)设置PostalCodePOBox属性的需求。

完整实现脚本

# 定义存储用户名的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确实有直接对应PostalCodePOBox的参数,之前你可能没找到正确的参数名,这个脚本里直接用官方参数就可以生效。

注意事项

  • 运行脚本的机器需要安装RSAT Active Directory模块(可以在Windows功能中开启,或者在域控制器上直接运行)。
  • 执行脚本的账号需要具备修改AD用户属性的权限。
  • 建议先测试单个用户:比如临时修改脚本,只处理一个已知存在的用户,确认属性设置成功后再批量执行。

内容的提问来源于stack exchange,提问作者sj1986

火山引擎 最新活动