我负责创build一个脚本,用于轮询AD以获取特定信息,然后根据这些信息创build适当的电子邮件地址。 请允许我给你一点破损。
我的公司有5个电子邮件域,我们有。 所有5个都允许通过交换,但我们现在只使用一个。 目前,每个人都使用默认的company.com电子邮件地址进行设置。 我们有几个不同的品牌,我们希望将我们的用户细分,以提高电子邮件的传输能力,以便在营销决定发布大量电子邮件时帮助我们的企业电子邮件不受IP信誉的影响。
我pipe理7台Exchange 2010 DAG服务器(3个生产,3个DR,1个3天延迟)。 在PowerShell中我相当不错,并且find了我需要的代码块,所以我并不是在寻找一个完整的脚本,但是我遇到了一些麻烦。
企业想要做的是有一个脚本读取AD中的一个属性,然后基于该属性将其分配给正确的品牌。 所以,比如说。 如果AD用户具有“营销”属性,则他们将获得marketing.com电子邮件地址作为其主要答复地址,同时仍将其公司电子邮件地址保留为次要地址。 如果AD用户具有“build筑产品”作为他们的属性,building.com将是他们的回复电子邮件地址等。
我可以让PowerShell为AD查询一个属性。 我可以得到它来创build一个电子邮件。 我有麻烦找出如何让它select其他域名之一,而不是默认company.com的电子邮件地址。
任何有识之士将不胜感激。
这是未经testing的,但应该让你在正确的方向。
$peeps = get-aduser -filter * -properties department for-each ($person in $peeps){ ##Checks Department and sets new email if ($person.department -eq "building"){$email = $person.firstname+'.'+$person.surname +'@buildings.com'} elseif ($person.department -eq "otheroption"){$email = $person.firstname+'.'+$person.surname +'@whatever.com'} ##Changes existing email addresses to aliases and sets new email from above as primary $person.user = $user $smtp=get-aduser $user.samaccountname -properties proxyaddresses |select-object proxyaddresses $newsmtp = @() foreach($addr in $smtp.proxyaddresses){ if ($addr -notmatch $email -and $addr -cmatch "SMTP"){ $newsmtp = $newsmtp + $addr.replace("SMTP","smtp") } elseif ($addr -notmatch $email -and $addr -cnotmatch "SMTP"){$newsmtp = $newsmtp + $addr} } $emailproxy = 'SMTP:'+$email $newsmtp = $newsmtp + $emailproxy set-aduser $user.samaccountname -replace @{proxyaddresses=@($newsmtp)} }