Wait for a Remote Process to Finish Running Before Installing Updates

BatchPatch has a lot of built-in options to facilitate customizing your Windows Update process or your process for updating a third-party application. Today I want to illustrate one way to use BatchPatch to proceed with an update installation only after it confirms that a remote process is no longer running.

Maybe your environment has some requirements that prevent you from starting a patch installation or update process on target computers until after a certain process is no longer running on those target computers. Imagine you have someProcess.exe that you want to ensure is not still running at the time that you launch a remote Windows Update installation on various target computers. Here is one way to do it:

  1. In BatchPatch you’ll need to create a job queue. Select the desired rows/hosts in the grid, and then click Actions > Job Queue > Create/modify job queue
  2. In the Job Queue window I’ve created a queue which will test the target computer for a specific running process (someProcess.exe). If that process is found to be running, the Job Queue jumps to the label STILL RUNNING, which effectively makes a loop. It waits 5 minutes and then performs the same check. The process will loop indefinitely, checking for the existence of that running process every 5 minutes. If/when the process is found to no longer be running on the target computer, only then will the job queue advance to the next step, which in this case is to Download and install updates + reboot always.
  3. In the Job Queue above you can see the steps are as follows:
    step 1: Label:STILL RUNNING
    step 2: Wait 5 minutes
    step 3: If specified process (someProcess.exe) is running, goto label:STILL RUNNING
    step 4: Label:PROCESS NO LONGER RUNNING
    step 5: Download and install updates + reboot always
  4. At this point we can either click Execute now to start the job queue on all of the currently selected hosts/rows in the grid, or if we want to save the grid for later use (or to be run as a scheduled task), we can give the queue a title and then add it to our saved queues by clicking the double-right-arrow button in the Job Queue window.
Posted in Blog, General, Tutorials | Tagged , | Comments closed

BatchPatch New Build Released March 2025

We published a new build recently. The change log is visible in the software under Help > Check for updates > View change log

Posted in Blog, General | Tagged , | Comments closed

BatchPatch New Build Released February 2025

We published a new build recently. It contains a security update as well as grid performance improvements. The change log is visible in the software under Help > Check for updates > View change log

Posted in Blog, General | Tagged , , | Comments closed

Reviewing Some of the Basic BatchPatch Functionality

I am regularly reminded that we have some users who have been using BatchPatch for months or even years but who haven’t even scratched the surface when it comes to functionality. Today I don’t even want to get into any of the more advanced features of BatchPatch. Instead I actually want to focus on just a few of the most basic operational elements that *ALL* BatchPatch users should know.

  1. After you run Actions > Windows updates > Check for available updates, you can review which updates are available for a given computer by middle-clicking the Remote Agent Log column for that row. Middle-click is the same as scroll-wheel click. You can also use Right-click > View cell contents. Similarly, you can view the contents of almost any cell in the grid with these same options. Also note, the window that appears that shows the cell contents can be moved around as needed by right-clicking or middle-clicking anywhere on that window and dragging it to the desired location on the screen.
  2. Another way to view the detail for a given row is to expand the contents of that entire row by double-clicking it. Alternatively use Right-click > Expand row(s), especially if you want to see the contents of multiple rows at one time.
  3. If you want to review the list of available updates for multiple computers all at the same time, you might prefer to use Actions > Windows updates > Generate consolidated report of available updates
  4. We have some users who like to save their grid every month so that when they start the following month they can just re-open the saved grid and continue working from there. While this is ok, there are some considerations to keep in mind. First, you might want to instead use templates. A template is just a .bps grid file that has been saved with a .bpt file extension instead of .bps. You can do this either by manually renaming a file or by using File > Generate template file (.bpt). Template files are useful to have a baseline starting point for each patching operation. Instead of opening last month’s .bps grid file and starting off where you left off before, if you instead setup your grid and save it as a .bpt template file, when you launch that template file and save it, it will force you to save it as a new file. The idea is that each month if you launch your template file, it starts you at your baseline rather than continuing off where last month left off. This way each month you can save your BatchPatch grid to a new .bps file, and each month’s history will be saved in a separate file. This also has the side benefit of preventing the BatchPatch grid file from growing excessively large. When you continue to use the same exact .bps file from month to month to month, it can grow very large because it contains a lot of data. At a certain point the very large amount of data that is contained in the grid can and will cause instability and general weirdness in the app. To alleviate this, either start fresh with a new grid (or launch a template), or delete data from your grid with Actions > Clear column contents.
Posted in Blog, General, Tutorials | Tagged | Comments closed

CLR error when launching BatchPatch


