在Powershell管理系列(七)删除Exchange用户邮箱中多余的电子邮件地址
http://yuntcloud.blog.51cto.com/1173839/1601895
博文中我给大家介绍了三种删除Exchange用户邮箱中多余的邮件地址,后面发表到winos论坛的时候,winos论坛博文地址http://bbs.winos.cn/thread-138202-1-1.html, 教主给我留言说要考虑各种格式的邮件地址,如*@邮箱名,不能仅仅限于格式:别名@邮箱名,于是我针对这个情况做了改进,步骤如下:
步骤1、首先我们模仿下这种情况,将原来的ping.zhou@51service.com.cn ,改成terry@51service.com.cn ,如下图:
步骤2、执行如下脚本:
$mailbox=get-mailbox -resultsize unlimited
foreach ($i in $mailbox)
{
$array=new-object system.collections.arraylist
$address=$i.emailaddresses
foreach ($j in $address){if ($j.addressstring -like "*@51*"){[void]$array.add($j.addressstring)}}
foreach ($k in $array) {set-mailbox $i -emailaddresses @{remove=$k}}
}
步骤3、步骤2中的[void]$array.add($j.addressstring)前面的[void]是不显示数组的个数,我们可以对比下不加参数的执行结果。数字为0代表数组里面有一个字符。
步骤4、以下是数组的一个示例说明。
$array=New-Object System.Collections.ArrayList----新建一个数组并赋值给$array
$array.add()--------------------------------------------向数组添加字符
0--------------------------------------------------------代表数组里面有1个字符
1--------------------------------------------------------代表数组里面有2个字符
2--------------------------------------------------------代表数组里面有3个字符
$array--------------------------------------------------输出数组显示到屏幕
[void]$array--------------------------------------------不显示值,不是初始化值为空
步骤5、查看执行结果,达到了我们的删除*@邮箱名的要求。
本文转自 zhou_ping 51CTO博客,原文链接:http://blog.51cto.com/yuntcloud/1604407,如需转载请自行联系原作者