luobo2ni 发表于 2018-9-2 11:39:00

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

  首先说下需求:
  用户这边用的是多域名邮箱,就是一个用户名下会有多个邮箱,只是后缀不同,比如@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
  
}
  需要注意的是,两个脚本可以放在一起,在一个文件中运行。他们是两个单独的循环。


页: [1]
查看完整版本: PowerShell批量分离SMTP邮箱,并以此创建新用户邮箱