当员工离职后,很多管理员都是将离职用户的账户直接禁用。这样可以防止离职员工再次登录访问域内资源。但这样做对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
其中参数:
UserName 为需要禁用的账户的登录名。
命令运行成功后查看结果:
使用OWA或ECP登录测试:
3、 使用脚本批量禁用大批量邮箱。
1)、需要首先准备一个CSV用户列表文件,CSV中只需要一列数值SamAccountName;CSV保存格式需要为unlicode。CSV文件内容如下:
2)、运行脚本批量禁用多大用户邮箱
打开Exchange Powershell,运行脚本: .\Disable-ExchangeMailBox_V1.3.ps1 –CSV “C:\scripts\test.csv”
其中参数:
CSV 后面指定用户列表CSV文件的路径。
4、 回退操作
当某个用户邮箱使用脚本停用后,将来某天需要重新开启,可以使用另外一个脚本Enable-ExchangeMailBox_V1.3.ps1 去启用即可。
1)、启用单个邮箱用户
2)、启用多个邮箱用户