Presenting Data from a BatchPatch Grid for Consumption Outside of BatchPatch

One of the questions we get sometimes is how best to get data out of a BatchPatch grid, usually to present to someone who is not a BatchPatch user. For the most part when IT admins are using BatchPatch there is little need to present information to anyone else. The goal is typically to just get machines patched and rebooted, and then make sure they are back online and functional before maintenance is over. However, for many users there is sometimes a need to present certain information either to management or perhaps to a different team. For example, maybe your manager wants to know the status of your maintenance, including which updates have been deployed to which computers, or which updates are currently available and ready to install on which computers, etc. Today I’m going to show you the best ways to accomplish these objectives.

Copy and Paste

This is not the most elegant option available, but it can still be the best option in certain situations, depending on your needs. If you want to get some data out of a BatchPatch grid, one option that’s always available is to first show/hide the desired columns (you can show/hide columns by right-clicking on any column header or by selecting ‘Tools > Customize columns‘), then use CTRL-A to select the entire grid, or simply highlight the desired rows, then use CTRL-C to copy the contents to the clipboard. Next you can use CTRL-V to paste the contents of the clipboard into your favorite spreadsheet application. From there you can format as desired. Note, if you select all rows in the grid, then when you paste the contents to another application, the header row showing column titles will be included. If you only select some rows in the grid, the header row will not be included.

HTML Grid Export

This is my favorite method for most situations. You can present the grid data in HTML format for anyone to be able to view in a way that is very similar to how the data is presented in the BatchPatch grid. Simply select ‘File > Export grid‘ and then select one of the HTML export options. If you have more than one grid open in BatchPatch you can choose to have each grid go to a separate HTML file or you can have all grids be included in the same HTML file. The grid view that is displayed in the HTML report is clickable. If you click any cell in the HTML grid, it will jump to the spot in that file where that data is expanded, so that you can easily view the complete data. You can then jump right back to the grid view, as needed.

Delimited Grid Export

Another option is to export the grid to a delimited file. This is a versatile option because the resultant delimited file can be imported into a spreadsheet or database application. To perform this kind of export, choose ‘File > Export grid > Export current grid to delimited file‘. Note, the default delimiter that BatchPatch uses is the ‘?’ character. However, you can choose any delimiter that you want, including a multi-character delimiter. One thing to be careful of is to not use a delimiter that will break your output. For example, we do not recommend using a comma ‘,’. Comma is a common delimiter in many applications, but for BatchPatch it will often produce undesirable results because a BatchPatch grid may very well contain commas in its data fields. In particular, many Windows Update titles contain commas. If there is a Windows Update title in your ‘Remote Agent Log’ column, for example, then choosing comma as a delimiter is going to be problematic.

Built-in Reports

If you specifically need to produce a report of available updates or of previously installed updates for a group of computers you might want to use one of the built-in options for these particular reports. Check ‘Actions > Windows updates > Generate consolidated report of available updates‘ and ‘Actions > Windows updates > Generate consolidated report of update history‘. Once these reports have been created in BatchPatch they can both be exported to delimited files, at which point they can be imported into your favorite spreadsheet or database application.

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

Remotely Uninstalling Third-Party Applications from Multiple Computers

If all applications could be removed/uninstalled with the same exact command, then it would never be a challenge, but unfortunately that’s not the case. Different applications will inevitably require different methods or commands for uninstallation. In most cases there is a lot of similarity from application to application, which makes it pretty simply to determine the proper method. However, it’s certainly always possible that an application’s silent/quiet removal needs to be performed with an out-of-the-ordinary method. In those cases it’s usually best to reach out to the vendor or search Google for proper uninstallation/removal steps.

Determining the Silent / Quiet / Unattended Software Removal Parameter

The most important part when it comes to remotely installing and removing software is understanding that software that is installed or uninstalled remotely must not require any user input during the operation. Under normal circumstances when you try to add or remove an application from Windows, you click on something (an executable or a link in the add/remove programs wizard) that initiates the process. But the first thing that happens after initiating the task is that you are prompted with a confirmation dialog of some kind. The problem is that if your attempt to remotely install or remove the application requires any user intervention, such as clicking OK to confirm removal, then the process will never complete because you will not be able to remotely click OK to a hidden dialog on a target computer. Your process will instead just appear to hang indefinitely. Before attempting any remote software install/uninstall you should read this posting: Understanding and Discovering the Silent Parameters Required to Remotely Deploy Software with BatchPatch

Removing FeedReader 3.14

Last week a user asked how to use BatchPatch to remotely remove FeedReader 3.14 from numerous target computers. He tried using BatchPatch’s ‘Execute remote process/command‘ feature to run each of the following commands on target computers:

