MSInfo32: דרך פשוטה ליצירת דוח מערכת Windows

יש לך קשיים ליצור דוח מידע מערכת על מחשבך? לא תמיד קל לאסוף פרטי מערכת, אך הכלי מידע מערכת של מיקרוסופט (MSInfo32) יעזור לך לאסוף את כל המידע בקלות!

במאמר זה, תלמד ליצור ולהציג דוחות מידע מערכת בקלות. קרא הלאה כדי לדעת עוד!

דרישות מוקדמות

למדריך זה, תוכל להשתמש בכל גרסה של Windows 10. קריאת דוחות מערכת ממסוף הפקודה דורשת PowerShell. המדריך הזה משתמש בגרסה 21H1 של Windows 10 בבנייה 19043 ו-PowerShell גרסה 7.1.

צפייה בדוח מידע מערכת

השלב הראשון לקבלת מידע מפורט על המערכת שלך הוא לפתוח את כלי MSInfo32.

כדי למצוא את הכלי, חפש MSInfo32 בתפריט התחלה, וודא שאתה לוחץ על אפשרות הפעל כמנהל.

כאשר MSInfo32 אינו פועל כמנהל, אין לו אפשרות לעדכן תקן מידע פנימי, וכמה נהגים עשויים להופיע כעצורים גם אם הם לא.

כשהכלי נפתח, יוצג לך דוח, יצור אוטומטית. תראה סיכום של חומרה של המחשב שלך בתצוגה סיכום המערכת. בתצוגה זו יש לך סיכום כללי של תצורת המערכת. בצד שמאל, יש לך קטגוריות המפרטות את כל תחום.

Viewing the System Summary in MSInfo32.

שמירת דוחות MSInfo32

אולי אתה עומד לבצע שינויים בחומרה של המערכת שלך ותרצה לשמור דוח מידע מערכת לשימוש מאוחר יותר להשוואה או דיווח. עם MSInfo32, יש לך שני אפשרויות לשמירת המידע הזה: שמירה וייצוא. תגלה עליהן להלן.

ניתן ללחוץ על קובץ → שמירה כדי לשמור את המידע כקובץ NFO, הידוע כקובץ מידע מערכת. קובץ ה-NFO הוא קובץ מבוסס-XML שניתן לפתוח בהמשך בעזרת כלי ה-MSInfo32 כדי להציג את המידע באותה התבנית מאורגנת.

Saving a System Information report as an NFO file.

תוכל לראות דוגמה לקובץ ה-NFO בפורמט XML למטה.

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

בנוסף, ניתן ללחוץ על קובץ → ייצוא כדי לשמור את המידע כקובץ טקסט פשוט (TXT) שעשוי להיות נוח יותר לקריאה, אך לא ניתן לפתוח אותו באמצעות כלי מידע המערכת בהמשך.

Saving a Syst

ובפורמט הקובץ הטקסטי ש-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

ייצוא דוחות מיוצאים מ-MSInfo32 באמצעות תסריט

עכשיו שאתה יודע איך ליצור דוח מידע ממערכת באמצעות MSInfo32, איך תיצור דוח NFO או TXT מתוך שורת הפקודה? אולי אתה יוצר תסריט ואתה זקוק לדרך מהירה לשלוף מידע על חומרה.

להלן שני אפשרויות שונות באמצעות שורת הפקודה ליצירת דוח NFO ו-TXT.

תוכל למצוא מספר רב של מאמרים מיושנים על MSInfo32 בהם תוכל לראות אפשרויות כמו /categories, /category, /pch, ו-/showcategories. אלה זמינים רק ב-Windows XP ואינם זמינים ב-Windows 10.

הדוגמה הראשונה הזו מדגימה איך ליצור דוח TXT באותו התיקייה שבה נפתח הפקודה, כפי שניתן לראות בתמונת המסך הבאה.

MSInfo32 /report report.txt

גם כאשר מפעילים מהשורת פקודה, חלון יופיע בו ניתן לראות את מידע המערכת מתעדכן לפני יצירת הדוח.

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

הדוגמה השנייה הזו מדגימה איך ליצור דוח NFO, הפעם על ידי ציון התיקייה שבה ישמר הדוח. יש לשים לב שהתיקייה חייבת להיות קיימת לפני הרצת הפקודה. אחרת, הפעולה תיכשל בשקט.

MSInfo32 /nfo c:\ata\report.nfo

למרות שכל סיומת של קובץ תעבוד, בגלל שיצוא דוחי מידע המערכת הוא קובץ NFO, האפשרות /nfo, המוסכמת היא להשתמש ב־.nfo כסיומת הדוח.

קריאת קבצי NFO דרך PowerShell

במהלך המדריך הזה, למדת כיצד ליצור ולייצא דוחות MSInfo32. אך הגעת אל Adam the Automator מסיבה מסוימת, לכן תלמד לאוטומט תהליך זה.

דוחות NFO שנשמרו יכולים להיפתח ולהיצג ב־MSInfo32 דרך התפריט קובץ → פתח. הבעיה היא: ממשק גרפי אינו אידיאלי בעת אוטומציה של איסוף מידע. מאחר וקבצי NFO נשמרים כקבצי XML, PowerShell יכול לפענח קבצי XML ולאחזר את המידע.

