首先说下需求:
用户这边用的是多域名邮箱,就是一个用户名下会有多个邮箱,只是后缀不同,比如@ny9s.com @ny9s.cn @ny9s.co.jp 这种。由于业务需要,需要给用户发送邮件的时候,分别显示不同的后缀。
这个需求其实解决起来不是很简单,因为我们知道Exchange中,用户不能和QQ邮箱一样,随时去切换自己的邮箱地址。你可以设定多个邮箱作为接收,但是没办法随时更改发送地址。
解决方法如下:
1、从用户邮箱中分离@ny9s.co.jp地址
2、利用用户中文名字+(奶油日本)作为中文名字,原英文名字+ny9sjapan作为新的邮件地址。批量设置一个密码1qaz@WSX
具体表现就是这样的
老邮箱:九叔 jiushu@ny9s.co.jp 登录名 jiushu
新邮箱:九叔(奶油日本) jiushu.ny9sjapan@ny9s.co.jp 登录名 jiushu.ny9sjapan
用PowerShell来实现,当然要借助到CSV,存为utf8格式,内容如下:
name,alias
九叔,jiushu
以下是分离的部分
#批量从csv中摘除某个特定邮件地址, #Powered By 九叔 cls #定义变量 $removeaddress = "@"+"ny9s.co.jp" Import-Csv -Path e:\rlpl.csv | foreach { #进入循环, $removeaddress = $_.alias+$removeaddress echo $removeaddress Set-Mailbox $_.name -EmailAddresses @{remove="$removeaddress"} #清洗变量,以免下一次循环时变量叠加 $removeaddress = "@"+"ny9sco.jp" }
以下是创建邮箱的部分
#批量从csv中创建邮箱, #Powered By 九叔 cls #配置密码 $pass = ConvertTo-SecureString -AsPlainText 1qaz@WSX -Force #ny9s是本地的UPN,ny9sjapan是分离的域名 $ny9s = "@"+"ny9s.com" $ny9sjapan = ".ny9sjapan"+"@"+"ny9sjapan.co.jp" #从csv中获取数据 Import-Csv -Path e:\rlpl.csv | foreach { #获取循环的upn和特定完整邮件地址 $cb = $_.alias+$ny9s $ccb = $_.alias+$ny9sjapan $ab = "(奶油日本)" $abb = $_.name+$ab #创建邮箱 New-Mailbox -Name $abb -Alias $_.alias -OrganizationalUnit 'ny9s.com/非用户账户/mailbox' -UserPrincipalName $cb -SamAccountName $_.alias -FirstName '' -Initials '' -LastName '' -Database 'jiuzige' -password $pass -ResetPasswordOnNextLogon $false -PrimarySmtpAddress $ccb #顺便加到特定的安全组中 Add-DistributionGroupMember -Identity "haojiyou" -Member $_.name }
需要注意的是,两个脚本可以放在一起,在一个文件中运行。他们是两个单独的循环。