Purging a Disconnected Mailbox
In order to truly delete a mailbox out of the store, you must purge the mailbox. The following code shows how to purge a mailbox:
' This code purges a deleted mailbox.
Option Explicit
Dim strComputer, strMailbox, objWMI, objDiscMbx, objMbx
' ------ SCRIPT CONFIGURATION ------
strComputer = "<Exchange Server>" 'e.g. ExchServer2
strMailbox = "<Mailbox Alias>" 'e.g. DrAmy
' ------ END CONFIGURATION ---------
set objWMI = GetObject("winmgmts:\\" & strComputer & _
"\root\MicrosoftExchangeV2")
set objDiscMbx = objWMI.ExecQuery("Select * from Exchange_Mailbox WHERE " _
& "MailboxDisplayName='" & strMailbox & "'",,48)
for each objMbx in objDiscMbx
objMbx.Purge
next
Wscript.Echo "Successfully purged mailbox."Tip
Purging a mailbox requires Exchange Service Administrator permissions.
This script doesn't need CDOEXM; it actually does what it needs to do through Windows Management Instrumentation (WMI). Chapter 29 is entirely devoted to WMI, so the documentation here will be sparse. Suffice to say, this script executes a query against the Exchange server using the WMI Exchange_Mailbox class, which is available in Exchange 2003 only, and asks for all mailboxes with the specified name. It then loops through the returned mailboxes and executes the Purge method against each which effectively removes it from the store. After a purge, the mailbox can only be recovered by restoring from a backup. If there have been multiple mailboxes disconnected from the given ...