"C:\Program Files (x86)\FeedReader30\unins000.exe"

AND

"C:\Program Files (x86)\FeedReader30\unins000.exe" /S

However, neither command was able to perform the remote software removal. Not surprisingly, if a command is not successful at the command line of the target computer *without* using BatchPatch, it will certainly never be successful when executing through BatchPatch. In order to determine the proper command for uninstallation, we noted to this user that he would need to first test at the cmd prompt of the target computer. In our lab we ran the following commands until until stumbling upon the one that would perform the software removal *without* requiring any additional user input.

"C:\Program Files (x86)\FeedReader30\unins000.exe"
"C:\Program Files (x86)\FeedReader30\unins000.exe" /S
"C:\Program Files (x86)\FeedReader30\unins000.exe" /s
"C:\Program Files (x86)\FeedReader30\unins000.exe" /Q
"C:\Program Files (x86)\FeedReader30\unins000.exe" /q
"C:\Program Files (x86)\FeedReader30\unins000.exe" /quiet
"C:\Program Files (x86)\FeedReader30\unins000.exe" /silent

It turned out in the end that the correct command for FeedReader 3.14 is:

"C:\Program Files (x86)\FeedReader30\unins000.exe" /silent

That command immediately uninstalls the application with no additional user input required, whereas all of the other commands popup a dialog (see screenshot below) asking for the user to click OK to proceed with the uninstallation.

Once the proper command is determined, only then should it be inserted it into the ‘Remote process/command‘ dialog in BatchPatch. At that point remote execution of the software removal on numerous target systems is quick and simple!

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

Remotely Deploying the Patch to Fix Intel’s ‘Meltdown’ CPU Security Flaw

As you have probably already seen in the tech news this week, all Intel CPUs have a newly discovered flaw being called ‘Meltdown‘. More information is available here.

Currently the only way to address this hardware flaw is by applying an update to the operating system. If you will be using BatchPatch to distribute the update to your computers then you have a couple of different options for making this happen.

The update has been released under the following KB IDs, which vary depending on the version of operating system that is installed on your computer. You should definitely read the KB release notes (links below) because there are important compatibility issues, particularly with anti-virus applications, to be aware of before installing the update, which are outlined on the pages linked below.

KB4056892 (applies to Windows 10 version 1709)
KB4056891 (applies to Windows 10 Version 1703)
KB4056890 (applies to Windows 10 Version 1607, Windows Server 2016)
KB4056888 (applies to Windows 10 Version 1511)
KB4056893 (applies to Windows 10 Enterprise released in July 2015)

Applying the Update to Systems that Have Access to the Internet or a WSUS

For systems that have access to the internet or a WSUS, applying the update with BatchPatch should be very straightforward. You’ll simply need to execute your normal Windows Update routine so that computers download and install the appropriate update. For most users this means you’ll execute ‘Actions > Windows updates > Download and install updates + reboot if required‘ or similar.

In the case with my lab Windows 10 Version 1607 computer, when I ran BatchPatch ‘check for available updates’ this is the result I got:

To update this computer I will simply execute ‘Download and install updates + reboot if required‘ and that should be all I need to do.

Applying the Update to Systems that Do Not Have Access to the Internet or a WSUS

Using Offline Mode to Deploy the Updates:

If you are applying this out-of-band patch to systems that do not have internet access or access to a WSUS, one option is to wait until Microsoft publishes the next WsusScn2.cab file, which they do on a monthly basis. The next release of this file *should* have the relevant updates included, which means that you will be able to follow your normal routine of applying Windows updates using ‘offline mode‘ in BatchPatch.

EDIT 20180108: Microsoft released a new WsusScn2.cab file on Jan 4, 2018 that contains the relevant updates.

Using the BatchPatch ‘Deployment’ Functionality to Deploy the Updates:

You will need to first manually download the required update from the Microsoft catalog. Links to each update (each OS version has its own update) are provided on the pages linked above for each KB ID. Once you have downloaded the relevant update for each operating system in your environment, and once you have read through the KB articles to make sure that your systems are ready to receive the update, then you may go ahead and deploy the .MSU file using BatchPatch’s standard ‘Deploy’ method for .MSU files, which is outlined here: Remotely Deploy a Standalone .MSU Update to Multiple Computers

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

Remote Control Patch Management Software

BatchPatch is one of the most cost effective and easiest to use patch management solutions available today. Below I will discuss the core features available:

Remote Windows Update Patch Management With or Without WSUS

BatchPatch provides you with the ability to apply Windows updates to numerous computers on-demand and simultaneously. Regardless of whether or not you have a WSUS (Windows Server Update Services) server in your environment, you can use BatchPatch to help with patching. It will work in conjunction with your local WSUS if you have one, or if you don’t have a WSUS it will work with Microsoft’s public Windows update servers. This video tutorial and this written tutorial demonstrate basic usage of BatchPatch for remote Windows update.