כדי לקרוא את קובץ דוח ה-XML, פתח חלון PowerShell והרץ את Get-Content, כפי שמוצג בתמונה למטה. ה-[XML] מאפשר ל-PowerShell לקרוא את הטקסט שבפורמט XML ולהמיר אותו לאובייקטים של PowerShell. לבסוף, שמור את התוצאה במשתנה $Report. הפקודה התוצאתית ניתנת לראות למטה.

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

אולי יהיה עליך לאחזר את רשימת השירותים שהיו פעילים בזמן ביצוע הדוח. מכיוון שדוחות MSInfo32 מכילים את זה, אתה יכול לאחזר את הרשימה באמצעות שיטת SelectNodes().

שיטת SelectNodes() משתמשת ב-XPath. XPath הוא שפת שאילתות ל-XML. יצירת שאילתות XPath מורכבות אינה חלק מהמאמר הזה.

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

שאילתת ה-XPath '//Category[@name="Software Environment"]/Category[@name="Services"]/Data' ישמש כדוגמה. חלקיה מוצגים למטה כך שתוכל להבין ולהתאים אותה לתרחילים שונים.

  • //Category[@name="Software Environment"] – מחזיר כל צומת Category במסמך כולו, כפי שמוראש בשתי קווים נפרדים, עם השם "Software Environment".
  • /Category[@name="Services"] – מחזיר את צומת ה-Category שנמצאת מתחת לצומת "Software Environment" שהוחזרה קודם כל, עם השם "Services".
  • /נתונים – מחזיר את צומת הנתונים הבנויים תחת הצומת "שירותים" שהוחזר מקודם.

המבנה הדוגמתי לעיל מציג את דוח המערכת הנוצר באופן אוטומטי שאנו רואים כאשר נפעיל את MSInfo32. ניתן להתאים אותו על ידי בנייתו לפי הסעיפים שאתה רואה בהם.

על ידי העברת שאילתת XPath //Category[@name="Software Environment"]/Category[@name="Services"]/Data לשיטת SelectNodes() על אובייקט $Report המוצג למטה, יוחזרו כל שירותי Windows כצמתי XML. מאחר שהצמתים של XML אינם מציגים פלט צפוי (השירות Name, DisplayName ו־State), הקוד למטה יוצר אובייקט PSCustomObject ומעצב את הפלט כך שיתאים למסך עם Format-Table.

# השאילתת XPath המוצגת למטה תשתנה בהתאם לנתונים שתרצה לחלץ, ולא תמיד תתאים לקונבנציה זו
$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.

למטה מוצג דוגמה נוספת של איך להשתמש בשאילתת XPath ובפוורשל כדי למצוא מידע על קטגוריית התצוגה בדוח המערכת. השאילתת XPath עצמה דומה מאוד לאלה שקדמו לה, אך הפעם מחפשת את קטגוריות הרכיבים והתצוגה.

# השאילתת XPath המוצגת למטה תשתנה בהתאם למהות הנתונים שתרצה לחלץ, לא תמיד תעקוב אחרי קונבנציה זו
$Report.SelectNodes('//Category[@name="Components"]/Category[@name="Display"]/Data') | ForEach-Object -Begin {
	# יצירת אוסף אובייקטים לאחסון של אוסף של מכשירים
	$Objects = [System.Collections.ArrayList]@()
	# אובייקט זמני המשמש לאחסון שמות וערכים של מכשיר יחיד
	$Object = @()
} -Process {
	# אם שם הפריט אינו ריק, מסמן כי מכשיר חדש מתקרב, אז הוסף את השם והערך למערך הזמני $Object.
  # הסיבה שלא ניתן להשתמש בטבלת גיבוב מותאמת אישית היא שהשם יכול להיות משוכפל, וזה אינו מותר בטבלת גיבוב
  If (-Not [String]::IsNullOrWhiteSpace($PSItem.Item.innerText)) {
    $Object += [PSCustomObject]@{
      "Name"  = $PSItem.Item.innerText
      "Value" = $PSItem.Value.innerText
    }
  } Else {
		# לאחר שנתקל בשם פריט ריק, הוסף את זה לרשימת הכללית של המכשירים
    $Objects.Add($Object)
		# איפוס אובייקט המכשיר היחיד
    $Object = @()
  }
} -End {
	# שלח רק את אוסף אובייקטי המכשיר למטה בצינור
	$Objects
} | Format-Table -AutoSize
Results of the XML query against the Display Components list.

סיכום

במאמר זה, למדת כיצד MSInfo32 מציע דרך נוחה ליצירת דוח מערכת מקיף עבור מערכת מקומית. עם פונקציות השמירה והייצוא של MSInfo32, למדת כיצד לייצא את מצב המערכת לניתוח לאורך זמן ולהשתמש בPowerShell לניתוח המידע הזמין.

איך תתקדם באוטומציה של MSInfo32 על מספר מערכות שונות?

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