MSInfo32: An Easy Way to Generate a Windows System Report


The Best WordPress plugins!

1. WP Reset

2. WP 301 Redirects

3. WP Force SSL

The MSInfo32.exe file is an easy way to generate a Windows system report on your PC, complete with all of the hardware information and compatibility details you need. This simple utility will help you troubleshoot any issues before they get out of control by providing relevant data in an easily-digestible format that can be passed off as fact to other users in order for them to fix their own machines or provide insight into what might cause potential problems.

The “msinfo32 vs systeminfo.” is a question that has been asked many times. The answer to this question is that the “msinfo32” will give you more information about your computer, but it can be very time consuming.

MSInfo32: An Easy Way to Generate a Windows System Report

Have you ever tried to develop a computer system information report? Gathering system data may seem complicated, but the Microsoft System Information Tool (MSInfo32) makes collecting all of that information a breeze!

In no time, you’ll be able to generate and examine system information reports after reading this article. Continue reading to find out more!


You may use any Windows 10 build for this instruction. PowerShell is required to read system reports from the command line. This article utilizes PowerShell v7.1 and Windows 10 version 21H1 build 19043.

Viewing a Report on System Information

The MSInfo32 utility is the initial step in getting extensive information about your system.

To locate the utility, go to the Start Menu and type MSInfo32, making sure to choose Run as administrator.

MSInfo32 cannot update its internal information cache appropriately if it is not launched as an administrator, and certain drivers may seem to be stopped when they are not.

The tool will show you with an automatically created report as soon as it opens. In the System Summary view, you’ll see a hardware summary of your machine. This view gives you a bird’s-eye perspective of the system’s setup. On the left, you’ll see categories that break down each area further.

Using MSInfo32 to see the System Summary. Using MSInfo32 to see the System Summary.

MSInfo32 reports may be saved.

Perhaps you’re planning to upgrade your system’s hardware and want to preserve a system information report for later comparison or reporting. You have two choices for saving information with MSInfo32: saving and exporting. You’ll find out more about them later.

You may save the information as an NFO file, which is a System Information File, by clicking File Save. The NFO file is an XML-based file that can be viewed in the same ordered fashion using the MSInfo32 application.

Creating an NFO file from a System Information report. Creating an NFO file from a System Information report.

An example of an NFO XML file may be seen below.

<?xml version=”1.0″?> <MsInfo> <Metadata> <Version>8.0</Version> <CreationUTC>08/12/21 02:09:47</CreationUTC> </Metadata> <Category name=”System Summary”> <Data> <Item><![CDATA[OS Name]]></Item> <Value><![CDATA[Microsoft Windows 10 Education]]></Value> </Data> <Data> <Item><![CDATA[Version]]></Item> <Value><![CDATA[10.0.19043 Build 19043]]></Value> </Data> <Data> <Item><![CDATA[Other OS Description ]]></Item> <Value><![CDATA[Not Available]]></Value> </Data> <Data> <Item><![CDATA[OS Manufacturer]]></Item> <Value><![CDATA[Microsoft Corporation]]></Value> </Data> <Data> <Item><![CDATA[System Name]]></Item> <Value><![CDATA[ASPIREBOX]]></Value> </Data> <Data> <Item><![CDATA[System Manufacturer]]></Item> <Value><![CDATA[Acer]]></Value> …

You may alternatively choose File Export, which saves the data as a TXT plaintext file that is simpler to read but cannot be viewed later with the System Information Tool.

Recovering a Syst Recovering a Syst

Below is an example of the text file format exported by MSInfo32.

At 23:33:55 on November 21, 2008, a System Information report was created. [System Summary] ASPIREBOX [System Name] Microsoft Windows 10 Education Version 10.0.19043 Build 19043 Item Value Not available for other operating systems ASPIREBOX is the name of the operating system created by Microsoft Corporation. Acer Aspire A514-54 Acer Aspire A514-54 Aspire A514-54 Aspire A514-54 Aspire A x64-based PC is the system type. 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Intel(R) Core(TM) i5-1135G7 @ 2.40GHz, 2419 Mhz, 4 Core(s), 8 Logical Processors 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz, 2419 Mhz, 4 Core(s), 8 Logical Processors (s) Version/Date of BIOS V1.12, 5/26/2021, Insyde Corp. Embedded Controller Version 1.12 BIOS Mode SMBIOS Version 3.3 UEFI Manufacturer of the BaseBoard TGL BaseBoard Product Lily TL BaseBoard Version V1.12 Platform Role Mobile Secure Boot State On PCR7 Configuration Elevation Required to View Windows Directory C:WINDOWSsystem32Windows Directory C:WINDOWSsystem32Windows Directory C:WINDOWSsystem32Windows Directory C:WINDOWSsystem32Windows Directory C:WINDOWSsystem32Windows Directory C:WINDOWSsystem32Windows Directory C:WINDOWSsystem32Windows Directory C:WINDOWSsystem32Windows Directory C Device for Booting Locale Brazil HarddiskVolume1

