从ProxyAddresses中提取用户对象的主SMTP

时间:2019-10-17 13:26:01

标签: powershell active-directory

我有一个PS脚本,它从每天早上从HR获取的CSV文件中提取员工ID,以确保通过添加/更改他们的电子邮件,extensionAttribute 1和ProxyAddresses来确保自动化正常运行。我希望它仅检查主SMTP而不是所有ProxyAddress,但遇到麻烦。

Import-Csv "C:\temp\HRfeed101519.csv" | foreach {Get-ADUser $_.EmpID -Properties * | fL mail, extensionattribute1, Proxyaddresses}

1 个答案:

答案 0 :(得分:3)

ProxyAddresses字段使用PrimarySMTPAddress标签标识SMTP:。因此,您可以专门查询该内容并将其作为计算所得的属性输出。

Get-ADUser $_.EmpID -prop ProxyAddresses,Mail,ExtensionAttribute1 |
    Select-Object Mail,ExtensionAttribute1,ProxyAddresses,
    @{Name='PrimarySMTPAddress';Expression={$_.ProxyAddresses -cmatch '^SMTP:' -creplace 'SMTP:'}}

-cmatch-creplace执行 区分大小写 的正则​​表达式匹配。


注意:由于存储在ProxyAddresses中的集合大小,输出的默认表显示可能不会显示所有属性和值。您可以将输出通过管道传递到Format-List,以查看所有属性, ,但不要将Format-List输出存储在变量中。