今天同事让我生成一个报表,列出用户的主SMTP地址后缀是@aus.ddb.com的用户。
Get-ADUser可以直接获取相关信息,不过主SMTP是隐藏在ProxyAddress这个属性里面的,如果1个用户有多个邮件地址,大写的SMTP的那个就是主地址。
脚本如下,获取所有用户的信息,然后创建一个空对象,对每一个对象的属性进行处理,把对应的值放入对象, 最后过滤结果输出。
$users = Get-ADUser -Filter {
proxyAddresses -like '*'}
-SearchBase "ou=sydney,dc=omnicom,dc=com,dc=au" -Properties proxyAddresses $pp=$null$pp=@{
'name'=$null;
'primarysmtp'=$null}
$obj=New-Object -TypeName psobject -Property $pp $result=@() foreach($user in $users){
$primarySMTPAddress = "" foreach ($address in $user.proxyAddresses) {
if (($address.Length -gt 5) -and ($address.SubString(0,5) -ceq 'SMTP:') ) {
$primarySMTPAddress = $address.SubString(5) break }
}
$objtemp=$obj | select * $objtemp.name=$user.Name $objtemp.primarysmtp=$primarySMTPAddress $result+=$objtemp }
$result | Where-Object{
$_.primarysmtp -like "*aus.ddb.com*"}
| sort Name
本文出自 “麻婆豆腐” 博客