PowerShell هو أداة قوية تساعدك في تبسيط وتأتيم المهام المملة والمتكررة. عادةً ما يستخدم المسؤولون PowerShell لاستخراج المعلومات من النظام أو قاعدة البيانات عندما يكون البيانات المطلوبة يجب تقديمها كتقرير. ولكن التقارير في ملفات النص أو CSV عادة ما تفتقر إلى الأناقة والتصميم الجذاب للأكواد HTML. في هذا البرنامج التعليمي، ستتعلم كيفية إنشاء تقرير HTML باستخدام PowerShell،
يمكن لـ PowerShell مساعدتك في إنشاء تقارير HTML والابتعاد عن هذه الصيغ الباهتة الأخرى. باستخدام PowerShell فقط، يمكنك إضفاء الحيوية على التقرير باستخدام HTML مما يتيح لك عرض بيانات النظام المستخرجة بشكل معنوي. يمكنك حتى تطبيق أوراق الأنماط المتداخلة (CSS) لتخصيص تصميم التقرير الخاص بك بسهولة.
في هذه المقالة، ستتعلم كيفية استخدام الأمر ConvertTo-HTML
بالاشتراك مع الأمر Out-file
لإنشاء تقرير HTML. ستتعلم أيضًا البرمجة الأساسية لـ CSS وكيف يمكن أن يكون مفيدًا في تنسيق تصميم تقريرك القائم على HTML.
المتطلبات المسبقة
سيكون هذا المقال دليلاً عملياً. إذا كنت تنوي متابعة الشرح، تأكد من إعداد المتطلبات المسبقة التالية مسبقًا.
- سيتم عرض جميع الأمثلة باستخدام Windows 10 Build 1709، ولكن ليس هذا الإصدار مطلوبًا
- Windows PowerShell 5.1 أو الإصدار الأحدث أو PowerShell Core 7
- متصفح مثل إنترنت إكسبلورر أو جوجل كروم
إنشاء تقرير أساسي حول معلومات الكمبيوتر باستخدام ConvertTo-Html
لتوضيح كيفية استخدام cmdlet ConvertTo-Html
ومعلماته، ستقوم بإنشاء سكريبت يحصل على معلومات أساسية حول الجهاز (مثل نظام التشغيل، والمعالج، وBIOS، ومساحة القرص المتاحة) ويولد هذه المعلومات في تقرير HTML.
تبدأ بأمر يجمع معلومات حول إصدار نظام التشغيل من الجهاز. افتح نافذة PowerShell الخاصة بك ثم قم بنسخ ولصق الأمر أدناه ثم اضغط على Enter لتشغيل الأمر.
عند تشغيل الأمر أعلاه، يقوم cmdlet Get-CimInstance
بجمع خصائص فئة Win32_OperatingSystem
التي تحتوي على معلومات حول نظام التشغيل للجهاز، وسيتم إرجاع العديد من النتائج، وبالتالي يتطلب تصفية للحصول على المعلومات ذات الصلة فقط. يجب أن تبدو النتيجة مشابهة للصورة المعروضة أدناه.

الآن بعد الحصول على الأمر لإرجاع معلومات نظام التشغيل، دعنا نقوم بتحويل النتيجة إلى كود HTML. لتحويل النتيجة (الكائنات) من الأمر السابق إلى كود HTML، يمكنك توجيه إخراج cmdlet Get-CimInstance
إلى ConvertTo-Html
. قم بتشغيل الأمر أدناه في نافذة PowerShell الخاصة بك.
يمكنك رؤية في الصورة أدناه أن PowerShell يقوم تلقائيًا بإنشاء علامات HTML من نتائج أمر “Get-CimInstance”. يتم عرض النتيجة في تنسيق جدول، حيث يعرض رأس الجدول أسماء الخصائص مثل “النسخة”، “العنوان”، “رقم البناء” و “الشركة المصنعة”. كل صف في الجدول يمثل كائنًا ويعرض قيم الكائن لكل خاصية.

تصدير التقرير إلى ملف HTML
الآن بعد الحصول على النتيجة وتحويلها إلى رمز HTML، دعنا نقوم بتصدير التقرير إلى ملف HTML باستخدام أمر “Out-file” وعرض التقرير في مستعرض الويب. قم بتوجيه نتيجة أمر “ConvertTo-Html” وحدد المسار الذي ترغب في حفظ التقرير به باستخدام معامل “-FilePath” واستخدم “Basic-Computer-Information-Report.html” كاسم للملف.
افتح برنامج PowerShell ISE أو أي محرر نصوص آخر، قم بنسخ الكود أدناه واحفظ النص البرمجي باسم “Generate-HTML-Report.Ps1”
قم بتشغيل النص البرمجي “Generate-HTML-Report.Ps1” في وحدة التحكم الخاصة بـ PowerShell الخاصة بك
بعد تشغيل النص البرمجي، افتح الملف “Basic-Computer-Information-Report.html” في مستعرض الويب. يقوم مستعرض الويب بتفسير رمز التقرير HTML ويعرض البيانات على شاشة المستعرض. يجب أن يحتوي التقرير على معلومات حول نظام تشغيل الجهاز مشابهة للصورة أدناه.