Online Patch Management for Networks That Have Access to the Internet or a Local WSUS Server

We consider BatchPatch to have two primary modes– online mode and offline mode. Online mode is the default mode for BatchPatch. It enables you to initiate Windows update remotely on many computers, so long as those computers have access to the internet or to a local WSUS server. This link explains all of the different possible patching scenarios, and it includes links to tutorials for each of the modes of operation.

Offline Patch Management for Networks That Do Not Have Access to the Internet or to a Local WSUS Server

BatchPatch’s ‘offline mode’ enables administrators to apply Windows security updates to numerous computers that do not have internet access and do not have access to a local WSUS. When offline mode is enabled BatchPatch utilizes the Microsoft WsusScn2.cab file to determine which security updates are available to target computers. These updates can then be downloaded by BatchPatch on a computer that has internet access. Once downloaded, the security updates can be moved to the offline network for distribution by BatchPatch. You can read more about all of the possible offline mode uses along with tutorials here: BatchPatch Cached Mode and Offline Updates

Job Queues and Custom Sequences

One of the coolest and most powerful features that BatchPatch offers is for job queues and custom sequences. You can have BatchPatch execute multiple actions, sequentially, for each target computer, enabling you to have a single-click method to execute various tasks on multiple target computers such as the following:

1. run a script
2. install updates
3. reboot
4. run another script

Additionally, not only does BatchPatch have the job queue to execute multiple steps on each computer, but BatchPatch also has the advanced multi-row queue sequence, which enables you to combine job queues of different computers into a single larger multi-host sequence. This enables you to do many things with just a single click, but one simple example might be:

1. install updates on computer 1
2. reboot computer 1
3. run a script on computer 1
4. install updates on computer 2 and computer 3
5. reboot computer 2 and computer 3
6. run a script on computer 2 and computer 3

Software Deployment

In addition to all of the Windows update features that BatchPatch offers, no patch management solution is really complete without the ability to deploy software and software updates for 3rd party applications. We have numerous tutorials and examples posted on the BatchPatch software deployment page.

Remote Reboot, Remote Script Execution, Inventory Operations

Finally, BatchPatch offers various different capabilities for remotely rebooting, remotely shutting down, Wake on LAN, remote script execution, collecting inventory information from target computers, and more. All of these (and other) BatchPatch operations can operate on numerous target computers at the same time. This makes it very easy and convenient when you need to apply updates to many computers or reboot many computers or deploy a registry value to many computers etc. If you peruse the home page you can read about more of the features that BatchPatch offers, along with links to tutorials for most features.

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

Download All Windows Security Updates to Distribute to Remote Computers

BatchPatch has a number of ways that it can work to apply Windows Updates to computers that do not have internet access or access to a WSUS. You can read more about those options here. However, today I am going to focus on how you can pre-download all Windows security updates at once in order to apply them to computers in an offline network.

In BatchPatch first make sure cached mode is enabled. To enable cached mode, go to ‘Tools > Settings > Windows Update’ and then tick the box that says ‘Enable cached mode.’

Once cached mode has been enabled you will be able to access the menu item ‘Tools > Download offline updates repository’. Click that menu item to show the offline update downloader window.

In this window you will need to tick at least one box from the ‘Operating Systems’ that you want to download updates for, as well as at least one language option. You can see in my screenshot that I have selected ‘Windows 10 / Server 2016 (x64)’ and ‘English’.

Click OK to initiate the download of the WsusScn2.cab file from Microsoft. This file will be downloaded to your BatchPatch cache directory (you can view or modify this directory under ‘Tools > Settings > Windows Update’).

After the WsusScn2.cab file is downloaded by BatchPatch it will be parsed for content so that BatchPatch can download all of the update files for the operating system(s) and language(s) that you selected on the previous screen. Then BatchPatch will present you with a download window where you may view the updates to be downloaded. You can also delete any desired updates in this window if for some reason you do not want to download them.

At this point you should click ‘Download’ to initiate the download process. BatchPatch will launch a new window to handle the entire download process. All files will be downloaded to the same cache directory that the WsusScn2.cab was downloaded.

Now that you have downloaded all of the Windows security updates, if you want to use BatchPatch to distribute them to a group of computers, you may follow the instructions outlined here.

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

BatchPatch and the Windows Update Control Panel Report a Different Number of Available Updates

