请求协助修改PowerShell脚本筛选特定ProxyAddresses的AD用户
解决AD用户筛选及导出问题
修改后的完整脚本
$Output = "C:\your\path\output.csv" # 替换为实际输出路径 Get-ADUser -SearchBase "OU=YourOU,DC=domain,DC=com" -Filter * -Properties extensionAttribute2, EmailAddress, sAMAccountName, UserPrincipalName, proxyaddresses | # 筛选包含指定格式代理地址的用户 Where-Object { $_.ProxyAddresses -match '^SMTP:.+@domain\.mail\.onmicrosoft\.com$' } | Select-Object extensionAttribute2, EmailAddress, sAMAccountName, UserPrincipalName, @{ Name = "ProxyAddresses" Expression = { ($_.ProxyAddresses -match '^SMTP:') -join ";" } } | Sort-Object ProxyAddresses -Descending | Export-CSV -Path $Output -NoTypeInformation
关键修改说明
- 筛选逻辑:通过
Where-Object配合正则表达式^SMTP:.+@domain\.mail\.onmicrosoft\.com$精准匹配目标用户:^SMTP::匹配AD中主邮箱地址的标准大写前缀.+:匹配任意长度的用户名部分@domain\.mail\.onmicrosoft\.com$:匹配固定域名后缀,.用\.转义避免正则误匹配
- 修正计算属性:原脚本中
-join ";""是错误写法,改为-join ";"确保多个SMTP地址用分号正常分隔 - 路径替换:记得将
$Output和-SearchBase的值替换为你的实际路径和AD搜索范围
内容的提问来源于stack exchange,提问作者talway
相关产品推荐
相关产品推荐