Scripting MSInfo32 Exported Reports

How would you produce an NFO or TXT report from the command line now that you know how to build a system information report via MSInfo32? Perhaps you’re working on a script and need a fast method to get hardware information.

Here are two distinct ways to create both an NFO and a TXT report using the command line.

You may find lots of old MSInfo32 articles that mention options like /categories, /category, /pch, and /showcategories. These are only compatible with Windows XP; they are not compatible with Windows 10.

This first example shows how to generate a TXT report in the same directory as the command, as seen in the picture below.

/report report.txt MSInfo32

Even when running from the command line, a window appears in which the System Information is updated before the report is generated.

Exporting a System Information report as a TXT file on the command line. Notic Using the command line to save a System Information report as a TXT file. Take note of the pop-up window.

This second example shows how to create an NFO report by providing the location where the report will be stored. Before performing the command, make sure the directory exists. It will fail quietly if this is not done.

c:atareport.nfo MSInfo32 /nfo

Although any file extension will work, since the system information report export is an NFO file, the /nfo option, the report extension should be.nfo.

Using PowerShell to read NFO files

You’ve learnt how to create and export MSInfo32 reports in this lesson. But because you’ve come to Adam the Automator for a purpose, you’ll figure out how to automate the procedure.

The File Access option in MSInfo32 may be used to open and examine saved NFO reports. The issue is that when it comes to automated information retrieval, a graphical interface isn’t optimal. PowerShell can parse XML files and obtain information from NFO files since they are stored as XML files.

Open a PowerShell window and execute Get-Content, as seen in the picture below, to view the XML report file. PowerShell can read XML content and transform it to PowerShell objects using the [XML] command. Save the result to the $Report variable at the end. The command that resulted is shown below.

$Report = [XML] $Report = [XML] $Report = [XML (Get-Content ‘Report.nfo’ -Path)

The $Report variable's output. The $Report variable’s output.

Related: Using PowerShell to Read, Parse, and Validate XML

You may need to get a list of the services that were active at the time the report was created. The list is retrieved using the SelectNodes() function since MSInfo32 reports include it.

XPath is used in the SelectNodes() function. XPath is an XML query language. The scope of this essay does not include the creation of complicated XPath queries.

<Category name=”Services”> <Data> <Display_Name><![CDATA[ACC Service]]></Display_Name> <Name><![CDATA[ACCSvc]]></Name> <State><![CDATA[Running]]></State> <Start_Mode><![CDATA[Auto]]></Start_Mode> <Service_Type><![CDATA[Own Process]]></Service_Type> <Path><![CDATA[“c:\program files (x86)\acer\care center\accsvc.exe”]]></Path> <Error_Control><![CDATA[Normal]]></Error_Control> <Start_Name><![CDATA[LocalSystem]]></Start_Name> <Tag_ID><![CDATA[0]]></Tag_ID> </Data> <Data> <Display_Name><![CDATA[AllJoyn Router Service]]></Display_Name> <Name><![CDATA[AJRouter]]></Name> <State><![CDATA[Stopped]]></State> <Start_Mode><![CDATA[Manual]]></Start_Mode> <Service_Type><![CDATA[Share Process]]></Service_Type> <Path><![CDATA[c:\windows\system32\svchost.exe -k localservicenetworkrestricted -p]]></Path> <Error_Control><![CDATA[Normal]]></Error_Control> <Start_Name><![CDATA[NT AUTHORITY\LocalService]]></Start_Name> <Tag_ID><![CDATA[0]]></Tag_ID> </Data> </Category>

As an example, consider the XPath query ‘/Category[@name=”Software Environment”]/Category[@name=”Services”]/Data’. Its components are shown below so that you can comprehend and adapt it to a variety of settings.

  • @name=”Software Environment”] /Category[@name=”Software Environment”] – Returns any Category node with the name “Software Environment” in the whole document, as specified by the preceding double-slash.
  • /Category[@name=”Services”] – Returns the Category node underneath the “Software Environment” node with the name “Services,” which was previously returned.
  • /Data – Returns the Data node, which is a child of the “Services” node that was previously returned.

