MSInfo32: وسيلة سهلة لإنشاء تقرير حول نظام Windows

هل واجهت صعوبة في إنشاء تقرير حول معلومات النظام على جهاز الكمبيوتر الخاص بك؟ جمع تفاصيل النظام قد يبدو صعبًا، ولكن أداة معلومات النظام من مايكروسوفت (MSInfo32) تجعل الأمر سهلاً وسريعًا لجمع كل تلك المعلومات!

في هذه المقالة، ستتعلم كيفية إنشاء وعرض تقارير حول معلومات النظام بسرعة. تابع القراءة لمعرفة المزيد!

المتطلبات الأساسية

يمكنك استخدام أي إصدار من نظام التشغيل Windows 10 في هذا البرنامج التعليمي. يتطلب قراءة تقارير النظام من سطر الأوامر استخدام PowerShell. يستخدم هذا البرنامج التعليمي نسخة Windows 10 الإصدار 21H1 بناء 19043 وPowerShell v7.1.

عرض تقرير حول معلومات النظام

أول خطوة في استرداد معلومات مفصلة حول نظامك هي فتح أداة MSInfo32.

للعثور على الأداة، قم بالبحث عن MSInfo32 في قائمة “ابدأ”، وتأكد من النقر على الخيار “تشغيل كمسؤول”.

عندما لا يتم تشغيل MSInfo32 كمسؤول، لا يمكن لـ MSInfo32 تحديث ذاكرة التخزين المؤقتة الداخلية لها بشكل صحيح، وقد يظهر بعض مشغلي الأجهزة كمتوقفين عندما ليسوا كذلك في الواقع.

بمجرد فتح الأداة، ستعرض لك تقريرًا مولدًا تلقائيًا. سترى ملخصًا للأجهزة في عرض “ملخص النظام”. يوضح هذا العرض نظرة عامة على تكوين النظام. على اليسار، سترى فئات تفصل كل قسم.

Viewing the System Summary in MSInfo32.

حفظ تقارير MSInfo32

ربما تكون على وشك إجراء تغييرات في الأجهزة على نظامك وتود حفظ تقرير معلومات النظام لاستخدامه في وقت لاحق للمقارنة أو التقارير. بواسطة MSInfo32، لديك خيارين لحفظ هذه المعلومات: الحفظ والتصدير. ستتعرف على هذه الخيارات فيما يلي.

يمكنك النقر على ملف → حفظ لحفظ المعلومات كملف NFO، والمعروف باسم ملف معلومات النظام. ملف NFO هو ملف يعتمد على XML يمكن فتحه لاحقًا باستخدام أداة MSInfo32 لعرضه بنفس التنسيق المنظم.

Saving a System Information report as an NFO file.

يمكنك رؤية مثال لملف XML NFO أدناه.

<?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 عبر PowerShell

طوال هذا البرنامج التعليمي ، تعلمت كيفية إنشاء وتصدير تقارير MSInfo32. ولكنك جئت إلى آدم الأتوماتور لسبب معين ، لذا ستتعلم كيفية أتمتة العملية.

يمكن فتح تقارير 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 المعروض أدناه، يُعيد كافة الخدمات النافذة كعقد XML. نظرًا لعدم عرض العقد XML الإخراج المتوقع (اسم الخدمة، والعرض، والحالة)، يقوم الكود أدناه بإنشاء 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 وPowerShell للعثور على معلومات حول فئة عرض تقرير النظام. الاستعلام XPath نفسه مشابه جدًا للذي تم تقديمه من قبل، لكن هذه المرة يتم البحث عن فئتي Components وDisplay.

# الاستعلام 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/