Scripting examples > Job creation scripts > Creating an Exchange job

Creating an Exchange job

The following sample script will create a simple Exchange job. You will need to modify this script to fit your environment and configuration. If your source or target is a cluster, additional parameters must be added.

Be sure and expand your screen wide enough so that lines in the script file do not wrap.

 

# Sample script to create a simple Exchange job

 

# Specify the variables to be used in the script

 

     # Source server and credentials

     $DtSourceName = "alpha"

     $DtSourceUserName = "domain\administrator"

     $DtSourcePassword = "password"

 

     # Target server and credentials

     $DtTargetName = "beta"

     $DtTargetUserName = "domain\administrator"

     $DtTargetPassword = "password"

 

     # Exchange and domain credentials

     $DtExchangeCreds = "domain\administrator"

     $DtDomainCreds = "domain\administrator"

 

     # Type of workload you will be protecting and type of job you will be creating

     $DtWorkloadType = "Exchange"

     $DtJobType = "Exchange"

 

# Import the Double-Take PowerShell module

# This may be \Service\ or \Console\ depending on your installation

Import-Module "C:\Program Files\Vision Solutions\Double-Take\Console\DoubleTake.PowerShell.dll"

 

# Create source and target objects

$DtSource = New-DtServer -Name $DtSourceName -UserName $DtSourceUserName -Password $DtSourcePassword

$DtTarget = New-DtServer -Name $DtTargetName -UserName $DtTargetUserName -Password $DtTargetPassword

 

# Set Exchange and domain credentials

$DtExchangeCredentials = New-Object DoubleTake.Common.Contract.Credentials $(Get-Credential $DtExchangeCreds)

$DtDomainCredentials = New-Object DoubleTake.Common.Contract.Credentials $(Get-Credential $DtDomainCreds)

 

# Create a workload

$DtWorkloadGUID = New-DtWorkload -ServiceHost $DtSource -WorkloadTypeName $DtWorkloadType

 

# Add what you want to protect to the workload

$DtLogicalItem = Get-DtLogicalItem -ServiceHost $DtSource -WorkloadId $DtWorkloadGUID | Select-Object -First 1

$DtProtectionItems = Set-DtLogicalItemSelection -ServiceHost $DtSource -WorkloadId $DtWorkloadGuid -LogicalPath $DtLogicalItem.Path

$DtWorkload = Get-DtWorkload -ServiceHost $DtSource -WorkloadId $DtWorkloadGUID

 

# Get the default job options that will be used to create the job

$DtJobOptions = Get-DtRecommendedJobOptions -ServiceHost $DtTarget -Source $DtSource -JobType $DtJobType -Workload $DtWorkload

 

# Specify the Exchange and domain credentials in the job options

$DtJobOptions.JobOptions.ApplicationOptions.ExchangeCredentials = $DtExchangeCredentials

$DtJobOptions.JobOptions.DnsOptions.Domains[0].Credentials = $DtDomainCredentials

 

# Create the job

$DtJobGuidForExchange = New-DtJob -ServiceHost $DtTarget -Source $DtSource -JobType $DtJobType -JobOptions $DtJobOptions.JobOptions

 

# Start the job

Start-DtJob -ServiceHost $DtTarget -JobId $DtJobGuidForExchange

 

# Close the connections for the server objects

Disconnect-DtServer -ServiceHost $DtSource

Disconnect-DtServer -ServiceHost $DtTarget

If you want to hide your user credentials in your script, use the Windows PowerShell Get-Credential cmdlet. The password will not be visible because Windows stores an encrypted password. See Hiding your password in a PowerShell script for basic details on using this cmdlet. See your Windows PowerShell documentation for detailed instructions.