IAdmExportExchangeMailboxOps
The IAdmExportExchangeMailboxOps interface provides methods for exporting Exchange mailboxes.
Inheritance: IDispatch
To export mailboxes, the account Adaxes uses to manage the AD domain where the mailbox is located must be assigned to the Mailbox Import Export role in Exchange.
Methods
-
Method
-
Description
-
CreateMailboxExportRequest()
-
Creates a request for exporting a user's Exchange mailbox to a Personal Storage Table (PST) file.
-
GetMailboxExportRequestInfo()
-
Gets information about a mailbox export request.
-
CancelMailboxExportRequest()
-
Cancels an ongoing mailbox export request.
-
DeleteMailboxExportRequest()
-
Deletes a mailbox export request.
Details
CreateMailboxExportRequest()
Creates a request for exporting a user's Exchange mailbox to a Personal Storage Table (PST) file.
string CreateMailboxExportRequest(string filePath,
int badItemLimit,
int largeItemLimit)
Parameters
- filePath - Specifies the full UNC path to the PST file that will contain the mailbox data (e.g. \\SERVER\Backups\JSmith.pst).
- badItemLimit - Specifies the maximum number of bad items that are allowed before the request fails. A bad item is a corrupt item in the mailbox that can't be exported to the PST file. Use 0 to not skip bad items. The valid input range for this parameter is from 0 through 2147483647.
- largeItemLimit - Specifies the number of large items to skip if the request encounters such items in the mailbox. A large item is a message in the mailbox that exceeds the maximum allowed message size. Use 0 to not skip any large items.
Return value
The method returns a request ID that can be used to track the mailbox export progress.
Examples
The following code sample initiates mailbox export and outputs the status of the operation after 30 seconds.
- PowerShell
-
[Reflection.Assembly]::LoadWithPartialName("Softerra.Adaxes.Adsi") $userDN = "CN=John Smith,CN=Users,DC=domain,DC=com" $filePath = "\\SERVER\Backups\JSmith.pst" # Connect to the Adaxes service $ns = New-Object "Softerra.Adaxes.Adsi.AdmNamespace" $service = $ns.GetServiceDirectly("localhost") # Bind to the user $user = $service.OpenObject("Adaxes://$userDN", $null, $null, 0) # Export the mailbox $requestId = $user.CreateMailboxExportRequest($filePath, 0, 0) # Wait 30 seconds Start-Sleep -Seconds 30 # Get mailbox export request info $requestInfo = $user.GetMailboxExportRequestInfo($requestId, $false) # Status Write-Host "Status: " -NoNewline switch ($requestInfo.Status) { "ADM_EXPORTMAILBOXSTATUS_NONE" { Write-Host "There are no export requests for the mailbox." } "ADM_EXPORTMAILBOXSTATUS_INPROCESS" { Write-Host "The mailbox is being exported." } "ADM_EXPORTMAILBOXSTATUS_SUCCEEDED" { Write-Host "The mailbox has been exported successfully." } "ADM_EXPORTMAILBOXSTATUS_FAILED" { Write-Host $requestInfo.FailureMessage } } - C#
-
using System; using System.Threading; using Softerra.Adaxes.Adsi; using Softerra.Adaxes.Interop.Adsi.Exchange; using Softerra.Adaxes.Interop.Adsi.PersistentObjects; class Program { static void Main(string[] args) { const string userPath = "Adaxes://CN=John Smith,CN=Users,DC=domain,DC=com"; const string filePath = @"\\SERVER\Backups\JSmith.pst"; // Connect to the Adaxes service AdmNamespace ns = new AdmNamespace(); IAdmService service = ns.GetServiceDirectly("localhost"); // Bind to the user IAdmExportExchangeMailboxOps user = (IAdmExportExchangeMailboxOps)service.OpenObject( userPath, null, null, 0); // Export the mailbox string requestId = user.CreateMailboxExportRequest(filePath, 0, 0); // Wait 30 seconds Thread.Sleep(30000); // Get mailbox export request info IAdmExportExchangeMailboxRequestInfo requestInfo = user.GetMailboxExportRequestInfo(requestId, false); // Status Console.Write("Status: "); switch (requestInfo.Status) { case ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_NONE: Console.WriteLine("There are no export requests for the mailbox."); break; case ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_INPROCESS: Console.WriteLine("The mailbox is being exported."); break; case ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_SUCCEEDED: Console.WriteLine("The mailbox has been exported successfully."); break; case ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_FAILED: Console.WriteLine(requestInfo.FailureMessage); break; } } }
GetMailboxExportRequestInfo()
Gets information about a mailbox export request.
IAdmExportExchangeMailboxRequestInfo GetMailboxExportRequestInfo(string requestId,
bool includeReport)
Parameters
- requestId - Specifies the ID of the mailbox export request to get information about.
- includeReport - Specifies whether to return additional details, which can be used for troubleshooting.
Examples
The following code sample initiates mailbox export and outputs the status of the operation after 30 seconds.
- PowerShell
-
[Reflection.Assembly]::LoadWithPartialName("Softerra.Adaxes.Adsi") $userDN = "CN=John Smith,CN=Users,DC=domain,DC=com" $filePath = "\\SERVER\Backups\JSmith.pst" # Connect to the the Adaxes service $ns = New-Object "Softerra.Adaxes.Adsi.AdmNamespace" $service = $ns.GetServiceDirectly("localhost") # Bind to the user $user = $service.OpenObject("Adaxes://$userDN", $null, $null, 0) # Export the mailbox $requestId = $user.CreateMailboxExportRequest($filePath, 0, 0) # Wait 30 seconds Start-Sleep -Seconds 30 # Get mailbox export request info $requestInfo = $user.GetMailboxExportRequestInfo($requestId, $true) # Status Write-Host "Status: " -NoNewline switch ($requestInfo.Status) { "ADM_EXPORTMAILBOXSTATUS_NONE" { Write-Host "There are no export requests for the mailbox." } "ADM_EXPORTMAILBOXSTATUS_SUCCEEDED" { Write-Host "The mailbox has been exported successfully." } "ADM_EXPORTMAILBOXSTATUS_FAILED" { Write-Host $requestInfo.FailureMessage } "ADM_EXPORTMAILBOXSTATUS_INPROCESS" { Write-Host "Items exported:" $requestInfo.ItemsTransferred Write-Host "Bytes exported:" $requestInfo.BytesTransferred Write-Host "Speed:" $requestInfo.BytesTransferredPerMinute "bytes per minute" Write-Host "Progress:" $requestInfo.PercentComplete "%" } } - C#
-
using System; using System.Threading; using Softerra.Adaxes.Adsi; using Softerra.Adaxes.Interop.Adsi.Exchange; using Softerra.Adaxes.Interop.Adsi.PersistentObjects; class Program { static void Main(string[] args) { const string userPath = "Adaxes://CN=John Smith,CN=Users,DC=domain,DC=com"; const string filePath = @"\\SERVER\Backups\JSmith.pst"; // Connect to the the Adaxes service AdmNamespace ns = new AdmNamespace(); IAdmService service = ns.GetServiceDirectly("localhost"); // Bind to the user IAdmExportExchangeMailboxOps user = (IAdmExportExchangeMailboxOps)service.OpenObject( userPath, null, null, 0); // Export the mailbox string requestId = user.CreateMailboxExportRequest(filePath, 0, 0); // Wait 30 seconds Thread.Sleep(30000); // Get mailbox export request info IAdmExportExchangeMailboxRequestInfo requestInfo = user.GetMailboxExportRequestInfo(requestId, true); // Status Console.Write("Status: "); switch (requestInfo.Status) { case ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_NONE: Console.WriteLine("There are no export requests for the mailbox."); break; case ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_SUCCEEDED: Console.WriteLine("The mailbox has been exported successfully."); break; case ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_FAILED: Console.WriteLine(requestInfo.FailureMessage); break; case ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_INPROCESS: Console.WriteLine("Items exported: " + requestInfo.ItemsTransferred); Console.WriteLine("Bytes exported: " + requestInfo.BytesTransferred); Console.WriteLine("Speed: " + requestInfo.BytesTransferredPerMinute); Console.WriteLine("Progress: " + requestInfo.PercentComplete + "%"); break; } } }
CancelMailboxExportRequest()
Cancels an ongoing mailbox export request.
void CancelMailboxExportRequest(string requestId)
Parameters
- requestId – specifies the identifier of the mailbox export request to cancel.
Examples
The following code sample initiates mailbox export and then cancels it.
- PowerShell
-
[Reflection.Assembly]::LoadWithPartialName("Softerra.Adaxes.Adsi") $userDN = "CN=John Smith,CN=Users,DC=domain,DC=com" $filePath = "\\SERVER\Backups\JSmith.pst" # Connect to the Adaxes service $ns = New-Object "Softerra.Adaxes.Adsi.AdmNamespace" $service = $ns.GetServiceDirectly("localhost") # Bind to the user $user = $service.OpenObject("Adaxes://$userDN", $null, $null, 0) # Export the mailbox $requestId = $user.CreateMailboxExportRequest($filePath, 0, 0) # Cancel mailbox export request $user.CancelMailboxExportRequest($requestId) - C#
-
using System; using Softerra.Adaxes.Adsi; using Softerra.Adaxes.Interop.Adsi.Exchange; using Softerra.Adaxes.Interop.Adsi.PersistentObjects; class Program { static void Main(string[] args) { const string userPath = "Adaxes://CN=John Smith,CN=Users,DC=domain,DC=com"; const string filePath = @"\\SERVER\Backups\JSmith.pst"; // Connect to the Adaxes service AdmNamespace ns = new AdmNamespace(); IAdmService service = ns.GetServiceDirectly("localhost"); // Bind to the user IAdmExportExchangeMailboxOps user = (IAdmExportExchangeMailboxOps)service.OpenObject( userPath, null, null, 0); // Export the mailbox string requestId = user.CreateMailboxExportRequest(filePath, 0, 0); // Cancel mailbox export request user.CancelMailboxExportRequest(requestId); } }
DeleteMailboxExportRequest()
Deletes a mailbox export request.
void DeleteMailboxExportRequest(string requestId)
Parameters
- requestId – specifies the identifier of the mailbox export request to delete.
Examples
The following code sample initiates mailbox export and deletes the associated mailbox export request when the export is completed.
- PowerShell
-
[Reflection.Assembly]::LoadWithPartialName("Softerra.Adaxes.Adsi") $userDN = "CN=John Smith,CN=Users,DC=domain,DC=com" $filePath = "\\SERVER\Backups\JSmith.pst" # Connect to the Adaxes service $ns = New-Object "Softerra.Adaxes.Adsi.AdmNamespace" $service = $ns.GetServiceDirectly("localhost") # Bind to the user $user = $service.OpenObject("Adaxes://$userDN", $null, $null, 0) # Export the mailbox $requestId = $user.CreateMailboxExportRequest($filePath, 0, 0) # Get mailbox export request info $requestInfo = $user.GetMailboxExportRequestInfo($requestId, $false) while ($requestInfo.Status -eq "ADM_EXPORTMAILBOXSTATUS_INPROCESS") { Start-Sleep -Seconds 20 $requestInfo = $user.GetMailboxExportRequestInfo($requestId, $false) } # Status Write-Host "Status: " -NoNewline switch ($requestInfo.Status) { "ADM_EXPORTMAILBOXSTATUS_SUCCEEDED" { Write-Host "The mailbox has been exported successfully." } "ADM_EXPORTMAILBOXSTATUS_FAILED" { Write-Host $requestInfo.FailureMessage } } # Delete mailbox export request $user.DeleteMailboxExportRequest($requestId) - C#
-
using System; using System.Threading; using Softerra.Adaxes.Adsi; using Softerra.Adaxes.Interop.Adsi.Exchange; using Softerra.Adaxes.Interop.Adsi.PersistentObjects; class Program { static void Main(string[] args) { const string userPath = "Adaxes://CN=John Smith,CN=Users,DC=domain,DC=com"; const string filePath = @"\\SERVER\Backups\JSmith.pst"; // Connect to the Adaxes service AdmNamespace ns = new AdmNamespace(); IAdmService service = ns.GetServiceDirectly("localhost"); // Bind to the user IAdmExportExchangeMailboxOps user = (IAdmExportExchangeMailboxOps)service.OpenObject( userPath, null, null, 0); // Export the mailbox string requestId = user.CreateMailboxExportRequest(filePath, 0, 0); // Get mailbox export request info IAdmExportExchangeMailboxRequestInfo requestInfo = user.GetMailboxExportRequestInfo(requestId, false); while (requestInfo.Status == ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_INPROCESS) { Thread.Sleep(30000); requestInfo = user.GetMailboxExportRequestInfo(requestId, false); } // Status Console.Write("Status: "); switch (requestInfo.Status) { case ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_SUCCEEDED: Console.WriteLine("The mailbox has been exported successfully."); break; case ADM_EXPORTMAILBOXSTATUS_ENUM.ADM_EXPORTMAILBOXSTATUS_FAILED: Console.WriteLine(requestInfo.FailureMessage); break; } // Delete mailbox export request user.DeleteMailboxExportRequest(requestId); } }
Requirements
Minimum required version: 2015