ABC-Update is a free command-line tool that allows you to install Windows updates. It is easy to use and gives you the flexibility of deploying only specific updates in your scripts.

A while back, I reviewed the comparable tool WuInstall. WuInstall has a few more switches than ABC-Update has, and it supports caching. However, contrary to WuInstall, ABC-Update is free. Thus, if you plan to update Windows at the command prompt every now and then, ABC-Update is worth a look.

I think patch management tools will gain importance once Windows 10 is released to the public. You’ve probably heard that Microsoft is planning no major releases after Windows 10. This means that, in the future, all changes to Windows will come through Windows Update.

Enterprises will have the ability to opt out from feature updates and to automatically install security updates only. However, even the most conservative IT departments will be tempted to install one enhancement or another. And, since updates often depend on other updates, things will get complicated. If you work in a complex network, scripting gives you the maximum flexibility. This is where command-line tools such as ABC-Update come in.

ABC-Update requires .NET Framework 3.5. If you launch the tool the first time on a Windows 8.1 machine where you didn’t install this version of the framework, Windows will automatically download and install .NET 3.5.

ABC-Update itself is a standalone tool and doesn’t have to be installed. You can copy it to the folder of your choice. If you just run ABC-Update, you will get a list of all missing patches from Windows Update.

List of missing updates

List of missing updates

If you have a WSUS server installed in your network, you can also bypass Windows Update and search for updates on WSUS instead by using the following command:

ABC-Update /S:WSUS

ABC-Update allows you to install all missing updates, only updates of a certain category (security, application, etc.) or type (software or driver), or only a specific update (KB number). The date filter, which enables you to select updates within a time period, is useful. For example, suppose you don’t want to always install updates right after they are released because you want to wait until other admins have found all the bugs. The following command lists all updates that are more than 30 days old:

ABC-Update.exe /:D *,-30

Listing missing updates more than 30 days old

Listing missing updates more than 30 days old

I ran the command on October 29. As you can see in the screenshot above, ABC-Update only lists updates that were released before September 29.

If you are ready to install the listed updates, you would run the following command:

ABC-Update /D:*,-30 /A:Install

ABC-Update also supports filtering by string and enables you to control reboots after installations and uninstalls. Below is a list of all available parameters, which you can display with ABC-Update /?.

ABC-Update.exe  v1.3
List and Install updates from MSUpdate or from managed Server (WSUS)
Documentation: Http://
Copyright (C) ABC-Deploy  -  Http://

   Run without parameters to list assigned but missing updates from MSUpdate

   [/A:] Action
         Default List
         List | Install | Uninstall
   [/S:] ServerType
         Default  MSUpdate
         WSUS | MSUpdate
   [/R:] Reboot If Needed  (Y/N)
         Default  N
         /R:count to allow "count" reboots. Example /R:3
   [/Q:] Query String
         Default  isHidden=0
   [/T:] Type
         Default  Type='Software'
         Software | Driver
   [/C:] Category(s)
         Comma separated list of Category Names to include
         Default  include all categories
         Valid Names:
   [/K:] KB Article Number(s)
         Default  include all KB's
         Comma separated list of KB Article numbers to include
   [/N:] Name / Title
         Default  "*"            Meaning all
         * Anything
         % One character
         # One digit
   [/D:] Date Interval of update
         Format: From-To
         Default *,*             Meaning all
         *,            from anytime     to,Now          from  to  Now,-30          from  to  30 days ago


   Run without parameters to list all assigned but missing updates from MS Update

   List all assigned updates from WSUS server
   ABC-Update.exe /S:WSUS

   List and install all assigned but missing updates from WSUS Server
   Install missing updates. No reboot
   ABC-Update.exe /S:WSUS /A:Install /R:N

   List and install all assigned but missing Security Updates from WSUS server
   Install missing updates. Reboot if needed
   ABC-Update.exe /S:WSUS /A:Install /R:Y /C:SecurityUpdates /Q: IsInstalled=0 AND isAssigned=1 AND IsHidden=0

   Uninstall two updates from WSUS Server
   Uninstall named updates. No reboot
   ABC-Update.exe /S:WSUS /A:UnInstall /R:N /K:KB2585542,KB2631813
  1. Stephen 8 years ago

    What I need is the ability to run this against multiple machines at the same time and have them reboot without having to install this on each one.

  2. Flemming Varmer 8 years ago

    Hi Stephen

    Many ways to do what you are asking. PsExec is just one option
    PsExec is available as free download from Microsoft

    C:> psexec \\target -c -s \\server\path\ABC-Update.exe /S:WSUS /A:Install /R:3

    \\target The remote Windows machine
    \\server\path\ Path to ABC-Update executable

    -u domain\user A user who is a local admin on the remote machine
    -p password password of the user
    -u and -p can be omitted if you are logged on as an admin. PsExec will use current login

    -c copies ABC-Update.exe to the remote system
    -s executes the command (ABC-Update.Exe) on the local system

    One idea is to put names of all remote machines to update into a file, and use the FOR command to push ABC-Update to all machines

    C:> For /f %x in (MyFile.Txt) do start psexec \\%x -c -s \\server\path\ABC-Update.exe /S:WSUS /A:Install /R:3

    This can of cause be scheduled in the Windows task scheduler to execute at night.

  3. OzInCanada 8 years ago

    Just tried the software. Works great, especially with psexec to deploy remotely.
    Is there a switch parameter to log the output of the commands (and other commands) below
    Would be great to see the results of the activties

    For /f %x in (MyFile.Txt) do start psexec \\%x -c -s \\server\path\ABC-Update.exe /S:WSUS /A:Install /R:3

  4. Flemming Varmer 8 years ago

    With Version 1.5 there are two additions to ABC-Update
    V1.5 is available here:

    Logging has been added
    [/Log:] Filename; File is overwritten if already exist
    [/Log_Append:] Filename; Log data is appended to file if exist

    Filtering by Name / Title
    Like: : ABC-Update.exe /N: *Microsoft Office*2010*
    * Matches anything
    % Matches one character
    # Matches one digit

  5. Paolo Maffezzoli 4 years ago

    ABC-Update is still an helpful tool for patch management, just an addiction, Abc-Update is provided as freeware also for commercial use.

  6. Anthony 4 years ago

    Hi Anyone using ABC-update

    Trying to get it going on  few new 2016 servers.

    Same domain, same admin account?

    Think it failing on running the psexec – abc-update on the remote servers.

    Thank you

  7. Binh 1 year ago

    The command that lists all updates that are more than 30 days old should be this instead:

    ABC-Update.exe /D: *,-30


Leave a reply

Your email address will not be published.


© 4sysops 2006 - 2022


Please ask IT administration questions in the forums. Any other messages are welcome.


Log in with your credentials


Forgot your details?

Create Account