你是否曾经为在计算机系统上创建系统信息报告而苦恼?收集系统详细信息可能看起来很困难,但是微软系统信息工具(MSInfo32)可以快速收集所有信息!
在本文中,您将迅速掌握生成和查看系统信息报告的技巧。继续阅读以了解更多信息!
先决条件
对于本教程,您可以使用任何版本的Windows 10。从命令行读取系统报告需要PowerShell。本教程使用的是Windows 10 21H1版本19043构建和PowerShell v7.1。
查看系统信息报告
检索有关您的系统的详细信息的第一步是打开MSInfo32工具。
要找到该工具,请在开始菜单上搜索MSInfo32,并确保点击以管理员身份运行选项。
如果MSInfo32未以管理员身份运行,则无法正确更新其内部信息缓存,某些驱动程序可能会显示为已停止,而实际上并非如此。
工具打开后,它会呈现给您一个报告,这是一个自动生成的报告。在系统摘要视图中,您将看到计算机的硬件摘要。该视图概述了系统配置的整体情况。在左侧,您将看到各个部分的分类。

保存MSInfo32报告
也許您正準備對系統進行硬體更改,並希望保存系統信息報告以供以後比較或報告。使用 MSInfo32,您有兩個選項可以保存該信息:保存和匯出。接下來您將了解有關它們的信息。
您可以點擊文件 → 儲存將信息保存為 NFO 文件,這個文件稱為系統信息文件。NFO 文件是一個基於 XML 的文件,可以稍後由 MSInfo32 工具打開,以相同的組織格式查看。

您可以在下面看到 NFO XML 文件的示例。
您也可以點擊文件 → 匯出,將信息保存為 TXT 純文本文件,這可能更容易閱讀,但稍後無法通過系統信息工具打開。

在下面您將看到 MSInfo32 匯出的文本文件格式的示例。
從 MSInfo32 匯出的報告腳本
現在您知道如何從 MSInfo32 生成系統信息報告了,那您將如何從命令行生成 NFO 或 TXT 報告呢?也許您正在創建一個腳本,需要一種快速的方式來檢索硬體信息。
以下是使用命令行生成 NFO 和 TXT 報告的兩種不同選項。
您可以找到許多關於 MSInfo32 的過時文章,其中您可能會看到選項,如
/categories
、/category
、/pch
和/showcategories
。這些僅在 Windows XP 上可用,對於 Windows 10 不可用。
這第一個範例演示在執行命令的同一目錄中生成TXT報告,正如你在下面的截圖中所看到的。
即使從命令行運行,也會彈出一個窗口,在生成報告之前你可以看到系統信息正在刷新。

這第二個範例演示生成NFO報告,這次是通過指定報告將被保存的目錄。請注意,在運行命令之前,該目錄必須存在。否則,它將默默失敗。
儘管任何文件擴展名都可以工作,因為系統信息報告導出是一個NFO文件,/nfo
選項,慣例上使用.nfo作為報告的擴展名。
通過PowerShell閱讀NFO文件
在本教程中,你已經學會了如何生成和導出MSInfo32報告。但你來找亞當自動製作者是有原因的,所以你將學會自動化這個過程。
保存的NFO報告可以通過文件 → 打開菜單在MSInfo32中打開和查看。問題是:當自動化信息檢索時,圖形界面並不理想。由於NFO文件保存為XML文件,PowerShell可以解析XML文件並檢索該信息。
要讀取 XML 報告檔案,開啟 PowerShell 視窗並執行 Get-Content
,如下方截圖所示。 [XML]
讓 PowerShell 能夠讀取 XML 文字並將其轉換為 PowerShell 物件。最後,將結果保存到 $Report
變數中。下面是生成的命令。

$Report
variable. 也許您需要檢索在生成報告時正在運行的服務清單。由於 MSInfo32 報告包含了該清單,您可以通過 SelectNodes()
方法檢索該清單。
SelectNodes()
方法使用 XPath。XPath 是用於 XML 的查詢語言。製作複雜的 XPath 查詢超出了本文章的範圍。
XPath 查詢 '//Category[@name="Software Environment"]/Category[@name="Services"]/Data'
將作為示例。其部分如下所示,以便您理解並根據多種情況進行適應。
//Category[@name="Software Environment"]
– 返回整個文件中名為“Software Environment”的任何 Category 節點,由前置雙斜線表示。/Category[@name="Services"]
– 返回先前返回的“Software Environment”節點下方具有名稱“Services”的 Category 節點。/資料
– 返回先前返回的“服務”節點下的子資料節點。
上面的示例結構是展示當 MSInfo32 執行時自動生成的系統報告。您可以通過構建與您在其中看到的部分相對應的部分來進行適應。
將 XPath 查詢 //Category[@name="Software Environment"]/Category[@name="Services"]/Data
傳遞給下面顯示的 $Report
物件上的 SelectNodes()
方法,將返回所有 Window 服務作為 XML 節點。由於 XML 節點未顯示預期的輸出(服務 Name
、DisplayName
和 State
),下面的代碼創建一個 PSCustomObject
,並使用 Format-Table
將輸出格式化以適應屏幕。

下面顯示了如何使用 XPath 查詢和 PowerShell 來查找有關系統報告顯示類別的信息的其他示例。XPath 查詢本身與之前的類似,但這次是查找組件和顯示類別。

結論
在本文中,您已經學會了如何使用MSInfo32為本地系統生成全面的系統報告。通過MSInfo32的保存和導出功能,您學會了如何導出系統狀態以便長時間分析,並使用PowerShell分析可用信息。
如何在多个系统上自动执行 MSInfo32?