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

Remotely Initiating Windows Update on Multiple Computers

One of the primary tasks that BatchPatch facilitates is the application of Windows Updates. BatchPatch enables systems administrators to initiate the Windows Update process remotely on numerous computers at the same time. Let’s take a look at how this is accomplished.

  1. Start by adding computers to your BatchPatch grid. To do this you can either select computers directly from an Active Directory security group or organization unit (OU), or you can manually enter the computer names or IP addresses or fully-qualified-domain-names (FQDNs), or just import a text file list of host names.

    Use the Grid menu in BatchPatch to select the desired option, or just drag-drop a text file list (or use File > Import). For the sake of this example, I’m just going to use Grid > Add hosts




  2. Once the hosts are added to the grid we can act on them. For example, to check for available updates on all of the target hosts, just select/highlight all of the hosts in the grid (or select only some, if you prefer), and then click on Actions > Windows updates > Check for available updates



    This is the result. We can easily view which updates are available for a given host by middle-clicking the Remote Agent Log field for a particular row/host.

    If we want to view a consolidated list of available updates for all (or multiple/numerous hosts in the grid), then we can optionally use Actions > Windows updates > Generate consolidated report of available updates

  3. At this point we can move forward with initiating the Windows Update download and/or installation process, if we want, by using the appropriate/desired action, such as Actions > Windows updates > Download and install updates + reboot if required. Or if we want to specify exactly which updates are downloaded/installed (instead of installing all of the available updates), we can first apply a filter by using Actions > Windows updates > Filter…. Or if we want to apply a filter that includes only updates of a certain category, then we can first modify the global update classification filter under Tools > Settings > Windows Update > Update Classification Filtering
  4. In the case where we want or need to deploy a third-party software package or some other Windows Update that is packaged in single file form such as .MSU or .MSI or .MSP file, we would instead use Actions > Deploy. There are numerous such examples and tutorials posted here.
Posted in Blog, General, Tutorials | Tagged , , , , , , , | Comments closed

Remotely Deploying Windows Feature Update Version 23H2 to Numerous Computers

Standard Deployment Method for Windows Feature Update 23H2 (and other feature updates/upgrades such as 22H2, 21H2 etc) in BatchPatch

Unless you are using a version of BatchPatch that was released prior to April 2020, you can usually deploy/install feature updates like 23H2 with the normal Windows Update actions in BatchPatch under ‘Actions > Windows updates‘. However, Microsoft continues to make a lot of changes to how feature updates are handled, so there are some cases where you might have to perform the deployment using the alternate method that’s explained further down in this tutorial.

For the standard deployment method, the first requirement is that the feature update that you desire to install must be offered to the computer and show as an available update when you select ‘Actions > Windows updates > Check for available updates‘ in BatchPatch. If you see the desired feature update in that list of available updates for a given target computer or group of computers, then all you need to do to download/install the update on those computers is modify the classification filtering in ‘Tools > Settings > Windows Update‘ so that the ‘Include “Upgrades”‘ box is ticked.

After the ‘Upgrades’ classification is selected you can simply use ‘Actions > Download available updates‘ with ‘Actions > Install downloaded updates‘ or you can just use ‘Actions > Download and install updates‘. As long as you are operating in standard, non-cached mode, feature updates will install (assuming, of course, that you currently have a feature update showing in the list of available updates for a given computer).

Feature Update Deployment Considerations – Update deferral policies, and when an update is only available for “seekers”

Please note there are a couple of things to consider when installing feature updates using the standard non-cached mode BatchPatch update method.

First, as mentioned above, the target computer needs to have the desired feature update showing as one of the available updates for the computer. If you’re expecting to see it but you don’t, it could be because the update is not approved on your WSUS yet, or it could be that you have a Group Policy or Local Policy setting configured for the target computer that is set to defer the installation of feature updates for a specified amount of time. Check your Group Policy configuration for any deferral policies enabled under the following locations:

Computer Configuration > Administrative Templates > Windows Components > Windows Update