دمج التقارير باستخدام المعامل “Fragment”
في هذه النقطة، لديك الآن سكربت يحصل على معلومات حول نظام التشغيل للجهاز ويصدر النتيجة إلى تقرير HTML. هدفك هو إضافة المزيد من الأوامر في السكربت للحصول على المعلومات المتبقية عن الكمبيوتر مثل المعالج و BIOS والقرص والخدمات.
كل أمر سيعيد معلومات الكمبيوتر المختلفة بتنسيق كود HTML. لتجميع المعلومات بشكل صحيح في تقرير HTML واحد، استخدم البرمجة النصية Fragment
للحصول فقط على جزء الجدول من كود HTML الذي تم إنشاؤه بواسطة أمر ConvertTo-Html
.
كما يمكنك رؤية في الصورة المرفقة أدناه، تقوم PowerShell بإنشاء جميع عناصر HTML الأساسية عند توجيه الناتج إلى أمر ConvertTo-Html
.

ConvertTo-Html
cmdlet عند استخدام برمجة النصية Fragment
، تقوم PowerShell بإنشاء عنصر جدول HTML فقط. تتم تجاهل العناصر <HTML>
، <HEAD>
، <TITLE>
، <BODY>
وغيرها. يظهر النتيجة كما هو موضح أدناه.

الآن أنك تعرف بالفعل كيفية عمل برمجة النصية Fragment
من المثال أعلاه، دعنا نطبق ذلك في السكربت.
تقوم الأوامر في السكربت أدناه بأداء ما يلي:
- تحصل الأوامر الخمس الأولى على معلومات مختلفة من الجهاز مثل نظام التشغيل، المعالج، BIOS، القرص والخدمات.
- تتم تصفية النتيجة باستخدام برمجة
-Property
لعرض القيم ذات الصلة فقط - تخزين القيم في متغيرات معينة. يتم تنسيق كل معلومة كجدول باستخدام برمجة
-Fragment
- دمج الجداول HTML باستخدام معامل
-Body
إلى تقرير HTML واحد - تعيين عنوان التقرير إلى “تقرير معلومات الكمبيوتر” باستخدام معامل
-Title
- تصدير التقرير كملف HTML باستخدام معامل
Out-file
معلومات إضافية حول النص البرمجي متاحة في التعليقات في مقتطف الكود أدناه. قم بتحديث النص البرمجي باستخدام الكود التالي.
قم بتشغيل النص البرمجي في واجهة التحكم PowerShell. يمكنك رؤية نتيجة التقرير كما هو موضح أدناه.

إضافة تسمية باستخدام معامل PreContent
و PostContent
في هذه النقطة، يمكن للنص البرمجي الآن الحصول على جميع المعلومات الأساسية للكمبيوتر وتصدير النتيجة إلى صفحة HTML. ومع ذلك، كما يمكنك رؤية في اللقطة الشاشة أعلاه، قد يواجه الشخص الذي يستلم التقرير صعوبة في فهم المحتوى عند إزالة التعليق حيث أن المعلومات غير موسومة أو مصنفة بشكل صحيح.
من خلال استخدام معامل PreContent
و PostContent
، يمكنك إضافة تسميات إلى كل جدول بحيث يتمكن أي شخص من تمييز محتوى التقرير بسهولة.
يحدد معامل PreContent
النص الذي يتم إضافته قبل فتح علامة <TABLE>
ومعامل PostContent
النص الذي يتم إضافته بعد إغلاق علامة </TABLE>
. القيم المضافة في هذه المعاملات لا تتحول تلقائيًا إلى رمز HTML، لذا يجب عليك استخدام علامات HTML بوضوح حتى يتم عرضها بشكل صحيح كعناصر HTML.
قم بتحديث النص البرمجي باستخدام الأوامر أدناه ثم قم بتشغيل النص البرمجي في وحدة التحكم PowerShell.
فيما يلي التغييرات في النص البرمجي:
- تمت إضافة أمر جديد للحصول على اسم الكمبيوتر. قيمة المتغير
$ComputerName
تحتوي على علامة<h1>
لتغيير تنسيق النص إلى عنوان عند عرضه في المتصفح. - تمت إضافة تسميات مختلفة في كل جدول باستخدام معامل
PreContent
وتم وضع القيم في علامات<h2>
- تمت إضافة تسمية تاريخ الإنشاء في نهاية التقرير باستخدام معامل
PostContent
وتم وضع القيمة في علامة<p>
يمكنك أن ترى مع بعض الجهد الإضافي، يمكن أن يبدو التقرير أفضل بكثير، يجب تحديث التقرير على النحو الموضح أدناه.

