وقت بدء التشغيل ووقت التشغيل لنظام Windows 10: نظرة عامة باستخدام PowerShell

وقت التشغيل في ويندوز هو قياس يستخدمه العديد من مسؤولي الخوادم لتحديد المشاكل اليومية التي قد تنشأ في البيئة. في هذا المقال، ستتعلم كيفية التحقق من وقت الإقلاع في ويندوز 10 وويندوز سيرفر. أنت حر في استخدام أي طريقة تجدها أسهل بالنسبة لك. استخدم هذا المقال كمرجع مستقبلي.

سيتم تقسيم المقال إلى جزئين رئيسيين؛ التحقق من وقت التشغيل للخادم والعثور على وقت تشغيل ويندوز التاريخي. سيتم التركيز في الجزء الأول على العثور على مقدار الوقت الذي كان فيه الكمبيوتر مشغولًا منذ إعادة التشغيل الأخيرة. يُطلق عليه “وقت التشغيل الحالي” في هذا المقال.

الجزء الثاني من المقال سيتم التركيز فيه على العثور على “وقت التشغيل التاريخي”، مما يعني إعادة التشغيل ومدى مدة تشغيل نظام ويندوز بين عدة إعادات تشغيل. باستخدام PowerShell، ستتعلم كيفية تحليل سجل الأحداث في ويندوز لاستخراج أرقام وقت التشغيل التاريخي.

كيفية التحقق من وقت الإقلاع في ويندوز 10 وويندوز سيرفر

للبدء، دعنا ننتقل الآن إلى عدة طرق مختلفة للعثور على وقت تشغيل ويندوز الحالي.

سوف تشاهد عرضًا توضيحيًا لكيفية التحقق من وقت الإقلاع في ويندوز 10 عن طريق تشغيل الأوامر محليًا على نظام ويندوز خلال هذا القسم. ولكن عليك أن تعلم أنه باستخدام التحكم عن بُعد باستخدام PowerShell، يمكنك أيضًا القيام بتلك الفحوصات عن بُعد (باستثناء مدير المهام).

مدير المهام

واحدة من أبسط وأسهل الطرق للعثور على وقت التشغيل هو فتح مدير المهام ببساطة.

للتحقق من وقت تشغيل Windows باستخدام إدارة المهام، انقر بزر الماوس الأيمن على شريط المهام في Windows واختر إدارة المهام أو اضغط CtrlShiftEsc. بمجرد فتح إدارة المهام، انقر على علامة الأداء. تحت علامة الأداء، سترى تسمية وقت التشغيل.

Finding Windows uptime with task manager

عارض الأحداث

يستخدم عارض الأحداث على نطاق واسع من قبل معظم مسؤولي النظام بشكل منتظم، مما يجعله خيارًا رائعًا للحصول على وقت التشغيل بطريقة غير مرتبطة بسطر الأوامر. يمكن استخدام معرف الحدث 6005 و 6006 لتحديد متى يبدأ أو يتوقف خدمة سجل الأحداث، والتي تحدث خلال أوقات التشغيل/إيقاف التشغيل. اتبع هذه الخطوات لتحديد وقت التشغيل عبر عارض الأحداث:

  • افتح قائمة “ابدأ” وابحث ببساطة عن عارض الأحداث، يمكنك أيضًا الوصول إليه عبر إدارة الكمبيوتر.
  • في الجانب الأيسر، قم بتوسيع قسم سجلات Windows وحدد النظام
  • الآن بما أننا نستعلم فقط عن أحداث ذات صلة بالنظام، انقر فوق “تصفية السجل الحالي…” على الجانب الأيمن من النافذة الخاصة بك
  • في حقل معرف الحدث (بشكل افتراضي سيتم ملء هذا الحقل بنص يشير إلى “جميع معرفات الأحداث”) نحتاج إلى البحث عن معرفات الأحداث المناسبة، اكتب “6005، 6006” ثم انقر على موافق

ثم يمكنك مقارنة الوقتين لإنشاء وقت التشغيل الإجمالي. كما أنه بما أن العديد من حالات هذه الأحداث مخزنة، يمكننا استعلام تاريخ أوقات التشغيل!

