MSInfo32: un modo semplice per generare un rapporto di sistema Windows

Hai avuto difficoltà a creare un rapporto sulle informazioni di sistema sul tuo computer? Raccogliere i dettagli del sistema potrebbe sembrare difficile, ma lo strumento Microsoft System Information (MSInfo32) rende veloce la raccolta di tutte queste informazioni!

In questo articolo, imparerai a generare e visualizzare i rapporti sulle informazioni di sistema in poco tempo. Continua a leggere per saperne di più!

Prerequisiti

Per questo tutorial, puoi utilizzare qualsiasi versione di Windows 10. La lettura dei rapporti di sistema dalla riga di comando richiede PowerShell. Questo tutorial utilizza Windows 10 versione 21H1 build 19043 e PowerShell v7.1.

Visualizzazione di un rapporto sulle informazioni di sistema

Il primo passo per ottenere informazioni dettagliate sul tuo sistema è aprire lo strumento MSInfo32.

Per trovare lo strumento, cerca MSInfo32 nel Menu Start, e assicurati di fare clic sull’opzione Esegui come amministratore.

Quando MSInfo32 non viene eseguito come amministratore, MSInfo32 non può aggiornare correttamente la propria cache di informazioni interne e alcuni driver possono essere visualizzati come arrestati quando non lo sono.

Non appena lo strumento si apre, ti presenterà un rapporto, uno generato automaticamente. Vedrai un riepilogo dell’hardware del tuo computer nella vista Riepilogo del sistema. Questa vista descrive una visione complessiva della configurazione del sistema. A sinistra, vedrai delle categorie, che suddividono ulteriormente ogni sezione.

Viewing the System Summary in MSInfo32.

Salvataggio dei rapporti MSInfo32

Forse stai per apportare modifiche hardware al tuo sistema e desideri salvare un rapporto sulle informazioni di sistema per confronti o segnalazioni future. Con MSInfo32, hai due opzioni per salvare queste informazioni: salvare ed esportare. Ne apprenderai di più a breve.Puoi fare clic su File → Salva per salvare le informazioni come file NFO, noto come File di informazioni di sistema. Il file NFO è un file basato su XML che può essere successivamente aperto con lo strumento MSInfo32 per visualizzarlo nel formato organizzato.

Saving a System Information report as an NFO file.

Puoi vedere un esempio del file XML NFO qui sotto.

<?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>
...

Puoi anche fare clic su File → Esporta, che salva le informazioni come file di testo TXT che potrebbe essere più facile da leggere ma non può essere aperto tramite lo Strumento Informazioni di Sistema in seguito.

Saving a Syst

E qui sotto vedrai un esempio del formato del file di testo esportato da MSInfo32.

System Information report written at: 08/11/21 23:33:55
System Name: ASPIREBOX
[System Summary]

Item	Value	
OS Name	Microsoft Windows 10 Education	
Version	10.0.19043 Build 19043	
Other OS Description 	Not Available	
OS Manufacturer	Microsoft Corporation	
System Name	ASPIREBOX	
System Manufacturer	Acer	
System Model	Aspire A514-54	
System Type	x64-based PC	
System SKU	0000000000000000	
Processor	11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz, 2419 Mhz, 4 Core(s), 8 Logical Processor(s)	
BIOS Version/Date	Insyde Corp. V1.12, 5/26/2021	
SMBIOS Version	3.3	
Embedded Controller Version	1.12	
BIOS Mode	UEFI	
BaseBoard Manufacturer	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:\WINDOWS	
System Directory	C:\WINDOWS\system32	
Boot Device	\Device\HarddiskVolume1	
Locale	Brazil

Scripting dei report esportati da MSInfo32

Ora che sai come generare un rapporto sulle informazioni di sistema da MSInfo32, come genereresti un rapporto NFO o TXT dalla riga di comando? Forse stai creando uno script e hai bisogno di un modo rapido per recuperare le informazioni sull’hardware.

Ecco due opzioni diverse utilizzando la riga di comando per generare un rapporto NFO e TXT.

Puoi trovare molti articoli datati su MSInfo32 in cui potresti vedere opzioni come /categories, /category, /pch e /showcategories. Queste sono disponibili solo su Windows XP e non sono disponibili su Windows 10.

Questo primo esempio dimostra la generazione di un rapporto TXT nella stessa directory in cui viene eseguito il comando, come puoi vedere nella seguente schermata.

MSInfo32 /report report.txt

Anche quando viene eseguito dalla riga di comando, compare una finestra in cui puoi vedere le informazioni di sistema che vengono aggiornate prima della generazione del rapporto.

Exporting a System Information report as a TXT file on the command line. Notice the window that pop

Questo secondo esempio dimostra la generazione del rapporto NFO, questa volta specificando la directory in cui il rapporto verrà salvato. Tieni presente che la directory deve esistere prima di eseguire il comando. Altrimenti, fallirà silenziosamente.

MSInfo32 /nfo c:\ata\report.nfo

Anche se qualsiasi estensione di file funzionerà, poiché l’esportazione del rapporto sulle informazioni di sistema è un file NFO, l’opzione /nfo, la convenzione impone di utilizzare .nfo come estensione del rapporto.

Lettura dei file NFO tramite PowerShell

In tutto questo tutorial, hai imparato come generare ed esportare rapporti MSInfo32. Ma sei venuto da Adam the Automator per un motivo, quindi imparerai ad automatizzare il processo.