Computer Configuration > Administrative Templates > Windows Components > Windows Update > Windows Update for Business

Second, depending at what stage of the rollout Microsoft currently is at the time you attempt to deploy a given feature update, they might not yet be delivering the update through the normal Windows Update channel. They typically begin the rollout with delivery only to “seekers”. This is the name they give to people who manually click on the ‘Check for updates’ button in the Windows Control panel. “Seeker” updates are visible in BatchPatch when you click on ‘Search for only optional software updates

Third, over the past couple/few years Microsoft has made quite a few changes to how Windows Update works, particularly with regard to how feature updates are handled. It’s possible that there is some other reason that I didn’t mention above that is the cause for why you are not seeing the feature update available for installation through the normal Windows Update methods.

Alternate Deployment of Windows Feature Update 23H2 (and other feature updates/upgrades such as 22H2 or 21H2 etc) with BatchPatch (can be used for deployment to offline target computers)

If you need to deploy feature update version 21H2 (or any other feature update) to target computers that don’t have internet access and don’t have WSUS access and therefore cannot be targeted in standard, non-cached mode (that is to say, you are using either online cached mode or offline cached mode with those target computers, and you are not able to disable cached mode and switch to standard mode for whatever reason), then you may use the method outlined below to deploy the feature update to those computers.

  1. Download (from Microsoft) the Windows 10 or 11 Media Creation Tool. Use this link to download the media creation tool directly from Microsoft. The media creation tool web page contains two options: ‘Update now’ and ‘Download tool now’. Do NOT click on ‘Update now’ because doing so would begin the update process on your computer. Since your goal is to deploy the upgrade to remote computers, instead please click on ‘Download tool now’ to save the tool to your computer. Important: When you run the media creation tool per the next step, you will not have a choice to select which Windows 11 version is used to create the media. This means that if Microsoft releases a new version of Windows 11 when you follow this tutorial, you’ll end up with that version as opposed to the specific version 23H2 that is available today at the time of this writing. If you have another channel for obtaining media for a particular Windows 11 version, such as with a Microsoft volume licensing agreement, you may use that instead of obtaining the media through the steps outlined in this tutorial.
  2. Open the Windows 10 or 11 Media Creation Tool that you saved to your computer a moment ago. IMPORTANT: It is NOT sufficient to run the tool as administrator (using right-click, run-as) from an account that is logged on without admin privileges. For reasons that aren’t fully clear, Microsoft requires that you *must* actually be logged on to the computer with an account that is a member of the local administrators group. Otherwise the tool will not allow you to run it to completion. We don’t know why Microsoft made the tool work this way, but it’s what they did, and presumably it’s for a good reason. So go ahead and log on to your computer as a local administrator, and then launch the tool and follow the rest of this tutorial.
  3. Create installation media with the Windows 10 or 11 Media Creation tool. When the tool is running you’ll have to choose between two options to either ‘Upgrade this PC now’ or ‘Create installation media (USB flash drive, DVD, or ISO file) for another PC. Choose the option to ‘Create installation media…’ and then click ‘Next’.

  4. Choose your language / edition / architecture, and then click ‘Next’.
  5. Choose the media type. For the sake of this tutorial please select ISO as the type of media. After clicking the ‘Next’ button you will be prompted to choose a location on your computer to store the ISO file that will be downloaded/created. Select a directory/location to store the file, and then do something else until the download finishes. Depending on your connection speed it could take some time because it’s something like 4GB in size.


  6. Extract the ISO contents to a location on your local disk. After the download in the previous step is complete you’ll have to locate the file on disk and then extract the contents of the ISO to another folder. I like to use the free 7-zip for this process, but you may use whichever tool you prefer: 7-zip. After the ISO has been extracted you’ll have all of the installation files for the feature update in a single folder.
  7. Configure a deployment in BatchPatch. In BatchPatch click on Actions > Deploy > Create/modify. In the window that pops up for the Deployment configuration, click on the ‘…’ button to browse to the location where your ISO contents have been extracted to, and then choose the ‘setup.exe’ file as the file to deploy. Make sure to check the boxes for ‘Copy entire directoryandLeave entire directory. After the initial deployment phase is complete, the target Windows operating system will end up rebooting itself at least once but usually more than once while it completes the setup and installation for the feature update. As the process runs it needs to have access to all of the files that BatchPatch will deploy. Having both of the aforementioned boxes checked will ensure that when the upgrade process runs on the target computer that it has all of the files it needs for the installation. After the feature update has completed 100% you may delete the files from the target computer(s). However, please make absolutely sure that the upgrade process is 100% completed before you delete any files. In your BatchPatch deployment configuration screen you will also need to add the following parameters:
    /auto upgrade /quiet

  8. Execute the feature upgrade deployment. In the deployment configuration that you created in the in the previous step you can execute the deployment immediately for the currently selected rows in the grid by just clicking on the ‘Execute now’ button. Alternatively you may save the deployment for future usage by clicking the double-right-arrow button ‘>>’. If you choose to save the deployment instead of executing it immediately, then when you are ready to deploy the feature update to your remote computers, you can begin the process by selecting those computers in the BatchPatch grid and then clicking on Actions > Deploy > Execute deployment, and then choose the deployment that you just created/saved.

    You should expect that the entire process will take a bit of time to complete. BatchPatch has to copy the whole installation directory to the target computer(s), which contains several gigabytes, before it can execute the upgrade process on the target(s). IMPORTANT: After the BatchPatch deployment completes for a given target computer BatchPatch will show Exit Code: 0 (SUCCESS). However, this just means that the BatchPatch deployment component is finished. The Windows feature update/upgrade process will take additional time. Please be patient and let the target computer continue upgrading and rebooting as many times as is needed. It might take a little while with multiple automatic reboots before everything is 100% finished.

    NOTE: We have had a couple of reports from users who received the following error:

    Deployment: Error: Access to the path '\\TargetComputer\C$\Program Files\BatchPatch\deployment\autorun.inf' is denied.

    We don’t know the exact cause of this issue, but it seems likely to somehow be related to the way that permissions were applied or inherited during the ISO extraction process. If you encounter this error it can be resolved quickly and easily by just deleting the autorun.inf file from the source directory after extracting the ISO contents but before executing the actual deployment for any target computers. This will prevent the problematic file from ever being copied to target computers. As such, the error will not occur.

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