الآن لديك سجلات أحداث مصفاة ستظهر لك ليس فقط آخر وقت ولكن جميع الأوقات المعروفة التي تم فيها تشغيل/إيقاف التشغيل.

PowerShell

PS51> Get-CimInstance Win32_OperatingSystem | Select-Object LastBootUpTime

LastBootUpTime      
--------------      
9/25/2019 9:37:37 PM

PS51> Get-WinEvent -ProviderName EventLog | Where-Object {$_.Id -eq 6005 -or $_.Id -eq 6006} | Select-Object -First 1 TimeCreated

TimeCreated         
-----------         
9/25/2019 9:37:52 PM

> wmic os get lastbootuptime

LastBootUpTime             

20190925213737.500000-240

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

عند استعلام WMI، يمكنك استعلام الفئة Win32_OperatingSystem وتحديد خاصية LastBootUpTime كما هو موضح أدناه.

للاستعلام عن سجل الأحداث عبر PowerShell، استخدم cmdlet Get-WinEvent. ستحتاج إلى البحث عن معرفات الحدث 6005 أو 6006 التي تشير إلى آخر مرة تم فيها تشغيل الجهاز.

WMIC يوفر واجهة سطر الأوامر لـ WMI وهو طريقة مجربة وصحيحة تم استخدامها لسنوات عديدة. للاستعلام عن وقت التشغيل عبر WMIC، يمكنك استعلام فئة Win32_OperatingSystem مرة أخرى على الرغم من أنها تكون مخفية قليلاً. يمكنك رؤية أدناه كيف يمكنك استخدام بنية WMIC os get lastbootuptime لإرجاع آخر مرة تم فيها تشغيل الخادم.

لا تحتاج إلى تنزيل أي شيء للاستفادة من WMIC، حيث يأتي مثبتًا مسبقًا مع Windows.

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

فقط افتح سطر الأوامر أو PowerShell واكتب systeminfo | find.

> systeminfo | find "System Boot Time:"

System Boot Time:          9/25/2019, 9:37:37 PM

ليس عليك تنزيل أي شيء للاستفادة من systeminfo، حيث يأتي مثبتًا مسبقًا مع Windows.

أمر Net Statistics

يمكنك أيضًا استعلام سريع عن وقت التشغيل عبر Net Statistics، المعروف أكثر بـ net stats. يُعيد أمر net stats معلومات عامة حول جلستك. يمكنك أن ترى أدناه الخط الإحصائيات منذ…. تُشير هذه التاريخ إلى متى تم تشغيل الجهاز.

> net stats srv

Workstation Statistics for \\NATES-PC


Statistics since 9/25/2019 9:37:52 PM

--SNIP--

The command completed successfully.

أمر Uptime

إذا كنت بحاجة إلى أداة صغيرة وقابلة للحمل للعثور على وقت التشغيل في Windows، فلا تبحث أكثر من تطبيق Uptime من NeoSmart Technologies. هذه الأداة مثالية للاستعلام بسرعة عن وقت التشغيل في أي إصدار من إصدارات Windows. الفائدة الرئيسية لهذه الأداة هي عامل الراحة. إذا وجدت نفسك تستخدمها مرارًا وتكرارًا في اليوم، قد ترغب في النظر في هذه الطريقة.

بعد تنزيل الأداة، استخرج uptime.exe إلى %WinDir%\System32. ثم افتح نافذة الأوامر واكتب ببساطة uptime.

Uptime tool

لتشغيل هذه الأداة عن بُعد، ستحتاج أولاً إلى نسخ الأداة إلى أنظمة Windows التي تُفحص وقت التشغيل عليها.

تقديم نص البرنامج Get-ServerUptimeReport

حتى لا تحتاج إلى كتابة السيناريو بنفسك، قم بتنزيل سيناريو المجتمع المسمى Get-ServerUptimeReport.ps1.

PS51> Install-Script -Name Get-ServerUptimeReport

هذا النص يسمح لك بتوفير اسم الحاسوب كمعلمة. سيقوم بتحليل سجل الأحداث System للحاسوب والعثور على حدث بداية وحدث نهاية لمقارنتهما. سيقوم بعد ذلك بإرجاع الوقت الإجمالي الذي كانت فيه الخادم متصلاً حتى يتم لف سجل الأحداث.