تغيير تخطيط الجدول باستخدام المعلمة As
ربما يحتوي جدول HTML المولد على عدة أعمدة وترغب في تغيير التنسيق لعرض القيمة بشكل صحيح كقائمة، يمكنك استخدام معلمة As
. بشكل افتراضي، عندما تقوم بتوجيه الناتج إلى ConvertTo-html
، يقوم PowerShell بإنشاء جدول HTML يشبه تنسيق جدول Windows PowerShell.
كما يمكنك رؤية في الصورة أدناه، تعرض رأس الجدول أسماء الخصائص مثل الإصدار، العنوان، رقم البناء و الشركة المصنعة وتمثل كل صف في الجدول كائنًا وتعرض قيم الكائن لكل خاصية.

لتغيير تخطيط الجدول إلى قائمة، استخدم المعلمة -As
ثم تتبعها List. ينشئ PowerShell جدول HTML ذي عمودين لكل كائن يشبه تنسيق القائمة في Windows PowerShell. يعرض العمود الأول أسماء الخصائص مثل الإصدار، العنوان، رقم البناء و الشركة المصنعة ويعرض العمود الثاني قيمة الخاصية.

من الأمثلة أعلاه، لديك الآن فكرة عن كيفية تغيير تخطيط الجدول، دعنا نطبق المعلمة As
في البرنامج النصي لتغيير تخطيط جداول معلومات نظام التشغيل، المعالج، BIOS والقرص إلى تنسيق القائمة.
قم بتحديث البرنامج النصي باستخدام الكود التالي أدناه. يحتوي البرنامج النصي على معلمة -As
في سطور الأوامر لنظام التشغيل، المعالج، BIOS والقرص.
بعد تطبيق المعلمة -As
، يجب تحديث التقرير على النحو الموضح أدناه. تم تغيير تخطيطات الجدول لمعلومات نظام التشغيل والمعالج وBIOS والقرص إلى قائمة.

تحسين التقرير باستخدام CSS
لنقم برفع التقرير إلى المستوى التالي ونبدأ في إضافة التصميم باستخدام CSS. يتم استخدام CSS للتحكم في كيفية ظهور تقرير HTML في متصفح الويب. يتحكم CSS في الخطوط والنصوص والألوان والخلفيات والهوامش والتخطيط. في نهاية هذا القسم ، يجب أن تكون قادرًا على رؤية كيفية تحويل التقرير من الشكل العادي إلى الشكل الغني باستخدام CSS.
هناك ثلاث طرق لتطبيق CSS في HTML مثل Inline و Internal و External. في هذه المقالة ، ستقوم بتطبيق الطريقة الداخلية باستخدام معلمة Header
في تقرير HTML.
تحدد معلمة Header
محتوى علامة <HEAD>
. علامة <HEAD>
هي جزء من هيكل HTML حيث تضع الكود لـ CSS. كما يمكن رؤية في لقطة الشاشة أدناه ، تم تضمين علامة <head>
بالفعل عندما يتم إنشاء الكود HTML بواسطة cmdlet ConvertTo-Html
.

لنستخدم الآن CSS لتنسيق تقرير HTML. أولاً ، قم بنسخ الكود أدناه ولصقه في بداية النص. سيؤدي الكود CSS المعين في المتغير $header
إلى تغيير تنسيق النصوص في التقرير التي توضع في علامة <h1>
.
بعد ذلك ، استخدم معلمة Header
وقم بتعيين المتغير $header
. قم بتحديث النص باستخدام الكود أدناه.
عند تشغيل النص ، يجب تحديث التقرير كما هو موضح أدناه. لاحظ أن العنصر الوحيد المتأثر في HTML هو العلامة <h1>
التي تطبق على تسمية “اسم الكمبيوتر”. تعد الخطوات السابقة مثالًا رائعًا على كيفية التحكم أو تلاعب في تصميم تقرير HTML باستخدام CSS.

لإضافة المزيد من التصميم إلى الجداول والتسميات الأخرى التي يتم وضعها في علامة
في التقرير ، قم بالاستمرار في تحديث المتغير $header بالكود CSS الموضح أدناه.
#CreationDate {