Why does BatchPatch sometimes report a different number of available updates when compared to what is being reported by the control panel Windows Update interface on the target computer? This might be the most common question we receive from BatchPatch users. Today I’m going to explain all of the possible reasons why this might occur.

  1. Search Preferences: Usually when someone is seeing a different number of available updates reported by BatchPatch for a particular target computer when compared to that same computer’s Windows Update control panel, it’s because of the search scope in BatchPatch. BatchPatch might be searching a broader scope or a more narrow scope than what the Windows Update control panel is searching for.

    Under ‘Tools > Settings > Windows Update‘ review the ‘Search Preferences’ section. If you want to see every possible update then set your search to include all software updates and all driver updates. That is what we recommend for WSUS users because your WSUS approvals will control which updates are presented to target computers, and you want to make sure that BatchPatch sees every update that is presented. However, if you are using Windows Update or Microsoft Update as your search source, then we instead recommend limiting the search to only ‘Important‘ and ‘Recommended‘ updates. This will most closely emulate what Microsoft presents in the Windows Update control panel interface.

    EDIT March 2022: HOWEVER, with regard to emulating which updates are presented in Windows, please note that starting in 2022 the newest versions of Windows (10/11/2016/2019/2022) now offer certain driver updates in the normal Windows Update control panel that do not appear in BatchPatch when selecting ‘Important’ and ‘Recommended.’ In previous versions of Windows, and in earlier versions of the aforementioned versions of Windows, driver updates were either excluded altogether from appearing in Windows Update, or they were shown in a separate tab/window categorized differently from the standard Windows Updates that Microsoft considered ‘Important’ and ‘Recommended.’ That said, at the time of this writing, driver updates that appear in the normal Windows Update control panel on a computer will still only show in BatchPatch if the ‘Search for driver updates’ checkbox is ticked in the BatchPatch ‘Search Preferences’. Driver updates will generally not be displayed in BatchPatch when selecting ‘Important’ and ‘Recommended’ in versions of BatchPatch released in or before March 2022. In the next release of BatchPatch we expect to offer a new search option that will emulate the new Windows Update control panel search settings.

  2. Server Selection: It’s possible that BatchPatch is instructing the target computer to search for updates from a different source than when the computer searches for updates without BatchPatch. If you want to make sure that BatchPatch is using the same source as the target computer’s Windows Update control panel then make sure to select ‘Default / Managed‘. Selecting one of the other options in the BatchPatch settings will instruct BatchPatch to override any settings on the target computer to instead use either Windows Update or Microsoft Update as the search source.

    Default / Managed: Uses the target computer’s existing configuration to determine where to search for updates.

    Windows Update: Bypasses the target computer’s configuration and searches for updates on Microsoft’s public server. Includes only Windows updates.

    Microsoft Update: Bypasses the target computer’s configuration and searches for updates on Microsoft’s public server. Includes Windows updates AND updates for other Microsoft products. Before using Microsoft Update, target servers must be opted-in to the service. See ‘Actions > Windows Updates > Opt-in…

  3. Stale Results: The Windows Update control panel interface on the target computer might be showing stale results. Particularly in newer operating systems, the update list in the interface is cached and can frequently show results that are no longer accurate, whereas BatchPatch always performs a fresh search and will therefore never show you stale results. You might want to force the Windows Update control panel to perform a new search to make sure it’s showing results that are accurate and up to date. You can also look at the Windows Update history to see if the updates in question have already been installed (‘Actions > Windows updates > Generate consolidated report of update history‘). See this posting for more details on refreshing stale search results.
  4. Offline Mode: If you have enabled offline mode you will likely notice a discrepancy between the available updates that are reported in BatchPatch as compared to the available updates reported in the Windows Update control panel. This is because offline mode is designed for offline scanning when no internet or WSUS is available. An offline mode scan relies on the WsusScn2.cab file that Microsoft releases each month. First, make sure that you are always using the latest WsusScn2.cab file that is available so that you can get the latest updates. However, please also note that while this file contains all security updates as well as various other updates that Microsoft decides to include in it, the WsusScn2.cab file does not contain every single update that is published on Microsoft’s public Windows Update and Microsoft Update servers. On the other hand it’s also the case that the WsusScn2.cab file will sometimes contain updates that are actually not offered through the online channels.
  5. Dual-Scan: Even if you did not specifically enable “Dual-Scan” it might already be enabled on your computers without you even realizing it, due to the way that Microsoft deployed this “feature”. In this case your Windows Update scans might be searching Microsoft’s public Windows Update servers instead of your own local WSUS server. See here for more:

    **Dual-Scan Difficulties with Windows Update on Windows 10 Versions 1607 Anniversary Update and 1703 Creators Update

    **Deciphering Dual-Scan Behavior in Windows 10

  6. SCCM: If you have SCCM in your environment you need to be aware of the fact that once SCCM takes control over a WSUS, that WSUS cannot be used by a non-SCCM application like BatchPatch to search for updates. So, if your target computers are configured via Group Policy to search for updates on a WSUS that is controlled by your SCCM server, then when BatchPatch initiates a scan for available updates it will always report ‘No applicable updates’. In order to use BatchPatch with a WSUS, the WSUS must be independent and cannot be linked to or controlled by SCCM.
  7. DNS: Make sure that BatchPatch is actually connecting to the machine that you think it is connecting to. After you use BatchPatch to check for updates, the ‘Remote Agent Log’ column will include, among other things, the actual computer name of the target computer, as reported by the target computer. It’s conceivable that your DNS server is returning stale results, and this causes you to connect to a different computer than you think you are connecting to, so make sure to verify that you are definitely connecting to the correct/desired computer.
  8. Optional / “Seeker” Updates: In Windows 10/2019 build 1809 or newer, if you go to the Windows Update control panel on a machine that was recently updated, you may find additional optional updates available if you use the ‘Check for updates‘ button. Microsoft releases these optional updates usually toward the end of the month. While the updates do not contain any new functionality they may contain fixes for specific outstanding issues. They are released through what is essentially a completely separate channel that is only available to “seekers” who use the ‘Check for updates‘ button. At the time they are made available to “seekers” as optional updates they are not yet released to WSUS nor are they released to the normal automatic updates channel in ‘Windows Update’ or ‘Microsoft Update.’ However, Microsoft moves them from optional status into the normal release channel in the following month after they are initially released to “seekers.”

    Starting with the October 2019 release, BatchPatch can find these optional updates by selecting the checkbox under ‘Tools > Settings > Windows Update > Search for only optional software updates

    Unless you have a specific need for one of these optional updates, we generally do not recommend installing them. We believe that unless you have a specific need for a fix that is included in one of these updates, it usually makes the most sense to wait until the following month when Microsoft moves them from optional status to the normal deployment channels.