أدناه مثال على استخدام هذا النص على خادم. سيعيد الوقت الإجمالي لكل الأحداث التي يحتوي عليها سجل الأحداث للخادم، بما في ذلك الوقت الحالي.

PS51> ./Get-ServerUptimeReport.ps1 -ComputerName sqlsrv1

Startup Shutdown Uptime (Days) Uptime (Min)
------- -------- ------------- ------------
9/16/2017 12:40:00 PM 9/22/2017 4:20:11 PM 6.15 8860.18
9/16/2017 10:22:49 AM 9/16/2017 12:22:36 PM 0.08 119.79
9/16/2017 3:22:12 PM 9/22/2017 4:20:11 PM 6.04 8697.98

العثور على وقت التشغيل في نظام ويندوز عبر العديد من الخوادم

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

كمثال، قم بتعريف جميع الخوادم الخاصة بك في مصفوفة في وحدة التحكم PowerShell. في هذا المثال، سيتم تسمية المتغير المصفوفة $servers.

في الواقع، قد تقوم بسحب أسماء الخوادم من Active Directory أو Hyper-V أو ملف نصي. طالما يمكنك بناء مصفوفة من أسماء الخوادم، فأنت بخير.

قم بتعريف جميع أسماء الخوادم ثم كرر كل واحد منها باستخدام حلقة، كما هو موضح أدناه.

$servers = 'WEBSRV1','SQLSRV1'
foreach ($server in $servers) {
	Get-ServerUptimeReport.ps1 -ComputerName $server
}

Startup Shutdown Uptime (Days) Uptime (Min)
------- -------- ------------- ------------
9/16/2017 12:45:48 PM 9/22/2017 4:25:39 PM 6.15 8859.86
9/16/2017 10:42:52 AM 9/16/2017 12:42:34 PM 0.08 119.7
9/16/2017 2:42:17 PM 9/22/2017 4:25:39 PM 6.07 8743.38
9/16/2017 12:40:00 PM 9/22/2017 4:25:39 PM 6.16 8865.65
9/16/2017 10:22:49 AM 9/16/2017 12:22:36 PM 0.08 119.79
9/16/2017 3:22:12 PM 9/22/2017 4:25:39 PM 6.04 8703.46

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

$servers = 'WEBSRV1','SQLSRV1'
foreach ($server in $servers) {
	Get-ServerUptimeReport.ps1 -ComputerName $server | Select-Object -Property *,@{n='ServerName';e={$server}}
}

Startup Shutdown Uptime (Days) Uptime (Min) ServerName
------- -------- ------------- ------------ ----------
9/16/2017 12:45:48 PM 9/22/2017 4:34:59 PM 6.16 8869.19 WEBSRV1
9/16/2017 10:42:52 AM 9/16/2017 12:42:34 PM 0.08 119.7 WEBSRV1
9/16/2017 2:42:17 PM 9/22/2017 4:34:59 PM 6.08 8752.71 WEBSRV1

Startup Shutdown Uptime (Days) Uptime (Min) ServerName
------- -------- ------------- ------------ ----------
9/16/2017 12:40:00 PM 9/22/2017 4:35:01 PM 6.16 8875.01 SQLSRV1
9/16/2017 10:22:49 AM 9/16/2017 12:22:36 PM 0.08 119.79 SQLSRV1
9/16/2017 3:22:12 PM 9/22/2017 4:35:01 PM 6.05 8712.81 SQLSRV1

لدينا الآن أداة صغيرة ممتازة يمكنها توفير تقرير سريع حول وقت التشغيل لخوادمنا مع مرور الوقت!

الملخص

أنتم الآن رأيتم العديد من الطرق المختلفة للعثور على وقت التشغيل في نظام Windows. بغض النظر عن الخيار الذي تختارونه، ستتلقون نفس المعلومات. اختاروا الخيار الأفضل لسياقكم الخاص.

وتذكروا إذا كنتم بحاجة إلى تقرير تاريخي حول وقت التشغيل، فلا تنسوا النظر في سكريبت PowerShell Get-ServerUptimeReport!

Source:
https://adamtheautomator.com/windows-uptime/