Powershell管理系列(九)删除Exchange用户邮箱中多余的电子邮件地址

在Powershell管理系列(七)删除Exchange用户邮箱中多余的电子邮件地址

http://yuntcloud.blog.51cto.com/1173839/1601895

博文中我给大家介绍了三种删除Exchange用户邮箱中多余的邮件地址,后面发表到winos论坛的时候,winos论坛博文地址http://bbs.winos.cn/thread-138202-1-1.html, 教主给我留言说要考虑各种格式的邮件地址,如*@邮箱名,不能仅仅限于格式:别名@邮箱名,于是我针对这个情况做了改进,步骤如下:

步骤1、首先我们模仿下这种情况,将原来的[email protected] ,改成[email protected] ,如下图:

Powershell管理系列(九)删除Exchange用户邮箱中多余的电子邮件地址

步骤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}}
}

Powershell管理系列(九)删除Exchange用户邮箱中多余的电子邮件地址

步骤3、步骤2中的[void]$array.add($j.addressstring)前面的[void]是不显示数组的个数,我们可以对比下不加参数的执行结果。数字为0代表数组里面有一个字符。

Powershell管理系列(九)删除Exchange用户邮箱中多余的电子邮件地址

步骤4、以下是数组的一个示例说明。

$array=New-Object System.Collections.ArrayList----新建一个数组并赋值给$array

$array.add()--------------------------------------------向数组添加字符

0--------------------------------------------------------代表数组里面有1个字符

1--------------------------------------------------------代表数组里面有2个字符

2--------------------------------------------------------代表数组里面有3个字符

$array--------------------------------------------------输出数组显示到屏幕

[void]$array--------------------------------------------不显示值,不是初始化值为空

Powershell管理系列(九)删除Exchange用户邮箱中多余的电子邮件地址

步骤5、查看执行结果,达到了我们的删除*@邮箱名的要求。

Powershell管理系列(九)删除Exchange用户邮箱中多余的电子邮件地址



本文转自 zhou_ping 51CTO博客,原文链接:http://blog.51cto.com/yuntcloud/1604407,如需转载请自行联系原作者