PowerShell批量分离SMTP邮箱,并以此创建新用户邮箱

首先说下需求:

用户这边用的是多域名邮箱,就是一个用户名下会有多个邮箱,只是后缀不同,比如@ny9s.com  @ny9s.cn  @ny9s.co.jp  这种。由于业务需要,需要给用户发送邮件的时候,分别显示不同的后缀。

这个需求其实解决起来不是很简单,因为我们知道Exchange中,用户不能和QQ邮箱一样,随时去切换自己的邮箱地址。你可以设定多个邮箱作为接收,但是没办法随时更改发送地址。


解决方法如下:

1、从用户邮箱中分离@ny9s.co.jp地址

2、利用用户中文名字+(奶油日本)作为中文名字,原英文名字+ny9sjapan作为新的邮件地址。批量设置一个密码1qaz@WSX

具体表现就是这样的

老邮箱:九叔   [email protected] 登录名  jiushu

新邮箱:九叔(奶油日本) [email protected]  登录名 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
}


需要注意的是,两个脚本可以放在一起,在一个文件中运行。他们是两个单独的循环。

本文出自 “九叔-微软私有云” 博客,请务必保留此出处http://jiushu.blog.51cto.com/972756/1662275

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。