If you see something like this error below when you try to launch BatchPatch, especially on an older version of Windows, it means that you do not have the required version of .NET installed on that computer. BatchPatch currently requires .NET 4.6 to run. If your OS doesn’t have it installed, you’ll encounter an error similar to this, and BatchPatch will be unable to open/launch/run:

Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: BatchPatch.exe
Problem Signature 02: 2024.7.16.15
Problem Signature 03: 6696c8ff
Problem Signature 04: BatchPatch
Problem Signature 05: 2024.7.16.15
Problem Signature 06: 6696c8ff
Problem Signature 07: 0
Problem Signature 08: ffffffff
Problem Signature 09: System.MissingMethodException
OS Version: 6.3.9600.2.0.0.272.7

Posted in Blog, General | Comments closed

Remotely Download and Install Windows Updates on Multiple Computers

You can use BatchPatch to trigger the Windows Update process across an entire network of computers in just a couple of clicks.

  1. Highlight the rows in the grid for the target hosts that you would like to act upon.
  2. If you’d like to see which updates are available for your computers, start by clicking Actions > Windows updates > Check for available updates. Below is a screenshot that shows the result from a single computer, which I displayed by middle-clicking the Remote Agent Log field for that particular row/host. However, you can also create a consolidated report of available updates for many or all hosts in the grid by using Actions > Windows updates > Create consolidated report of available updates
  3. When you’re ready to execute the download and install process, click Actions > Windows updates > Download and install updates + reboot if required to initiate the process on all selected/highlighted rows in the grid
  4. BatchPatch will then begin the Windows Update download and install process on those hosts.

If you want to use BatchPatch for additional tasks, in addition to Windows Update, it’s very simple. You can schedule or manually execute many other types of actions in BatchPatch, and you can even stack them together so that a number of actions can be executed sequentially on target hosts (see the BatchPatch Job Queue). You can even orchestrate more complex sequences that involve numerous hosts with dependencies, such that actions are executed across only certain hosts at any given time, with the completion of one host or group of hosts being the trigger for the next host or group of hosts to begin processing (see the BatchPatch Advanced Multi-Row Sequence).

Posted in Blog, General, Tutorials | Comments closed

Windows Updates and Patch Management with BatchPatch

BatchPatch continues to be one of the most effective Windows Update tools in existence, while also being one of the most cost-effective applications when it comes to patch management, in general. The name, BatchPatch, was selected because the software enables an IT administrator to be able to manage patches and updates on many computers, simultaneously. Effectively speaking, you can download or apply or install a ‘Batch’ of ‘Patches’ to many target servers or workstations all at the same time, and typically in just a couple/few clicks of the mouse. In addition to on-demand control, you can also schedule any BatchPatch action to run on a schedule at a set time. Also, one of the best parts is that you can monitor the progress of your Windows Update downloads and installations all in real-time in the BatchPatch console.

BatchPatch Windows Patch Management Operations:

Everything in BatchPatch revolves around the BatchPatch grid. Add a list of target computers or import a list directly from Active Directory. You can even synchronize a grid with an Active Directory organizational unit (OU) or security group. Once your grid is populated with hosts, you’ll select the desired targets for a given action, and then you’ll click on the action that you want to execute (or schedule it to run at a specific datetime).

Downloading and Installing Windows Updates

To check for available Windows Updates on numerous target hosts, just select the rows in the grid that contain the desired targets and then click on Actions > Windows updates > Check for available updates

Deploying Third-Party Software

Select the desired target machines in the grid, and then click on Actions > Deploy > Create/modify deployment. Select the desired options for your particular deployment, and then click Execute Now. Virtually any 3rd-party application can be deployed using BatchPatch.

Executing Custom Scripts And Commands

You can use BatchPatch to execute your own scripts or commands by selecting the desired target computers in the grid, and then click on Actions > Execute remote process/command > Create/modify

So Much More…

BatchPatch contains a lot more functionality than what’s explained above. Some of the other features that enable you to maximize your Windows patch management, Windows updates, software deployment, and script execution needs are:

  • Offline update mechanism for machines with no internet access or WSUS access
  • Built-in and user-definable functions to retrieve information from target computers, including but not limited to things like checking last bootup time, OS version, disk space, RAM usage, installed programs, registry keys/values, MAC address, and file or process or service existence
  • Job Queue to run a series of actions on target computers
  • Sequences to orchestrate complex patching and script execution on multiple computers with dependencies, such that you can control which computers execute at which times, enabling you to sequence computers with dependencies. You can customize so that, for example, you could run a script on one computer, then patch several computers, then reboot computers in a particular order, then run another script on several computers, then install Windows updates and reboot several other computers, and so. If you have a group of 20 computers with very specific dependencies or uptime requirements, BatchPatch sequences can be an extremely powerful automation tool to enable one-click processing of numerous computers, with those computers only being patched or rebooted in the exact order that you determine
  • Wake on LAN computers
  • Reboot or Shutdown computers
  • Copy files or folders
  • And still much more!
