今天同事让我生成一个报表,列出用户的主SMTP地址后缀是@aus.ddb.com的用户。
Get-ADUser可以直接获取相关信息,不过主SMTP是隐藏在ProxyAddress这个属性里面的,如果1个用户有多个邮件地址,大写的SMTP的那个就是主地址。
脚本如下,获取所有用户的信息,然后创建一个空对象,对每一个对象的属性进行处理,把对应的值放入对象, 最后过滤结果输出。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
$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
|
本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1700595,如需转载请自行联系原作者