بعد تحديث وتشغيل النص البرمجي ، يجب تنسيق التقرير كما هو موضح أدناه – بفضل CSS ، أصبح الشكل جذابًا بصريًا ويبدو احترافيًا.
استخدام الهوية والفئة في عناصر HTML باستخدام CSS
تعتبر عناصر HTML أدوات البناء الأساسية للتقرير بلغة HTML بأكملها ، وتستخدم CSS هذه العناصر كمحدد لمعرفة المكان الذي يجب تطبيق النمط عليه. من الأمثلة السابقة ، تم تطبيق النمط CSS على عناصر HTML
،
، و
في التقرير. ولكن ماذا لو كنت بحاجة إلى تطبيق نمط مختلف على عناصر مختلفة؟ هنا يأتي دور الهوية والفئة. في تصميم تقرير HTML الخاص بك ، يمكنك استخدام إما الهوية أو الفئة لتعريف عنصر واحد.
يرجى ملاحظة أنه يمكن لعنصر HTML أن يحتوي على هوية فريدة واحدة تنتمي إلى ذلك العنصر الوحيد ، في حين يمكن استخدام اسم فئة من قبل عناصر متعددة. بالنسبة لمطوري الويب ، فإن هذه السمات ليست مجرد لتصميم الصفحة ولكنها تُستخدم في الأساس في البرمجة للتعامل مع كيفية استجابة الصفحة لكل حدث أو طلب.
لنقم بتطبيق الهوية والفئة في تقرير HTML. كما يُظهر الكود المصغر أدناه ، يتم وضع تسمية تاريخ الإنشاء في علامة
.

عندما يتم إنشاء التقرير وعرضه في المتصفح ، يتم تنسيق تسمية تاريخ الإنشاء كما هو موضح أدناه.
لتنسيق تسمية تاريخ الإنشاء باستخدام سمة الهوية – أولاً ، قم بتعيين اسم الهوية ‘CreationDate‘ لعلامة <p>
. يجب وضع اسم الهوية داخل العلامة البدء. يتم عرض الشيفرة المحدثة أدناه.
ثانياً ، قم بإنشاء شيفرة CSS جديدة لتنسيق تسمية تاريخ الإنشاء. استخدم الرمز ‘#’ متبوعاً باسم الهوية عند إعلان الهوية في CSS. أضف الشيفرة CSS أدناه في المتغير $header
ثم احفظ وقم بتشغيل النص في نافذة الأوامر في PowerShell.

بعد تعيين الهوية وإنشاء شيفرة CSS جديدة تستهدف سمة الهوية لعلامة <p>
، يجب تحديث التقرير كما هو موضح أدناه.

لنقم بتطبيق سمة الفئة في جدول معلومات الخدمة. باستخدام CSS ، قم بتغيير لون النص إلى اللون الأخضر عندما يكون قيمة الحالة قيد التشغيل واستخدم اللون الأحمر عندما تكون القيمة متوقف.
كما ذكر سابقًا ، يمكن تعيين سمات الفئة لعناصر HTML متعددة. في التقرير HTML ، العنصر الذي يحمل النص قيد التشغيل و متوقف هو علامة <td>
. باستخدام طريقة -Replace
في PowerShell ، قم بتعيين أسماء الفئة حالة التشغيل و حالة الإيقاف لجميع العلامات <td>
داخل جدول معلومات الخدمة. استخدم الأوامر أدناه وقم بتحديث النص.
أضف الكود التالي أدناه في المتغير $header
. جميع عناصر <td> التي لها اسم فئة RunningStatus ستكون لها القيمة الست عشرية #008000
والتي تعادل اللون الأخضر، وجميع عناصر <td> التي لها اسم فئة StopStatus ستكون لها القيمة الست عشرية #ff0000
والتي تعادل اللون الأحمر.

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

فيما يلي التنسيق النهائي لتقرير HTML المنسق باستخدام CSS.
#الأمر أدناه سيقوم بتوليد التقرير إلى ملف HTML
الاستنتاج
في هذه المقالة، تعلمت كيفية تحويل الكائنات (النتائج) إلى كود HTML وتوليد التقارير في شكل HTML.
I hope this article gives you enough ideas on how you can create and improve your HTML report. Cheers!
توليد التقرير بتنسيق HTML يمنحك القدرة على تطبيق CSS الذي يجعل التقرير أسهل في التحسين والتلاعب به. هناك العديد من الموارد المجانية عبر الإنترنت التي يمكنك استخدامها لتطوير مهاراتك في برمجة HTML وتصميم CSS.
- قراءة إضافية
- ConvertTo-Html
- جمع المعلومات حول الحواسيب