Performing Maintenance in Task Sequences
Using the scheduling tools available to you in ConfigMgr is a great way to perform weekly, monthly or even annual maintenance on your clients to ensure they operate at peak performance. This post looks at creating and deploying a task sequence to enable maintenance to take place.
So the scenario is as follows. We already patch our machines with all available patches on a monthly basis, we run this every last Friday of the month. The problem is we also want to perform other maintenance jobs on clients but getting the approval from management is difficult. We are told that if we can perform the maintenance in the patching window that we can do our monthly maintenance tasks as well.
Our solution is to create and deploy a task sequence which does our maintenance jobs and our patching all at once. So to begin we will create a blank task sequence.
- Run Defrag
- Empty the temp directory
- Clean out the prefetch directory
- Apply Windows Updates
- Restart the machine
Enter all these tasks into the task sequence and you will end up with something which looks like below.
So let’s take a deeper look at the task sequence and find out what we are running. Our first tasks is a simple Install Software Updates task sequence step, this is configured for All Software Updates as we just install everything anyway.
With the exception of Restart Computer, every other step is literally just a Run Command Line task sequence step. Let’s have a look in more detail.
Perform Disk Defragmentation
So this step is just running Defrag.exe with some switches, the full command we are running here is: Defrag.exe %SystemDrive% -v -w, we are also saying this command will run in%SystemRoot%\System32 just to make sure we pick up the command.
Here we are using environment variables so it can be run anywhere, regardless of disk configuration, we don’t want to hard code drive letters in here because we might have the situation where the OS is not on C: it’s actually on D:.
Again, another basic command line which runs: Del.exe /F /S /Q *.*
We are also again setting the Start in value to %SystemRoot%\Prefetch, why is this? Well to prevent us having to cd to the directory we want to perform the command on, with del.exe you don’t provide a directory, you just run it when you have gone to the directory you wish to work on.
The same action runs for the Cleanup Temporary Directory task sequence step which runs the same command as above except the start in value is set to %Temp%.
Finally we have restart computer which indicates the maintenance is completed and restarts into Windows.
Deploying the Task Sequence
To run this monthly, remember on the last Friday of the month we do the following, select Deploy, make the sequence mandatory and then create a schedule as shown below.
Click OK to create the schedule, change Rerun behaviour to Always rerun program, skip over to Summary and then create the deployment. Then you should be done, this will run on the last Friday of every month and the performance of your clients should improve.
When working with task sequences, don’t just think operating system deployment, the task sequence can be used to perform all sorts of actions and maintenance is just one of them. You can easily expand this into creating some logging, writing some custom executables and scripts to perform some maintenance tasks or just letting users run them whenever, this could be on advise of your Service Desk or your Desktop Support team for instance.