如何从多值代理地址中查找/导出仅一个值(主 SMTP)

如何从多值代理地址中查找/导出仅一个值(主 SMTP)

我有一个脚本,可以搜索公司和代理地址属性中的值。

Get-ADUser -Filter * -SearchBase 'OU=Stu,OU=LOWA,OU=IDLOWA,DC=ad,DC=ju,DC=com' -Properties company,proxyaddresses | select company, @{L='ProxyAddress'; E={$_.proxyaddresses -join"; "}}

Company 有两个字符,但 Proxy Addresses 是多值的,例如:

smtp:[email protected],SMTP:[email protected],smtp:[email protected]

或者

smtp:[email protected],SMTP:[email protected]

或者

SMTP:[email protected]

我需要将主 SMTP 地址导出/保存到变量或 csv 文件,这意味着SMTP:xxx@xxx

谢谢

答案1

此代码将获取给定 searchbase 参数的所有主要 SMTP 地址,并将输出通过管道传输到 TXT 文件。可能需要进行一些调整才能获得更多信息,但我认为这足以让您开始:

$users = Get-ADUser  -Filter * -SearchBase 'OU=Stu,OU=LOWA,OU=IDLOWA,DC=ad,DC=ju,DC=com' -Properties proxyaddresses
$primarySMTPAddress = @()
foreach ($address in $users.proxyAddresses)
{
    if (($address.Length -gt 5) -and ($address.SubString(0,5) -ceq 'SMTP:'))
    {
        $primarySMTPAddress += $address.SubString(5)
    }
}

$primarySMTPAddress | out-file -Pathg C:\tmp\PrimarySMTPAdresses.txt

将输出文件路径更改为有效位置。

相关内容