今天同事让我生成一个报表,列出用户的主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 |
本文出自 “麻婆豆腐” 博客