Over the years, I have gotten questions from my customers (especially those who have migrated from XenApp 6.5) regarding how to best create reboot schedules for their XenApp machines in versions 7.x.
XenApp 6.5 offered a lot of flexibility when it came to reboot schedules. One of the best features it offered was the ability to reboot only a subset of the machines in a Worker Group. For example, if you had 20 machines in a Worker Group, you could schedule 10 of them to reboot on Saturday (leaving 10 available for any users that may need to connect) and schedule the remaining servers to reboot on Sunday.
With the FMA architecture in 7.x, the concept of Worker Groups was replaced by Delivery Groups. Unlike with Worker Groups, administrators could only create one reboot schedule for all of the machines in a Delivery Group — until now!
XenApp 7.12 introduced the ability to create multiple restart schedules for a Delivery Group. This is accomplished by segmenting your Delivery Group into subsets of machines using tags. Then, an administrator can configure different schedules that correspond to the given tags.
Adding tags to your machines is easy with the ‘Manage Tags’ action in Studio. If you want to learn more about tags, see this product documentation.
As of XenApp 7.12, you cannot yet create multiple restart schedules within a Delivery Group using Studio. Instead, you have to use the new PowerShell cmdlets. Here is a list of the new RebootScheduleV2 PowerShell cmdlets, which replace the earlier V1 cmdlets from previous versions. (Note: All of your Delivery Controllers must be at least at version 7.12 for these cmdlets to work).
New PowerShell Cmdlets:
- New-BrokerRebootScheduleV2 (Creates a new reboot schedule for a Delivery Group)
- Get-BrokerRebootScheduleV2 (Lists existing reboot schedules)
- Set-BrokerRebootScheduleV2 (Update an existing reboot schedule)
- Remove-BrokerRebootScheduleV2 (Remove a reboot schedule)
- Rename-BrokerRebootScheduleV2 (Rename a reboot schedule)
Since this post is about creating new reboot schedules, let’s take a look at the available parameters for the New-BrokerRebootScheduleV2 cmdlet. (You can use the Get-Help cmdlet in PowerShell to get more information regarding the parameters for the other new cmdlets).
Parameters for New-BrokerRebootScheduleV2:
- Name (A friendly name for the new reboot schedule)
- DesktopGroupName (The name of the Delivery Group to which the reboot schedule is being applied)
- RebootDuration (Approximate maximum number of minutes over which the scheduled reboot cycle runs)
- Day (For weekly cycles, the day of the week on which the scheduled reboot cycle starts)
- Description (An optional description for the reboot schedule)
- Enabled (Boolean that indicates if the new reboot schedule is enabled)
- Frequency (Frequency with which this schedule runs – either weekly or daily)
- RestrictToTag (If set, the reboot schedule only applies to machines in the Delivery Group with the specified tag)
- StartTime (Time of day at which the scheduled reboot cycle starts)
- WarningDuration (Time prior to the start of a machine reboot at which a warning message is displayed to all the users on the machine)
- WarningMessage (Warning message displayed in user sessions on a machine scheduled for reboot)
- WarningRepeatInterval (Time to wait after the previous reboot warning before displaying the warning message in all user sessions on that machine again)
- WarningTitle (The window title used when showing the warning message in user sessions on a machine scheduled for reboot)
Here is an example of a command:
New-BrokerRebootScheduleV2 -Name ‘Saturday Reboots for 2012 R2’ -DesktopGroupName ‘Windows Server 2012 R2 Delivery Group’ -Day Saturday -Frequency Weekly -StartTime “2:00” -RebootDuration 120 -RestrictToTag Saturday -WarningDuration 30 -WarningRepeatInterval 10 -WarningMessage “This machine will restart in %m% minutes. Please save your work.” -WarningTitle “Warning: Reboot Pending” -Enabled $true
This command will reboot all machines tagged ‘Saturday’ in the Windows Server 2012 R2 Delivery Group every Saturday between 2-4 am. Thirty minutes prior to the reboot, users will be warned about the pending reboot with a message titled “Warning: Reboot Pending” and stating, “This machine will restart in %m% minutes. Please save your work.”, where %m% will be replaced with the number of minutes remaining until the reboot. This warning will be repeated every 10 minutes until the machines are restarted.
- XenApp 7.12 introduced the ability to configure multiple reboot schedules for a Delivery Group.
- This is accomplished by tagging machines in Studio, and then configuring reboot schedules that only correspond to machines in a Delivery Group with a specific tag.
- To create multiple reboot schedules for a Delivery Group, you must use the new PowerShell cmdlets. Studio is not yet supported, as of XenApp 7.12.
See the product documentation for more information on how to configure multiple reboot schedules for a Delivery Group, and feel free to ask any additional questions you may have in the comments section below!