Executing an Advanced Multi-Row Queue Sequence as a Scheduled Task

If you want to execute an advanced multi-row queue sequence on a specific datetime, you can do it with a scheduled task. Alternatively, you can also execute an advanced multi-row queue sequence from within a job queue. The job queue can also be executed by a scheduled task, if desired.

Executing an advanced multi-row queue sequence directly from a scheduled task

  1. In the screenshot below I have 4 target hosts setup to participate in an advanced multi-row queue sequence with the name TestSequence20240320
  2. Next I set a scheduled task on the Execution Row for the sequence.
  3. Finally you can see the result after the scheduled task ran (it started on 15:50 instead of 15:49 because while I was taking screenshots I missed the original run time and had to reschedule it)

Executing an advanced multi-row queue sequence from within a job queue

  1. In this example I have 4 target hosts setup to participate in an advanced multi-row queue sequence with the name TestSequence20240320. However, I also have an extra row in the grid that we’ll use to illustrate executing a job queue that contains an advanced multi-row queue sequence.
  2. In the screenshot below I’ve created a new job queue, and the only step in this particular case is to execute our advanced multi-row queue sequence. Your job queue can contain more steps, but for the sake of this example I only need a single step.
  3. Next, I save the job queue.
  4. Finally, I can manually execute the job queue that I just created. Alternatively I could setup a scheduled task that will execute the job queue. In either case, the job queue contains a step that will execute the advanced multi-row queue sequence.
  5. Here is the result:
Posted in Blog, General, Tutorials | Tagged , , | Comments closed