Set-DPMPolicySchedule

Set-DPMPolicySchedule

Sets the schedule for protection jobs.

Syntax

Parameter Set: CheckDataIntegrity
Set-DPMPolicySchedule [-ProtectionGroup] <ProtectionGroup> [-JobType] <SetPolicyScheduleCmdlet+ProtectionJobType> {CheckDataIntegrity} [-PassThru] [-Remove] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: ModifySchedule
Set-DPMPolicySchedule [-ProtectionGroup] <ProtectionGroup> [-Schedule] <Schedule> [-PassThru] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: OffsetSchedule
Set-DPMPolicySchedule [-ProtectionGroup] <ProtectionGroup> [-OffsetInMinutes] <Int32> [-PassThru] [-Confirm] [-WhatIf] [ <CommonParameters>]

Detailed Description

The Set-DPMPolicySchedule cmdlet sets the schedule for protection jobs in System Center 2012 – Data Protection Manager (DPM).

DPM sets default schedules automatically if you specify the protection objective by using the Set-DPMPolicyObjective cmdlet. To change the default schedules, run the Get-DPMPolicySchedule cmdlet followed by the Set-DPMPolicySchedule cmdlet.

This cmdlet includes the following dynamic parameters that you can use to define schedules:

For express full and shadow copy schedule, specify the following parameters, as in the following examples:

[-TimesOfDay] <TimesOfDay> [-DaysOfWeek]<DaysOfWeek>
-TimesOfDay "6:00 AM"
-TimesOfDay "12:00 AM" -DaysOfWeek We,Th

For monthly, half-yearly, and yearly archive schedules, specify the following parameters, as in the following example:

[-StartTime] <StartTime> [-RelativeInterval <RelativeInterval>] [-DaysOfWeek <DaysOfWeek>]
-StartTime "1/1/2003 6:00 AM" -RelativeInterval First -DaysOfWeek Sa

For daily archive schedule, specify the following parameter, as in the following example:

[-TimeOfDay] <TimeOfDay>
-StartTime "6:00 AM"

For quarterly archive schedule, specify the following parameter, as in the following example:

[-StartTime] <StartTime>
-StartTime "1/1/2003 6:00 AM"

Parameters

-JobType<SetPolicyScheduleCmdlet+ProtectionJobType>

Indicates the type of job for which this cmdlet sets options. The only valid value for this parameter is ConsistencyCheck.

Aliases

none

Required?

true

Position?

2

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-OffsetInMinutes<Int32>

Specifies the time, in minutes, by which to offset the start time of a job.

Aliases

none

Required?

true

Position?

2

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-PassThru

Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ProtectionGroup<ProtectionGroup>

Specifies a protection group object to which this schedule applies. To obtain a ProtectionGroup object, use the Get-DPMProtectionGroup cmdlet.

Aliases

none

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

True (ByValue)

Accept Wildcard Characters?

false

-Remove

Indicates that the cmdlet removes a schedule for a protection operation.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Schedule<Schedule>

Specifies a schedule object. A schedule describes the recurrence of a backup job. Each job type has one schedule, which DPM triggers. You create a default schedule by using the Set-DPMPolicyObjective cmdlet.

Customize a default schedule by using Get-DPMPolicySchedule, and then pass the schedule to Set-DPMPolicySchedule.

Aliases

none

Required?

true

Position?

2

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Confirm

Prompts you for confirmation before running the cmdlet.

Required?

false

Position?

named

Default Value

false

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Required?

false

Position?

named

Default Value

false

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

<CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/p/?LinkID=113216).

Inputs

The input type is the type of the objects that you can pipe to the cmdlet.

Outputs

The output type is the type of the objects that the cmdlet emits.

  • ProtectionGroup

Examples

Example 1: Create a synchronization schedule for a protection group

The first command gets the protection group from the DPM server named DPMServer02, and then stores the result in the $PGroup variable.

The second command gets the short-term schedule for performing integrity checks from the protection group in $PGroup, and then stores the result in the $ShadowCopysch variable.

The third command sets synchronization to run at 2:00 AM every Monday.

PS C:\> $PGroup = Get-DPMProtectionGroup -DPMServerName "DPMServer02"
PS C:\> $ShadowCopysch = Get-PolicySchedule $PGroup -ShortTerm
PS C:\> Set-DPMPolicySchedule -ProtectionGroup $PGroup -Schedule $ShadowCopysch -DaysOfWeek mo -TimesOfDay 02:00