Posted in Blog, General, Tutorials | Tagged | Comments closed

Understanding the ‘Special’ Items in the BatchPatch Job Queue

The BatchPatch Job Queue has a number of “special” items that you can use to control the behavior of the queue. You can see these options in the screenshots below. Today I’m going to explain each of these special actions.


    Wait X minutes

  • Wait X minutes – This action is pretty self-explanatory. You can add a wait period to your job queue if you need the queue to pause for a period of time before continuing execution. The most common reason an administrator uses a wait period is when rebooting a target computer to give it ample time to shutdown and restart before the next queue action is executed. You can string together multiple wait periods, if desired. Here is one possible way you might use a wait period in your job queue:
    Step 1: Download and install updates + reboot always
    Step 2: Wait 10 minutes
    Step 3: Download and install updates + reboot if required

  • Wait for host to be detected online

  • Wait for host to be detected online – If you insert a ‘Wait for host to be detected online’ into your job queue, when the queue reaches this step it will check to see if it can ping the target computer and perform a successful WMI query. If it can do both of these, then the queue will advance to the next step. If it cannot do both, then it will wait a minute before trying again. The loop will continue until it is successful or until the global timeout is reached. When the global timeout is reached the queue will either terminate or continue, depending on how you have set your global timeout configuration. You can see the timeout configuration options in the screenshot below.

    IMPORTANT: ‘Wait for host to be detected online’ should generally not be placed immediately after a reboot action. The reason for this is because in that case the ‘Wait for host to be detected online’ will occur just a split second after the reboot is initiated, which means that the target computer will probably still be online, and so the check will complete successfully, and the next step in the queue will be triggered. The problem is that the machine will then probably go offline while that next step is executing, which will create undesirable results. Here is one possible way you might use ‘Wait for host to be detected online’ in your job queue.

    Step 1: Download and install updates + reboot always
    Step 2: Wait 10 minutes
    Step 3: Wait for host to be detected online
    Step 4: Download and install updates + reboot if required

  • Wait for host to go offline and come back online

  • Wait for host to go offline and come back online – This special action provides you with an alternative way to wait for a computer to reboot before executing more actions. If this action is used immediately after a reboot step, BatchPatch will monitor the target computer until it goes offline and comes back online. The target computer is not considered online again until it is both pingable and responding to WMI queries. If the global timeout is reached before the computer goes offline and comes back online, the queue will either continue or be terminated, depending on how you have set your global timeout configuration. You can see the timeout configuration options in the screenshot below.

    IMPORTANT: ‘Wait for host to go offline and come back online’ should be used carefully. In particular, we do not recommend using this special action with virtual machine target computers. The reason for this is because virtual machines can often reboot within just a couple of seconds, which unfortunately can be too fast for BatchPatch to successfully detect. If the machine reboots so rapidly that BatchPatch does not know that it ever went offline, then ‘Wait for host to go offline and come back online’ will hang until the global timeout is reached, which will leave you with undesirable results. Additionally, note that if you use ‘Wait for host to go offline and come back online’ immediately after a ‘…reboot if required’ action, you’ll have a problem if reboot is NOT required because then ‘Wait for host to go offline…’ will wait indefinitely until it times out. Here is one possible way you might use ‘Wait for host to go offline and come back online’ in your job queue when the target computer is not a virtual machine.

    Step 1: Download and install updates + reboot always
    Step 2: Wait for host to go offline and come back online
    Step 3: Download and install updates + reboot if required

  • Wait for host to have zero logged-on users

  • Wait for host to have zero logged-on users – Just as it sounds, this special item will cause the BatchPatch job queue to wait until the target computer does not have any logged-on users before proceeding with the next step in the job queue. Here is one possible way you might use ‘Wait for host to go offline and come back online’ in your job queue when the target computer is not a virtual machine.
    Step 1: Wait for host to have zero logged-on users
    Step 2: Download and install updates + reboot if required

  • Terminate queue if previous ‘Check for available updates’ finds 0 updates

  • Terminate queue if previous ‘Check for available updates’ finds 0 updates – This special item works in conjunction with ‘Check for available updates’ to determine whether or not to continue the queue or terminate it. Here is one possible way you might use “Terminate queue if previous ‘Check for available updates’ finds 0 updates” in your job queue. As soon as a ‘Check for available updates’ finds 0 available updates, the queue will terminate.
    Step 1: Check for available updates
    Step 2: Terminate queue if previous 'Check for available updates' finds 0 updates
    Step 3: Download and install updates + reboot always
    Step 4: Wait 10 minutes
    Step 5: Wait for host to be detected online
    Step 6: Check for available updates
    Step 7: Terminate queue if previous 'Check for available updates' finds 0 updates
    Step 8: Download and install updates + reboot always
    Step 9: Wait 10 minutes
    Step 10: Wait for host to be detected online
    Step 11: Check for available updates
    Step 12: Terminate queue if previous 'Check for available updates' finds 0 updates
    Step 13: Download and install updates + reboot if required

  • Terminate queue if previous action fails/errors

  • Terminate queue if previous action fails/errors – This option is typically used when incorporating custom scripts into your job queue. Failure of a script or action is determined by the return value of that script/action. Any non-zero return value will be considered a failure/error by the BatchPatch job queue. So if you want to run a custom script before downloading and installing updates, and you only want the download/install to occur if the script performs desired actions, then have your script return 0 when successful and some non-zero value when it’s not successful. Then you can setup a job queue similar to this:
    Step 1: Execute your custom remote command here
    Step 2: Terminate queue if previous action fails/errors
    Step 3: Download and install updates + reboot if required

  • Abort basic multi-row sequence if previous action fails/errors

  • Abort basic multi-row sequence if previous action fails/errors – Unlike the aforementioned item to ‘Terminate queue if previous action fails/errors’ this action will not terminate the current job queue but will instead terminate the entire basic multi-row queue sequence that this job queue is running in. The current job queue will complete, but the basic multi-row queue sequence will stop there. No more rows will be triggered.

    IMPORTANT: If you want/need both the current queue *and* the basic multi-row queue sequence to be terminated if the previous action fails/errors, then you would need your job queue to look something like this. If you were to swap the order of steps 2 and 3, you would not get the desired behavior:

    Step 1: Execute your custom remote command here
    Step 2: Abort basic multi-row sequence if previous action fails/errors
    Step 3: Terminate queue if previous action fails/errors
    Step 4: Download and install updates + reboot if required

  • Abort advanced multi-row sequence if previous action fails/errors

  • Abort advanced multi-row sequence if previous action fails/errors – Unlike the aforementioned item to ‘Terminate queue if previous action fails/errors’ this action will not terminate the current job queue but will instead terminate the entire advanced multi-row queue sequence that this job queue is running in. The current job queue will complete, but the advanced multi-row queue sequence will stop there. No more rows will be triggered.

    IMPORTANT: If you want/need both the current queue *and* the advanced multi-row queue sequence to be terminated if the previous action fails/errors, then you would need your job queue to look something like this. If you were to swap the order of steps 2 and 3, you would not get the desired behavior:

    Step 1: Execute your custom remote command here
    Step 2: Abort advanced multi-row sequence if previous action fails/errors
    Step 3: Terminate queue if previous action fails/errors
    Step 4: Download and install updates + reboot if required
