我在一个csv文件中有一个用户列表。此列表包含其主要SMTP地址不在我们组织内部的用户。这些是邮件转发到其他地方的邮件用户。
他们在AD帐户中有一个指向AD的代理地址,该代理地址指向该组织,这就是我要达到的目标。问题是proxyaddresses不会将电子邮件放在相同的位置,因此我需要以某种方式推断电子邮件。符合特定条件的人。
我真正想了解的是没有{smtp:}格式的first.last@example.com或first_last.example.com。
我已经能够生成代理地址列表,但同样,它只是一个列表。
$users = import-csv $BadEmailList | % {Get-ADUser $_.LoginID -Properties proxyaddresses}
Foreach ($u in $users) {
$proxyAddress = [ordered]@{}
$proxyAddress.add(“User”,$u.name)
For ($i = 0; $i -le $u.proxyaddresses.count; $i++)
{
$proxyAddress.add(“ProxyAddress_$i”,$u.proxyaddresses[$i])
} #end for
[pscustomobject]$proxyAddress |
Export-Csv -Path $ProxyAddressList -NoTypeInformation –Append -Force
Remove-Variable -Name proxyAddress } #end foreach
我想要得到的是类似于以下内容的东西:
用户ProxyAddress_0
---- -----
User1 first.last@example.com
答案 0 :(得分:1)
如果只想查找具有给定代理地址的特定AD用户(如标题所示),则应该能够使用LDAP过滤器,如下所示:
Get-ADUser -LDAPFilter "(&(objectCategory=person)(objectClass=user)(|(proxyAddresses=*:first.last@example.com)))"