今天同事让我生成一个报表,列出用户的主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

本文出自 “麻婆豆腐” 博客
发表评论