I have just released version 9 of Zero Day Patch with a couple of interesting features that I am going to detail here.
/exclude-on-fail
What is interesting here is not necessarily this new switch, but rather the work that went on to create it. In effect I started from a few customer reported problems: if ZeroDayPatch encounters a problem during the staging (for example not all files can be downloaded) or during the policy creation (the process is choosen as a deadlock victim) then ZeroDayPatch would simply terminate, causing the expected output to be delayed until the next scheduled run.
In order to avoid such problem I decided to catch exceptions around the critical paths (when we stage the bulletin or create the policy) and retry. At first I planned on retrying download and policy creations steps 4 times and exllude the bulletin on failure.
However during the test phase I noticed that the bulletin staging process already retires when a patch cannot be download, with a 180 seconds delay. So retrying a process that already retries with delay didn't make sense and I reverted to skip the bulletin on exception.
For the policy creation retrying up to 3 times still made sense, but as for the stagging excluding the bulletin seemed to be too harsh so I decided to make the feature option.
/retarget
This new feature comes from one of my customer needs. They are using ZeroDayPatch every month to create the new policies. The new policies are created with a monthly target until they reach maturity (2 month) at which point they are retargeted to a global target (so any computers with the Software Update Agent will always receive applicable updates older than 2 month - whilst the other will be receive depending on the current test cycle and local admin own schedules).
So instead of manually editing all the existing policies to switch the target I thought I'd add the command line switch to simplify operations and reduce the Patch Admin chores.
7.1 and 7.5 builds
Also note that I now attach the 7.1 and 7.5 build to the main download page [1]. Both builds are running the very same code, with only a change in the Altiris.PatchManagementCode.Web.dll references.