当员工离职后,很多管理员都是将离职用户的账户直接禁用。这样可以防止离职员工再次登录访问域内资源。但这样做对Exchange来说不是很明智的处理办法,最好的处理方式是在禁用AD账户的时候同时禁用Exchange邮箱的Ecp、OWA、POP、IMAP、ActiveSync、MAPI和邮件规则,这样就可以防止用户访问Exchange,又可以保留离职用户的邮箱数据。

我编写了一个简单的脚本,执行了如下几个功能:

1)、脚本可以执行自动将指定的AD User状态设置为Disabled。

2)、自动将指定账户的Exchange 邮箱功能进行禁用(禁用ECP、MAPI、POP、IMAP、owa、手机访问)

3)、自动将Exchange邮箱用户中的邮件规则状态设置为禁用状态。

4)、脚本可以单独对某个邮箱进行设置,也可以批量设置多个邮箱用户。

反向操作脚本名称为Enable-ExchangeMailbox .ps1

脚本内容:

Disable-ExchangeMailbox .ps1

===============================脚本开始================================================

param($UserName=$null,$CSV=$null)  
#导入AD 管理模块    
Import-Module ActiveDirectory

if($CSV -eq $null)  
{

        if($Username -eq $null -and $csv -eq $null)  
            { write-host "Please Input -Username or -csv;Example command:"Disable-ExchangeMailbox -Username test"  or  "Disable-ExchangeMailbox -CSV "c:\test.csv"" "}    
        else    
            {    
                #禁用AD账户    
                Disable-ADAccount -Identity $UserName 
                              
                #禁用邮箱的访问功能    
                Set-CASMailbox -Identity $UserName -OWAEnabled:$false -MAPIEnabled:$false -PopEnabled:$false -EcpEnabled:$false -ImapEnabled:$false -ActiveSyncEnabled:$false -confirm:$false    
               
                #禁用邮箱传输规则    
                 Get-InboxRule -Mailbox $UserName | Disable-InboxRule    
                                                   
               }    
}

ElseIf($CSV -ne $null)  
    {    
            $ImportUser=Import-Csv -Path $CSV    
            foreach($users in $ImportUser){    
                         #禁用AD账户    
                         Disable-ADAccount -Identity $users.SamAccountName 
                         #禁用邮箱的访问功能    
                         Set-CASMailbox -Identity $users.SamAccountName -OWAEnabled:$false -MAPIEnabled:$false  -EcpEnabled:$false -PopEnabled:$false -ImapEnabled:$false -ActiveSyncEnabled:$false -confirm:$false    
                                       
                         #禁用邮箱传输规则    
                         Get-InboxRule -Mailbox $users.SamAccountName  | Disable-InboxRule    
                                                  
                                                       
                                         }    
    }    

===============================脚本结束================================================

 

Enable-ExchangeMailbox .ps1

================================脚本开始==================================================

param($UserName=$null,$CSV=$null)  
#导入AD 管理模块    
Import-Module ActiveDirectory

if($CSV -eq $null)  
{

    if($Username -eq $null -and $csv -eq $null)  
         { write-host "Please Input -Username or -csv;Example command:"Enable-ExchangeMailbox -Username test"  or  "Enable-ExchangeMailbox -CSV "c:\test.csv"" "}    
    else    
        {    
        #启用AD账户    
        Enable-ADAccount -Identity $UserName 
       #启用邮箱的访问功能    
        Set-CASMailbox -Identity $UserName -OWAEnabled:$True -MAPIEnabled:$True -PopEnabled:$True  -EcpEnabled:$True -ImapEnabled:$True -ActiveSyncEnabled:$True -confirm:$false    
            
        #启用邮箱传输规则    
        Get-InboxRule -Mailbox $UserName | Enable-InboxRule    
                    
        }    
}

ElseIf($CSV -ne $null)  
    {    
         $ImportUser=Import-Csv -Path $CSV    
         foreach($users in $ImportUser){    
                 #启用AD账户    
                 Enable-ADAccount -Identity $users.SamAccountName 
                 
                #启用邮箱的访问功能    
                Set-CASMailbox -Identity $users.SamAccountName -OWAEnabled:$True -MAPIEnabled:$True   -EcpEnabled:$True -PopEnabled:$True -ImapEnabled:$True -ActiveSyncEnabled:$True -confirm:$false    
                                                       
                #启用邮箱传输规则    
                Get-InboxRule -Mailbox $users.SamAccountName | Enable-InboxRule    
                     
                                       }    
    }

===================================脚本结束========================

 

 

下面对此脚本的使用方法简单介绍如下。(请将邮件附件中文件Disable-ExchangeMailbox_v1.3.ps1.txt重命名为Disable-ExchangeMailbox_v1.3.ps1后使用)

1、 前提条件

要运行此脚本,需要运行的当前计算机上安装AD管理模块和Exchange Powershell管理工具。

2、 使用脚本更改禁用单个邮箱账户。

打开Exchange Powershell,进入到脚本所在目录,运行脚本: .\Disable-ExchangeMailbox_V1.3.ps1 –UserName Test011

clip_p_w_picpath001

其中参数:

UserName     为需要禁用的账户的登录名。

命令运行成功后查看结果:

clip_p_w_picpath002

clip_p_w_picpath003

使用OWA或ECP登录测试:

clip_p_w_picpath004

clip_p_w_picpath005

3、 使用脚本批量禁用大批量邮箱。

1)、需要首先准备一个CSV用户列表文件,CSV中只需要一列数值SamAccountName;CSV保存格式需要为unlicode。CSV文件内容如下:

clip_p_w_picpath007

2)、运行脚本批量禁用多大用户邮箱

打开Exchange Powershell,运行脚本:    .\Disable-ExchangeMailBox_V1.3.ps1 –CSV “C:\scripts\test.csv”

clip_p_w_picpath009

其中参数:

CSV        后面指定用户列表CSV文件的路径。

4、 回退操作

当某个用户邮箱使用脚本停用后,将来某天需要重新开启,可以使用另外一个脚本Enable-ExchangeMailBox_V1.3.ps1 去启用即可。

1)、启用单个邮箱用户

clip_p_w_picpath011

2)、启用多个邮箱用户

clip_p_w_picpath013