文章摘要
这篇文章主要介绍了使用PowerShell脚本来从Active Directory中提取和处理用户信息。脚本的主要操作包括:
1. 使用`Get-ADUser`获取指定区域(如`ou=sydney,dc=omnicom,dc=com,dc=au`)的用户。
2. 过滤用户,排除包含`proxyAddresses`属性中以`*`开头的记录。
3. 从每个用户的`proxyAddresses`中提取首字母为`SMTP:`的地址,记录为`primarySMTPAddress`。
4. 将提取的用户信息按名称汇总。
5. 进一步筛选,只保留`primarySMTPAddress`包含特定模式(如`*aus.ddb.com*`)的用户。
该脚本的作用是自动化提取和处理Active Directory中的用户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
$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
© 版权声明
文章版权归作者所有,未经允许请勿转载。