Posted in Blog, General, Tutorials | Tagged , | Comments closed

BatchPatch New Version Released 20240716

Just a reminder… we don’t post about every new build/version on this blog. You can see the full change log and version history inside of the software under Help > Check for updates > View change log

On July 16, 2024 we released a new version of BatchPatch (v20240716):

  • BatchPatch Offline Mode now supports Windows 11 and Windows Server 2022. This also includes options for Windows 11 and Windows Server 2022 under Tools > Download offline updates Repository.
  • Fixed an issue where BatchPatch Offline Mode would fail/error when trying to download/install the monthly cumulative update with Copy To Cache: Failed. HRESULT: -2147024894
  • The user-defined.xml file can now be optionally encrypted on disk (Tools > Settings > General > Encrypt user-defined.xml on disk).

    This file is saved in your user profile on the BatchPatch computer. It contains your saved commands, deployments, job queues, etc. The default location is:

    C:\Users\USERNAME\AppData\Local\Cocobolo_Software,_LLC\BatchPatch\user_defined\user_defined.xml

  • Miscellanous bug fixes and various minor changes/improvements
Posted in Blog, General | Tagged , | Comments closed

BatchPatch New Version Release Notes and Changelog Etc

Just to clarify some confusion… At the time of this writing the most recent version of BatchPatch was released on 2024-02-02. This website blog does not contain details about every release of BatchPatch. To view the details about each version of BatchPatch that has been released, please refer to the software itself. In the app under Help > Check for updates > View change log you can view the history of versions released along with a list of which features, functionality, and bug fixes have been included in each release.

Posted in Blog, General | Tagged , , , | Comments closed

Using Textual Filters to Limit Which Windows Updates Are Installed by BatchPatch

BatchPatch has a few different ways to filter which available Windows Updates are downloaded and/or installed. The graphical filter is good for most situations where you just want to selectively apply only certain available updates. However, text-based filtering can be useful in cases where you want to have an ongoing filter from month to month to month that enables you to always include or exclude updates with certain text in the update title.

Let’s say for example that you want to always exclude the Windows Malicious Software Removal Tool update from your regular update schedule because it takes too long to run. Maybe you want to run it separately during a different maintenance window each month. One way to accomplish this would be to exclude that update from your normal/regular maintenance window schedule so that it only gets installed during your alternate maintenance window schedule.

  1. In BatchPatch select the desired host(s) where you want to exclude this update from being installed. Then click Actions > Windows updates > Filter > Exclude (textual)

    The filtering works based on matching the update title text or KB number. Matching is done by comparing the update title to the text of each item that you add to the filter list. If the text of any item that you add to the filter list is contained in the update title, the update will not be downloaded and/or installed. To guarantee uniqueness, we recommend entering the KB IDs of the updates that you would like exclude from download / installation, though you may provide a different search string if you prefer based on text in the update title. If you know that the KB ID will be the same for each month where you want this filter to work, then you can just use the KB ID without issue. But if for some reason the KB ID is expected to change each month or the KB ID is not the same for different OS versions where you want to be able to just apply the same filter, then using update title text might be a better option. It will depend on your particular needs and the situation.

  2. In the case of the Windows Malicious Software Removal Tool, on my OS I can see that each month it’s KB890830, so I can exclude it with that KB ID. However, I could also exclude it by using the update title itself. I’ll show you both examples. First I enter into the exclusion filter list the KB ID KB890830

    After clicking Save I can now see that the filter is applied to the rows that were highlighted.

  3. Next, I will use Actions > Windows updates > Check for available updates (with filters applied) to confirm that the filter is behaving in the way that I want or expect it to. The results of my search show me that it’s working as desired because even though there are 4 available updates, there are only 3 applicable updates in the filtered collection. This is visible in the Remote Agent Log column for the most recent search, but it can also be seen in the BatchPatch.log file for historical searches by using Actions > Windows updates > View BatchPatch.log. In the screenshot below of the Remote Agent Log field for the row where I applied the filter I can see that the Windows Malicious Software Removal Tool was skipped due to Reason: Update in ExcludeSpecificUpdatesList

    I get the same results when I set the exclusion based on the update title instead of the KB number:

    And I get the same results when I set the exclusion based on just the word Malicious since Malicious is contained in the update title text.

  4. At this point now that I have verified that the search result (with filters applied) is showing me what I want to see (that my update is being excluded so that it is skipped when creating the filtered collection), I can move forward with my normal download and install operation. All download/install operations always apply any filters that have been configured for the row, and you can verify that the download/install operation utilized your filter as expected by again checking the Remote Agent Log field after the action completes, if desired.
Posted in Blog, General, Tutorials | Tagged , , , , , | Comments closed