If you ever did any schedule creation prior to the two new PowerShell cmdlets (New-CMSchedule and Convert-CMSchedule), then you probably already know how tricky it was working with scheduled tokens and are going to welcome these new cmdlets. In this blog post, I am going to show you how easy it is to use New-CMSchedule to create a weekly recurring schedule.
Schedules are used for many things in ConfigMgr, such as collection evaluation cycles, deployment times and even certain client settings. For this example, we will create a collection evaluation schedule. The first thing we need to do is determine what kind of schedule we want to create. Let’s select a weekly recurring schedule that runs every Saturday at 9:00 PM. For simplicity, we will start this on 10/12/2013. Using the console, the schedule would look like this:
From this, we can extract the following information:
Start time: 10/12/2013 9:00 PM
Day of the week: Saturday
Recur every: 1 week
We can easily create this schedule using the following command:
New-CMSchedule -Start "10/12/2013 9:00 PM" -DayOfWeek Saturday -RecurCount 1
Assign this schedule to the variable $Schedule so that we can use it to create a new collection:
$Schedule = New-CMSchedule -Start "10/12/2013 9:00 PM" -DayOfWeek Saturday -RecurCount 1
Create a new collection called TEST-Collection Schedule using the following command:
New-CMDeviceCollection -Name "TEST-Collection Schedule" -LimitingCollectionName "All Systems" -RefreshSchedule $Schedule -RefreshType Periodic
NOTE: There are actually four different refresh types that can be set, however, the current cmdlet only supports three of them. If you want to configure incremental updates and full collection evaluation based on a schedule, you will need to set this directly
If you open the collection properties up using the console, you will notice that you now have a collection called TEST-Collection Schedule and it has a custom refresh schedule like the one pictured above.
This is just one example on how easy it is to create schedules in ConfigMgr using the New-CMSchedule cmdlet.