The script can be used in business rules, custom commands and scheduled tasks to export the content of an Exchange mailbox archive to a Personal Storage Table (PST) file. To add it to your rule, command or task, use the Run a program or PowerShell script action.
Note: To be able to export mailbox archive, the Adaxes service account must be assigned to the Mailbox Import Export role in Exchange. To use a different account, specify the credentials of the necessary account it in the Run as section of your Run a program or PowerShell script action.
Parameters:
- $exchangeServer - Specifies the Fully Qualified Domain Name (FQDN) of the Exchange Server that will be used to perform the export.
- $filePath - Specifies the path to the PST file with the archive contents.
You can use value references in the PST file path. When the script will be executed, the value references will be replaced with property values of the user on which it is executed. For example, if you specify \\server\share\Archive\%username%.pst, and the script is executed on a user whose username is jdoe, the path will be \\server\share\Archive\jdoe.pst.
PowerShell
$exchangeServer = "exchangeserver.domain.com" # TODO: modify me
$filePath = "\\server\share\Archive\%username%.pst" # TODO: modify me
try
{
# Connect to the Exchange Server
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionURI "http://$exchangeServer/PowerShell"
Import-PSSession $session -DisableNameChecking -AllowClobber -CommandName "Get-MailboxExportRequest", "Remove-MailboxExportRequest", "New-MailboxExportRequest"
# Clear all previous export requests with the same name
Get-MailboxExportRequest -Name "%username%" | Remove-MailboxExportRequest -Confirm:$False
try
{
# Initiate export of the mailbox archive
New-MailboxExportRequest "%username%" -FilePath $filePath -Name "%username%" -IsArchive -ErrorAction Stop
}
catch
{
$Context.LogMessage("Failed to initiate export of mailbox archive for %username%. Error message: " + $_.Exception.Message, "Warning")
}
}
finally
{
# Close connection to the Exchange Server
if ($session) { Remove-PSSession $session }
}
Failed to initiate export of mailbox archive for %username%. Error message: The operation couldn't be performed
because '%username%' couldn't be found.
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException
+ PSComputerName : localhost
Hello,
Could you, please, specify how exactly you are executing the script? A screenshot of the Custom Command, Scheduled Task or Business Rule executing the script would be much appreciated. You can send it to our support email support[at]adaxes.com.
Also, could you provide us with the exact script you are using with all the modifications in TXT format?