Posted in Blog, General, Tutorials | Tagged , | Comments closed

The Windows Update Control Panel in Windows 10/2016 is Not Up To Date After Using BatchPatch To Install Updates

After you install updates with BatchPatch (or with any third-party tool or script) you might notice that if you then look at the Windows Update control panel GUI on a Windows 10 or Windows 2016 target computer that it will not usually be up to date. Instead it will display stale, cached search results that are no longer accurate after applying the updates with BatchPatch. You can close and re-open the GUI over and over, you can restart the Windows Update service, and you can use the ‘check for updates’ option in the interface repeatedly, but still the GUI will display old search results that are no longer valid.

In reality this is just a cosmetic issue. However, we have some users who for one reason or another need or want this GUI to always reflect the current status of the available updates on the computer. In previous versions of Windows prior to 10/2016 this was not so much of an issue because you could initiate a new check for updates on-demand in the Windows Update control panel GUI. But starting with Windows 10 and 2016 it’s no longer an option. And if you tried using the command line action wuauclt.exe /detectnow or wuauclt.exe /resetauthorization /detectnow or wuauclt.exe /reportnow you would have noticed that those commands don’t seem to do anything in 10/2016.

In Windows 10/2016 there is a new command line utility UsoClient.exe that can be used to resolve this discrepancy. This Microsoft blog posting explains that we can use UsoClient.exe startscan from an administrator command prompt on Windows 10/2016 to effectively replace wuauclt.exe /detectnow.