I rapporti NFO salvati possono essere aperti e visualizzati in MSInfo32 tramite il menu File → Apri. Il problema è: un’interfaccia grafica non è ideale quando si automatizza il recupero delle informazioni. Poiché i file NFO sono salvati come file XML, PowerShell può analizzare i file XML e recuperare quelle informazioni.

Per leggere il file di report XML, apri una finestra di PowerShell e esegui Get-Content, come mostrato nella schermata sottostante. Il [XML] permette a PowerShell di leggere il testo XML e convertirlo in oggetti PowerShell. Infine, salva il risultato nella variabile $Report. Il comando risultante può essere visto di seguito.

$Report = [XML](Get-Content -Path 'Report.nfo')
Output of the $Report variable.

Forse devi recuperare l’elenco dei servizi che erano in esecuzione al momento in cui è stato generato il report. Poiché i report di MSInfo32 contengono queste informazioni, puoi recuperare l’elenco tramite il metodo SelectNodes().

Il metodo SelectNodes() utilizza XPath. XPath è un linguaggio di interrogazione per XML. La creazione di query XPath complesse non è oggetto di questo articolo.

<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>

La query XPath '//Category[@name="Software Environment"]/Category[@name="Services"]/Data' servirà come esempio. Le sue parti sono mostrate di seguito, in modo che tu possa comprenderle e adattarle per diversi scenari.

  • //Category[@name="Software Environment"] – Restituisce qualsiasi nodo Categoria nell’intero documento, indicato dal doppio slash precedente, con il nome “Software Environment”.
  • /Category[@name="Services"] – Restituisce il nodo Categoria sotto il nodo “Software Environment” restituito precedentemente che ha il nome “Services”.
  • /Dati – Restituisce il nodo figlio Dati sotto il nodo “Servizi” restituito in precedenza.

L’esempio struttura sopra è presente nel Rapporto di Sistema generato automaticamente che vediamo quando viene eseguito MSInfo32. Puoi adattarlo costruendo in base alla sezione che vedi in quelli.

Passando la query XPath //Category[@name="Ambiente Software"]/Category[@name="Servizi"]/Dati al metodo SelectNodes() sull’oggetto $Report mostrato di seguito, vengono restituiti tutti i servizi di Windows come nodi XML. Poiché i nodi XML non stanno mostrando un output atteso (Il servizio Nome, Visualizzazione e Stato), il codice qui sotto crea un PSCustomObject e formatta l’output per adattarsi allo schermo con Format-Table.

# La query XPath mostrata di seguito cambierà in base ai dati che desideri estrarre, non seguirà sempre questa convenzione
$Report.SelectNodes('//Category[@name="Software Environment"]/Category[@name="Services"]/Data') | ForEach-Object {
  [PSCustomObject]@{
    "Name"    = $PSItem.Name.innerText
    "Display" = $PSItem.Display_Name.innerText
    "State"   = $PSItem.State.innerText
  }
} | Format-Table -AutoSize
Selecting XML data from an NFO file.

Di seguito è mostrato un ulteriore esempio di come utilizzare una query XPath e PowerShell per trovare informazioni sulla categoria Visualizzazione del Rapporto di Sistema. La query XPath stessa è molto simile a quelle precedenti, ma questa volta cerca le categorie Componenti e Visualizzazione.

# La query XPath mostrata di seguito cambierà in base ai dati che desideri estrarre, non seguirà sempre questa convenzione
$Report.SelectNodes('//Category[@name="Components"]/Category[@name="Display"]/Data') | ForEach-Object -Begin {
	# Crea una collezione di oggetti per contenere una collezione di dispositivi
	$Objects = [System.Collections.ArrayList]@()
	# L'oggetto temporaneo utilizzato per contenere i nomi e i valori di un singolo dispositivo
	$Object = @()
} -Process {
	# Se il nome dell'elemento non è vuoto, indicando l'arrivo di un nuovo dispositivo, aggiungi il Nome e il Valore all'array temporaneo $Object.
  # Il motivo per cui questo non può essere in una tabella hash personalizzata è perché il Nome potrebbe essere duplicato, il che non è consentito in una tabella hash
  If (-Not [String]::IsNullOrWhiteSpace($PSItem.Item.innerText)) {
    $Object += [PSCustomObject]@{
      "Name"  = $PSItem.Item.innerText
      "Value" = $PSItem.Value.innerText
    }
  } Else {
		# Una volta incontrato un nome di elemento vuoto, aggiungi questo all'elenco complessivo degli oggetti dispositivi
    $Objects.Add($Object)
		# Reimposta l'oggetto singolo dispositivo
    $Object = @()
  }
} -End {
	# Invia solo la collezione di oggetti Dispositivo più avanti nel flusso di lavoro
	$Objects
} | Format-Table -AutoSize
Results of the XML query against the Display Components list.

Conclusione

In questo articolo, hai imparato come MSInfo32 offre un modo conveniente per generare un report completo del sistema per un sistema locale. Con le funzioni di salvataggio ed esportazione di MSInfo32, hai imparato come esportare lo stato del sistema per analizzarlo nel tempo e utilizzare PowerShell per analizzare le informazioni disponibili.

Come automatizzare MSInfo32 su più sistemi?

Source:
https://adamtheautomator.com/msinfo32/