Example 2: Change a synchronization schedule for a protection group

The first command gets protection groups from the DPM server named ContosoDPM1, and then stores them in the $PGroup variable.

The second command gets the long-term synchronization schedule for the second protection group in $PGroup, and then stores the result in the $Schedule variable.

The third command gets the second protection group in in $PGroup, and then stores the group in the $MPGroup variable. The command gets the protection group in editable format.

The fourth command sets the policy schedule for the third schedule in $Schedule to run at 7:00 PM daily.

The fifth command uses the Set-DPMProtectionGroup cmdlet to save your changes.

PS C:\> $PGroup = Get-DPMProtectionGroup -dpmservername "ContosoDPM1"
PS C:\> $Schedule = Get-DPMPolicySchedule $PGroup[1] -longterm
PS C:\> $MPGroup = Get-DPMModifiableProtectionGroup -ProtectionGroup $PGroup[1]
PS C:\> Set-DPMPolicySchedule -ProtectionGroup $MPGroup -Schedule $Schedule[2] -TimeOfDay "07:00 PM"
PS C:\> Set-DPMProtectionGroup -ProtectionGroup $MPGroup

Example 3: Schedule an integrity check for a DPM server

The first command gets the protection group from the DPM server named ContosoDPM1, and then stores it in the $PGroup variable.

The second command gets the protection group in $PGroup, and then stores it in the $MPGroup variable in editable format.

The third command schedules a data integrity check to run on the server every Monday at 6:00 PM.

The fourth command uses the Set-DPMProtectionGroup cmdlet save your changes.

PS C:\> $PGroup = Get-DPMProtectionGroup "ContosoDPM1"
PS C:\> $MPGroup = Get-DPMModifiableProtectionGroup -ProtectionGroup $PGroup
PS C:\> Set-DPMPolicySchedule -ProtectionGroup $MPGroup -JobType CheckDataIntegrity -DaysOfWeek mo -TimesOfDay 18:00
PS C:\> Set-DPMProtectionGroup -ProtectionGroup $MPGroup

Example 4: Create online backup and retention schedules for a protection group

This example creates online backup and retention schedules for a protection group.

The first eight commands set the online policy objective for the protection group from the DPM server named DPMServer02. For more information, see the Set-DPMPolicyObjective cmdlet.

The ninth command gets the online schedules for the protection group stored in $MPGroup, and then stores those schedules in the $OnlineSchedule variable.

The tenth command updates daily backup/retention online schedule.

The eleventh command updates weekly retention online schedule.

The twelfth command updates monthly retention online schedule.

The thirteenth command updates yearly retention online schedule.

PS C:\> $RRList = @()
PS C:\> $RRList += (New-Object -TypeName Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.RetentionRange -ArgumentList 18, Days)
PS C:\> $RRList += (New-Object -TypeName Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.RetentionRange -ArgumentList 10, Weeks)
PS C:\> $RRList += (New-Object -TypeName Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.RetentionRange -ArgumentList 6, Month)
PS C:\> $RRList += (New-Object -TypeName Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.RetentionRange -ArgumentList 5, Years)
PS C:\> $PGroup = Get-ProtectionGroup -DPMServerName "DPMServer02"
PS C:\> $MPGroup = Get-ModifiableProtectionGroup -ProtectionGroup $PGroup[0]
PS C:\> Set-DPMPolicyObjective -ProtectionGroup $MPGroup -OnlineRetentionRangeList $RRList
PS C:\> $onlineSch = Get-DPMPolicySchedule -ProtectionGroup $MPGroup -LongTerm Online
PS C:\> Set-DPMPolicySchedule -ProtectionGroup $MPGroup -Schedule $nlineSchedule[0] -TimesOfDay 02:00
PS C:\> Set-DPMPolicySchedule -ProtectionGroup $MPGroup -Schedule $OnlineSchedule[1] -TimesOfDay 02:00 -DaysOfWeek Sa,Su -Interval 1
PS C:\> Set-DPMPolicySchedule -ProtectionGroup $MPGroup -Schedule $OnlineSchedule[2] -TimesOfDay 02:00 -RelativeIntervals First,Third -DaysOfWeek Sa
PS C:\> Set-DPMPolicySchedule -ProtectionGroup $MPGroup -Schedule $OnlineSchedule[3] -TimesOfDay 02:00 -DaysOfMonth 2,5,8,9 -Months Jan,Jul

Get-DPMPolicySchedule

Get-DPMPolicyObjective

Set-DPMPolicyObjective