Exchange基于CSV批量清理移动设备允许列表并重添加指定设备的PowerShell方案咨询
Exchange环境基于CSV的PowerShell批量操作方案
前置准备:CSV映射表规范
所有批量操作均基于统一格式的CSV文件执行,需满足以下列要求:
MailboxIdentity列:填写可唯一定位CAS邮箱的标识(支持用户UPN、SamAccountName、主邮箱地址)DeviceID列:填写对应用户需要添加到允许列表的目标移动设备ID;单用户绑定多设备时,可在同一单元格用英文分号分隔多个ID
示例CSV内容:
MailboxIdentity,DeviceID
zhangsan@contoso.com,DeviceABC123
lisi@contoso.com,DeviceDEF456;DeviceGHI789
第一步:批量清空目标用户现有允许列表
操作提示:正式执行清空前,建议先导出所有目标用户当前的ActiveSyncAllowedDeviceIDs做离线备份,避免误操作丢失原有配置
执行以下脚本,对CSV中列出的所有用户批量清空原有允许列表,逻辑与单用户操作命令完全一致:
# 导入CSV映射表,替换为实际文件路径 $userDeviceMapping = Import-Csv -Path "C:\ExchangeOps\UserDeviceConfig.csv" foreach ($user in $userDeviceMapping) { # 跳过空行无效对象 if ([string]::IsNullOrWhiteSpace($user.MailboxIdentity)) { continue } # 执行清空操作 Set-CASMailbox -Identity $user.MailboxIdentity -ActiveSyncAllowedDeviceIDs $null -ErrorAction Continue }
第二步:批量重配对应设备到用户允许列表
脚本兼容单用户单设备、多设备的添加场景,与单用户添加命令语法完全匹配:
foreach ($user in $userDeviceMapping) { if ([string]::IsNullOrWhiteSpace($user.MailboxIdentity) -or [string]::IsNullOrWhiteSpace($user.DeviceID)) { continue } # 拆分分号分隔的多设备ID为标准数组,自动过滤空值 $targetDevices = $user.DeviceID -split ';' | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' } # 批量添加设备ID到允许列表 Set-CASMailbox -Identity $user.MailboxIdentity -ActiveSyncAllowedDeviceIDs @{add=$targetDevices} -ErrorAction Continue }
第三步:批量验证配置生效情况
脚本自动拉取CSV中所有用户的当前配置,与预期值做比对并导出结果,无需逐用户手动执行查询命令:
$verifyReport = @() foreach ($user in $userDeviceMapping) { if ([string]::IsNullOrWhiteSpace($user.MailboxIdentity)) { continue } # 获取用户当前的CAS邮箱配置 $currentCasConfig = Get-CASMailbox -Identity $user.MailboxIdentity -ErrorAction SilentlyContinue $currentAllowedIds = $currentCasConfig.ActiveSyncAllowedDeviceIDs -join ';' # 比对当前配置与预期值 $isConfigCorrect = $currentAllowedIds -eq $user.DeviceID $verifyReport += [PSCustomObject]@{ 对应用户标识 = $user.MailboxIdentity 预期允许设备ID = $user.DeviceID 实际当前允许设备ID = $currentAllowedIds 配置是否校验通过 = $isConfigCorrect } } # 导出校验结果为CSV,方便后续异常排查 $verifyReport | Export-Csv -Path "C:\ExchangeOps\ActiveSyncConfigVerify.csv" -NoTypeInformation -Encoding UTF8
补充说明:如需查看单用户全量ActiveSync相关配置,可直接执行参考命令Get-CASMailbox -Identity 目标用户标识 | fl activesync*获取详细配置项。
内容的提问来源于stack exchange,提问作者t0ky0banana
相关产品推荐
相关产品推荐