When MSInfo32 runs, the automatically produced System Report has the structure shown above. You may modify it by constructing it according to the sections shown in those.

/Category[@name=”Software Environment”][XPath query][XPath query][XPath query][XPath query][XPath query][X /Category[@name=”Services”] The $Report object’s SelectNodes() function returns all Window services as XML nodes when you provide /Data to it. The code below generates a PSCustomObject and uses Format-Table to format the output to fit on the screen since the XML nodes aren’t showing the required output (the service Name, DisplayName, and State).

# The XPath query given below will vary depending on the data you want to extract; it will not always adhere to this pattern. $Report.SelectNodes(‘/Category[@name=”Software Environment”]/Category[@name=”Services”]/Data’) | ForEach-Object [PSCustomObject] | $Report.SelectNodes(‘/Category[@name=”Software Environment”]/Category[@name=”Services”]/Data’) | $Report.SelectNodes(‘/Category[@name=” @ “Name” = $PSItem.Name.innerText “Display” = $PSItem.Display Name.innerText “State” = $PSItem.State.innerText | Format-Table -AutoSize “Name” = $PSItem.Name.innerText “Display” = $PSItem.Display Name.innerText “State” = $PSItem.State.innerText

XML data from an NFO file is selected. XML data from an NFO file is selected.

An additional example of how to locate information on the System Report Display category using an XPath query and PowerShell is shown below. The XPath query is quite similar to the previous ones, except this time it’s searching for the Components and Display categories.

# The XPath query given below will vary depending on the data you want to extract; it will not always adhere to this pattern. $Report.SelectNodes(‘/Category[@name=”Components”] /Category[@name=”Display”]/Data’) | ForEach-Object -Begin /Category[@name=”Display”]/Data’) | ForEach-Object -Begin /Category[@ # Create an Objects collection to house all of the devices in a collection. $Collections = [System.Collections] $Objects = [System.Collections] $Objects = .ArrayList] # A temporary object that stores the names and values of a single device. @() $Object $Object $Object $Object $Object $Object $Object $Object $Object $ -Process # Add the Name and Value to the temporary $Object array if the Item name is not blank, indicating a new device is on the way. # This can’t be done in a custom hashtable since the Name might be duplicated, which isn’t permitted in hashtables. If (-Not [String]::IsNullOrWhiteSpace($PSItem.Item.innerText)) then (-Not [String]::IsNullOrWhiteSpace($PSItem.Item.innerText)) then $Object += [PSCustomObject] $Object += [PSCustomObject] $Object += [PSCustomObject] $Object @ ‘Name’ = $PSItem.Item.innerText ‘Value’ = $PSItem.Value.innerText ‘Name’ = $PSItem.Value.innerText ‘Value’ = $PSItem.Value.innerText ‘Value’ = $PSItem.Valu Otherwise, add this to the overall Objects list of devices if a blank Item name is detected. $Objects. Add($Object) $Object = @() $Object = @() $Object = @() $Object = @() $Object = @() $Object = @() $Object = @() $Object = @ -End # Only send the $Objects | Format-Table -AutoSize collection of Device objects farther down the pipeline.

The XML query against the Display Components list yielded the following results. The XML query against the Display Components list yielded the following results.

Related:How To Use PowerShell To Create An HTML Report


You learnt how MSInfo32 makes it simple to create a full system report for a local system in this post. You learned how to utilize MSInfo32’s save and export capabilities to export the system status for analysis over time and how to use PowerShell to analyze the data.

What would you do if you wanted to automate MSInfo32 on several systems?

The “msinfo32 system information” is a command-line tool that can generate a Windows System Report. The report will include hardware and software information, as well as the operating system version.

Related Tags

  • msinfo32 windows 10 command-line
  • msinfo32 download
  • system information windows 10
  • msinfo32 windows 11
  • system information command

Table of Content