SysQueryPro - The Best Ultimate System Querying Tool.

This is a tool I've been developing and using for over 10 years. It was something that I needed for my support role and didn't want to just keep using scripts to accomplish the tasks.



12/6/20236 min read

Do the following trouble you?

  1. Which computers have recently installed software X?

  2. Can you provide a list of computers without a specific software package installed?

  3. How do I identify computers running an older version of software X?

  4. Is there a way to list all software installed on a particular user's computer?

  5. Can you check for the presence of software X on all laptops in the organization?

  6. How can I generate a report of software installations for auditing purposes?

  7. Is there a method to detect and uninstall unauthorized software on workstations?

  8. How do I identify computers that have not received a particular software update?

  9. Can we automate the removal of a specific software application from multiple computers?

  10. How do I know who has X application installed?

  11. How can I remotely verify the existence of a specific registry key on multiple servers?

  12. Is there a tool to compare registry key values across multiple workstations?

  13. How do I ensure a specific registry key is consistent across all domain controllers?

  14. What's the best approach to query the registry for specific information on user profiles?

  15. How can I check if a critical service is running on all servers in the infrastructure?

  16. Is there a way to restart a specific service on all domain controllers simultaneously?

  17. Can you provide steps to disable a non-essential service on all workstations?

  18. How do I troubleshoot and resolve service startup issues on remote computers?

  19. and many many more

if so, get the tool. It's free for 10 concurrent systems.

SysQueryPro is a tool I have open all day long in the office.

***NOTE: You must have admin access on the computers for which you are connecting remotely.***

In my role I need to reach out to many systems and make sure they're getting content, or that services are running, or sometimes just need to ping and see who is in the office.

Whatever the case may be I need real-time responses or resolutions. That is why this tool was created. I admit it isn't perfected, because I like to add tweaks here and there, but it is great for what it is.

I work with mainly Microsoft systems within a large global organization. This tool is designed to work on windows systems targeting windows based system data within a Active Directory Domain environment.


Adding Systems - 3 Options

If you purchased the Enterprise license, then you can connect to MECM (SCCM/SMS) and add from ADsite collections. With this option you can differentiate between servers or non-server class systems.

You can type in computer names to add from the textbox area the select "Add From Textbox"

You can add computers from a single column text file with the "Add From File" option

***Note: Limited to 10 machines for the free version. Unlimited computers for the professional/Enterprise versions.***

Query Options - 5 Options

+1 for professional/Enterprise

Query Online Status - Is the machine on?

Can in ping it?

What is the ip address?

Who is logged in?

What AD Site?

What type of system?

What Operating System?

When was it imaged?

Query Service Status - Is a service running or disabled?

The top combo box is filled with the local services, so you can select one locally to query on all the remote systems.

The empty Textbox can be use a service Alias such as Winmgmt as an alias for Windows Management Instrumentation.

if you don't select any Radio buttons, then it will merely Query to get you the status of the services on the remote machines.

You can choose to change the startup type (Automatic/Manual/Disable) on the services as well as Start/Stop on the remote machines.

Query Filename Status - Does the file exist on the remote PC?

What size is the file?

When was it modified?

Query Registry Key - Does the Registry key exist on the remote PC?

What is the value or values?

Query WMI - This can get complicated. :)

By Default I have the (Cimv2) Classes that I use the most often available with a checkbox to show all the ones on the local system.

Once you select the Class name, you can select a property that you wish to Query. In this example i am looking for the "Win32_Computersystem" Class and the "Manufacturer" property. It shows the local systems results being a Lenovo computer.

Sometimes you will need to filter the results. If a property has multiple results, then you may want to filter to only get the one you want. If you don't do this, then it will get stuck in a wild loop and potentially lock up the program causing you to end task and start the process.

This WMI screen uses WQL Queries in the format of "Select Manufacturer from Win32_ComputerSystem". If you use the filter option, then it will append to the end. I usually use the example you see on the right. This makes the complete command something like "Select Manufacturer from Win32_ComputerSystem where name like '%bob%'". In the filter box I would have "where name like '%bob%'"

Send me a note if you have any issues and I'll try to find a way to get the results you need.

Execute Custom Script - This is for those that purchased the Professional or Enterprise versions.

If you can manually run a script with the argument as the computer name, then the script can be run on 1000 at a time.

The Optional result file is for reference when you want to easily exclude successful machines for next time. (to note I rarely use this option. someone else requested that I add it)

For powershell scripts you may need to set the execution level or sign them to get it to work depending on your own organization.

here are some simple examples of scripts:

Add domain account to local admin using psexec. Addlocaladmin.bat

Copy a local file to the remote computers. copy cmtrace.bat

OR a vbs file that searched for locked files on the entire HHD. findlocked.vbs

OR edit a registry key on all these computers.

The point is you can easily manipulate hundreds or even thousands of machines easily with the click of a button.

You have Results. Now what?

You can sort by clicking on the header columns.

If you have Excel installed on the computer, then you can use the "Export to Excel" option and manipulate the data.

Also if you click on the box in the top left corner (or hit ctrl-a) it will select everything and you can copy and paste it to your spreadsheet of choice.

You can highlight individual rows and copy or delete them.

You can Double-click on a row and RDP to the machine. You can highlight multiple rows and RDP to all of them at the same time. I recommend limiting this to a few at a time.

You also can Right-Click and use the context menus for a single or multiple computers..

Remove - all Machines = clear the datagrid to start over

Remove - Offline Machines = remove anything that cannot be pinged. This is useful when you're just looking for online machine to test with.

Remove - Duplicate machines. When you have several files that you import and want to make sure you're not scanning the same one over and over again.

The rest should be straight forward. run against one or many of the machines.