Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Example, to see if KB983590 is installed:

systeminfo | find "KB983590"

But what if I wanted to find out if more then one KB was installed?

share|improve this question
up vote 2 down vote accepted

Try this:

systeminfo | findstr "KB"

You can also use /i for case insensitive searching. Run findstr /? for even more options.

If you want to search for just a subset of patches, use spaces in between entries:

systeminfo | findstr "KB958488 KB976902 KB976932"
share|improve this answer
Brilliant, thanks. – MathewC Apr 27 '11 at 16:47

I'd go the route of 'find' instead of 'findstr' (simpler/easier)

systeminfo | find /I "kb"

you'll get your list.

use for /f to organize the data easier such as

for /f "tokens=2* delims= " %F IN ('systeminfo ^| find /I "kb"') DO ECHO %F%G%H

that will get rid of the numbered sequence from the beginning of each line.

if you want only the KB#####, change the tokens value to only 2 without the asterisk, and change the ending ECHO to just ECHO %F

for /f "tokens=2* delims= " %F IN ('systeminfo ^| find /I "kb"') DO ECHO %F%G%H>>"%USERPROFILE%\desktop\systeminfo.txt"

will throw it on your desktop as a .TXT file

of course if you want it ina batch file, make sure your %F has an extra % (%%F)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.