This posting exposes some other switches that apparently exist for UsoClient.exe, though at the moment I’m not sure how useful the other switches will be for most BatchPatch users, and I have not tested those other switches either, so I can’t comment on if they work as described. They are:

StartScan (Used To Start Scan)
StartDownload (Used to Start Download of Patches)
StartInstall (Used to Install Downloaded Patches)
RefreshSettings (Refresh Settings if any changes were made)
StartInteractiveScan (May ask for user input and/or open dialogues to show progress or report errors)
RestartDevice (Restart device to finish installation of updates)
ScanInstallWait (Combined Scan Download Install)
ResumeUpdate (Resume Update Installation On Boot)

Executing UsoClient.exe on target computers

BatchPatch has a built-in menu item to execute the StartScan option of UsoClient.exe: Actions > Windows updates > usoclient.exe /startscan This is the most commonly needed command, but you can also optionally hardcode any additional commands that you desire using the instructions posted here.

Once the command has been hard-coded into your BatchPatch installation you will be able to execute it on-demand for target computers in your grid at any time, but you can then also easily add it to job queues. If you are one of those users who really wants or needs the target computers’ Windows Update GUI to be accurate at every moment, then you might consider appending the UsoClient command to the end of a job queue that downloads/installs updates on your target computers. This way you could ensure that after updates are installed the GUI on the target computers will reflect the current state rather than showing stale information.

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

Remotely Apply Windows Updates from a Local WSUS Server to Multiple Computers

Today we’re going to take it back to the basics and review some of the core functionality that BatchPatch offers. Specifically we’re going to look at how you can use BatchPatch to download and install Windows Updates on numerous target computers, simultaneously, when those computers are configured to receive updates from a local WSUS server. BatchPatch can, of course, also be used to trigger the update process on computers that are not using a WSUS. In either case, BatchPatch can also monitor the process to completion and optionally execute a reboot, if required by the installation, and monitor the reboot too, to make sure that all computers come back online in a timely manner.

WSUS and Group Policy

If you are utilizing a Windows Server Update Services (WSUS) server then you are going to have a Group Policy (or the corresponding, underlying registry key/value) configured on each of the target computers that is pointing to the WSUS server. For more details on the Group Policy setting, please see BatchPatch Integration with WSUS and Group Policy

If you’re not sure whether or not your target computers are actually configured to use the WSUS, you can use BatchPatch to find out the value of the Group Policy setting mentioned above for your target computers. To do that highlight the desired computers in your BatchPatch grid and select ‘Actions > Windows updates > Get Windows Update configuration’ as shown in the screenshot below.

You can see the results below, which show that my targets are configured to use my local WSUS server, WIN2012R2, for their updating.

“Dual Scan” Considerations

It is important to note that in the case of Windows 10 and Windows 2016 target computers, having a value set for the aforementioned Group Policy actually does not tell the complete story of where those target computers will search for updates. Ever since the introduction of “Dual Scan” by Microsoft, which arrived in late 2017, things have become a bit more tricky. If you determine, using the above method, that your target computers are pointing to a WSUS server, it’s still possible that they will retrieve updates from Microsoft’s public Windows Update or Microsoft Update servers if “Dual Scan” is enabled. To determine, with certainty, whether or not Dual Scan is enabled and whether your machines are going to search for and retrieve updates from your local WSUS server or Microsoft’s public update servers, please review the following two posts carefully:

‘Dual Scan’ Difficulties with Windows Update on Windows 10 versions 1607 ‘Anniversary update’ and 1703 ‘Creators update’

Deciphering ‘Dual Scan’ Behavior in Windows 10

Applying Windows Updates Remotely

In BatchPatch you should first verify your Windows Update settings under ‘Tools > Settings > Windows Update’. If you want BatchPatch to respect the current configuration of your target computers, then make sure the ‘Server Selection’ value is set to ‘Default / Managed’ as it is in the screenshot below. The ‘Default / Managed’ setting tells BatchPatch to use the target computer configuration to determine where to search for and retrieve updates. If the target computer is configured to utilize your local WSUS, then BatchPatch will do that. If the target computer is configured to utilize Windows Update or Microsoft Update, then BatchPatch will do that.

However, if you want BatchPatch to ignore the target computer settings and search only against Windows Update or Microsoft Update, then you can change the Server Selection value as desired. So for example if you set the BatchPatch Server Selection to ‘Windows Update’ then it does not matter if your target computers are configured via Group Policy to utilize your local WSUS server because BatchPatch will tell them to use Windows Update when BatchPatch initiates its scans. Note, BatchPatch does not modify the target computer configuration in this case. It simply overrides the target computer configuration when actions in BatchPatch are initiated.

When you are finally ready to actually search for, download, and install updates on your target computers, highlight the desired computers in your BatchPatch grid, and then select ‘Actions > Windows updates…’ and the desired operation, whether that be to just check for available updates or to just download available updates or to download and install updates plus reboot etc.

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

Troubleshooting Errors 1611: 64 , 1620: 64 , 1611: 2250 , 1620: 2250

The following errors are probably some of the least common errors that BatchPatch users encounter, but they can also be the most difficult to understand and troubleshoot, so I want to take some time today to address them.

Error 1611: 64. Failure
Error 1620: 64. Failure
Error 1611: 2250. Failure
Error 1620: 2250. Failure

Generally speaking, all four of these errors typically have the same underlying cause, though their manifestation is slightly different. The 1611 and 1620 numbers simply indicate where in BatchPatch the errors occurred. However, the numbers that come after the 1611 and 1620 are the actual Windows system error codes being generated during the failure. In the case of this posting we are focusing specifically on Windows System Error Codes 64 and 2250.

The entire set of Windows system error codes and their meanings are available from Microsoft at this link: Windows System Error Codes

ERROR_NETNAME_DELETED
64 (0x40)
The specified network name is no longer available.

ERROR_NOT_CONNECTED
2250 (0x8CA)
This network connection does not exist.

In both cases BatchPatch is successfully establishing a connection with the target computer briefly, but then that connection is severed very soon after being established, which causes BatchPatch to display one of the above errors.

The primary question that needs to be answered when one of these errors is encountered is what could possibly be interrupting an existing connection between the BatchPatch computer and the target computer?

Likely Causes of Errors 64 and 2250

The most common/likely causes of an interruption to an existing connection are the following, in no particular order, but it’s certainly possible that something else is responsible for the issue. Below are only the things that we have ever seen cause this:

  • Host Instrusion Prevention/Protection Software (HIPS). This type of software may very well be the cause. It could be severing the network connection or perhaps more likely might be killing the remote psexesvc.exe process/service, which then causes the 64 or 2250 error to occur back at the BatchPatch console. Consider disabling any HIPS software to test. If disabling the software solves the problem, then consider re-enabling the software but whitelisting psexesvc.exe and psexec.exe. Alternatively, we have found that in these cases where HIPS or similar software is the culprit, using a custom remote service process name instead of psexesvc.exe is frequently sufficient to bypass detection. In BatchPatch under ‘Tools > Settings > Remote Execution > Use PsExec -r switch’ you can provide a custom name for the remote service. We recommend something like ‘BatchPatchExeSvc‘.

  • Anti-virus software or any other similar security related or endpoint protection type software. These apps can all cause similar behavior, and they would be addressed in the same way as described above for HIPS.
  • Firewall. A traditional firewall might be less likely to be the typical culprit for 64 and 2250, but it’s still possible that there is something going on with a firewall that could cause the issue. If all else fails, it would be worth re-examining your firewall configuration just to make sure. However, in most cases a security application (one that is *not* a traditional firewall application) installed on the target computer or on the BatchPatch computer, such as the type of software mentioned above, is more likely to be the culprit.

Additional considerations: It’s worth also trying FQDN or IP address instead of NetBIOS name. Additionally, consider trying integrated security instead of alternate credentials, or vice versa.

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