- El أجهزة التبخير يُعرّف المعرّف كل جهاز بشكل فريد و ويندوز يستخدمه لـ السائقينالتراخيص والأمن.
- بوويرشيل يتيح لك ذلك سرد وتصفية بسهولة ذراع USB التعرف على الأجهزة باستخدام أوامر مثل Get-PnpDevice وفئات WMI.
- من الممكن أتمتة تتبع أجهزة USB باستخدام البرامج النصية التي ترسل البيانات إلى خادم مركزي عبر واجهة برمجة تطبيقات REST.
- أدوات مثل مدير الأجهزة و USBView تسهل قراءة VID/PID والحقول الرئيسية الأخرى لوصف USB.
إذا سبق لك توصيل محرك أقراص USB وبدأ جهاز الكمبيوتر الخاص بك بالتصرف بشكل غريب، أو عرض نظام التشغيل Windows رسالة خطأ غامضة، فمن المحتمل أن تكون المشكلة مرتبطة بـ معرّف جهاز USB (معرّف الجهاز)إن معرفة كيفية تحديد موقع هذا المعرف باستخدام PowerShell وأدوات Windows المدمجة الأخرى هي مهارة يمكن أن توفر عليك الكثير من المتاعب، خاصة في بيئات العمل التي لا يُسمح فيها بتثبيت برامج الطرف الثالث.
علاوة على ذلك، فهو إلزامي في العديد من الشركات التحكم في أجهزة USB المتصلة، وتسجيل معرّفاتها، وإمكانية تتبعها لأسباب أمنية ولوائح تنظيمية. بدءًا من منع تسريب المعلومات وحتى منع دخول البرمجيات الخبيثة عند التعامل مع محرك أقراص USB مصاب، يكمن الحل في تحديد كل جهاز بدقة. ستتعرف هنا، بتفصيل كبير، على كيفية عمل مُعرّف الجهاز (HWID)، وكيفية الحصول على مُعرّف USB باستخدام PowerShell وأدوات أخرى، وكيفية استخدام هذه المعلومات لتشخيص المشكلات وأتمتة تتبع الأجهزة.
ما هو مُعرّف الجهاز (HWID) ولماذا يجب أن تهتم به؟
El معرف الجهاز (HWID) هو معرف رقمي فريد مرتبط بكل مكون مادي. مكونات جهاز الكمبيوتر الخاص بك: اللوحة الأم، القرص الصلب، بطاقة الرسومات، محولات الشبكة، وحدات تحكم USB، إلخ. وغالبًا ما يطلق عليها اسم "بصمة" الجهاز لأنها تساعد على تمييزه عن البقية حتى عندما يكون جهازان كمبيوتر متطابقين ظاهريًا.
في جهاز كمبيوتر نموذجي، يجمع نظام التشغيل بين معرفات الأجهزة (HWIDs) للعديد من المكونات الرئيسية لبناء هوية عالمية للجهازتُعد تلك الهوية أمراً بالغ الأهمية لأمور مثل تراخيص البرامج المرتبطة بجهاز كمبيوتر محدد، وتتبع أصول تكنولوجيا المعلومات والعديد من عمليات الأمان التي يجب أن تضمن أن البرنامج يعمل فقط على الأجهزة المصرح بها.
لم يتم اختراع هذا المعرّف من قبل نظام التشغيل ويندوز عبثاً: كل قطعة من الأجهزة لها معرف خاص بها مسجل في البرامج الثابتة (على سبيل المثال، في ذاكرة EEPROM الخاصة بالجهاز). يقرأ نظام التشغيل هذه المعلومات، ومن ثم يُنشئ سلاسل تعريفية تظهر بعد ذلك في إدارة الأجهزة، أو PowerShell، أو في الأوامر كما WMIC.
عند تثبيت نظام التشغيل لأول مرة، يقوم نظام التشغيل ويندوز بأخذ لقطة من تكوين الأجهزة هذا ويُنشئ مجموعة من المعرّفات المرتبطة بهذا الجهاز. إذا قمت لاحقًا بتغيير شيء جوهري، مثل اللوحة الأم، فقد تتغير مجموعة معرّفات الأجهزة (HWIDs) بشكل كافٍ لإعادة التحقق من الترخيص أو حتى يتطلب إعادة تنشيط النظام في بعض المنتجات.
كيفية إنشاء مُعرّف جهاز USB
في حالة أجهزة USB، يتم اشتقاق معرف الجهاز (HWID) من وصف محدد للغاية: وصف جهاز USB (USB_DEVICE_DESCRIPTOR)إنها بنية بيانات يجب أن يوفرها كل جهاز USB وتصف خصائصه الأساسية: الفئة، إصدار USB المدعوم، الشركة المصنعة، المنتج، إلخ.
يتضمن هذا الوصف حقلين رئيسيين: idVendor و idProductيُحدد الأول الشركة المصنعة (معرف البائع أو VID)، والثاني طراز المنتج المحدد (معرف المنتج أو PID). يستخدم نظام التشغيل Windows هذه القيم لإنشاء سلاسل نصية مثل USB\VID_XXXX&PID_YYYY… والتي تراها بعد ذلك باسم "معرفات الأجهزة" في إدارة الأجهزة.
على سبيل المثال، قد تحتوي كاميرا ويب USB من مايكروسوفت على شيء مثل idVendor = 0x045E (مايكروسوفت) و idProduct = 0x0728هذا الزوج من القيم، بالإضافة إلى رقم إصدار الجهاز (جهاز bcd) وغيرها من المجالات، تتحد لتشكيل معرّفات الأجهزة ومعرّفات الأجهزة المتوافقة أي نظام تشغيل ويندوز يطابق برنامج التشغيل الصحيح.
المجال bcdUSB يشير المعرّف إلى إصدار مواصفات USB الذي يتوافق معه الجهاز (على سبيل المثال، 0x0200 لـ USB 2.0). يساعد هذا برنامج تشغيل USB على معرفة كيفية التواصل مع الجهاز، والسرعات التي يدعمها، وخيارات التكوين المتاحة.
تفصيل مهم هو ذلك لا ينبغي لجهاز USB تغيير معلومات وصفه أثناء توصيلهحتى عند تغيير حالة الطاقة. ما قد يحدث هو أنه يعرض معلومات مختلفة اعتمادًا على ما إذا كان متصلًا بسرعة عالية أو بسرعة كاملة، ولكن يتم تحديد ذلك وقت الاتصال.
من جانب وحدة التحكم، يحصل المضيف على هذا الوصف من خلال تم توجيه عملية نقل التحكم GET_DESCRIPTOR إلى الجهازفي نظام التشغيل ويندوز، يمكن لبرامج تشغيل وضع النواة (KMDF/UMDF/WDM) أن تطلب رسميًا هذا الواصف من خلال URBs (كتل طلب USB) أو واجهات برمجة التطبيقات الخاصة بالإطار، ولكن هذا بالفعل مجال تطوير برامج التشغيل، وليس الإدارة عبر PowerShell.
عرض مُعرّف جهاز USB باستخدام أدوات ويندوز الرسومية

قبل أن نتعمق في PowerShell، يجدر بنا أن نتذكر أن يوفر نظام التشغيل ويندوز عدة طرق رسومية بسيطة للغاية لعرض معرفات الأجهزة (HWIDs) لأي جهازوهي مفيدة بشكل خاص عندما تحتاج فقط إلى تحديد جهاز معين.
1. مدير الأجهزة
أسرع طريقة، دون كتابة سطر واحد من التعليمات البرمجية، هي استخدام مدير جهاز Windowsوهو متوافق مع أي نوع من الأجهزة، بما في ذلك أجهزة USB. تخزينالطابعات، وكاميرات الويب، وما إلى ذلك.
- افتح إدارة الأجهزة بالضغط على Win + X واختيار "إدارة الأجهزة"، أو بالبحث عن "devmgmt.msc".
- حدد موقع المكون، على سبيل المثال في "وحدات تحكم ناقل التسلسل العالمي" أو "محركات الأقراص" إذا كان محرك أقراص USB.
- انقر بزر الماوس الأيمن على الجهاز الذي به المشكلة وادخل خصائص.
- انتقل إلى علامة التبويب تفاصيل.
- في القائمة المنسدلة "الخاصية"، حدد معرفات الأجهزة.
سترى قائمة من السلاسل النصية؛ تتضمن السلسلة الأكثر تحديدًا عادةً VID وPID، وأحيانًا الرقم التسلسلي أو SUBSYS. هذه هي السلاسل النصية التي يمكنك استخدامها بعد ذلك في البرامج النصية أو عمليات البحث عن برامج التشغيل، نسخها تمامًا كما هي.
2. موجه الأوامر باستخدام WMIC
إذا كنت تفضل خيار سطر الأوامر ولكنك لا ترغب في استخدام PowerShell حاليًا، فيمكنك استخدام WMIC (تم إيقاف استخدامه في الإصدارات الحديثة، ولكنك ستجده لا يزال موجودًا على العديد من أجهزة الكمبيوتر):
wmic path win32_pnpentity get name, deviceid
يظهر هذا الأمر جميع أجهزة التوصيل والتشغيل ومعرفات الأجهزة الخاصة بهاهذه هي تحديداً معرّفات الأجهزة التي تهمنا. يمكنك بعد ذلك تصفيتها بصرياً أو تصدير الناتج إلى ملف للمعالجة.
3. تطبيقات الطرف الثالث (عند السماح بها)
في البيئات التي يُسمح فيها بذلك، من الشائع استخدام أدوات مثل CPU-Z أو Speccy أو HWiNFO للحصول على صورة أشعة سينية للنظام بأكمله، بما في ذلك تعريف الأجهزة للعديد من المكونات. ومع ذلك، فإن هذا الخيار محظور في العديد من الشركات، لذا أصبح PowerShell بمثابة أداة متعددة الاستخدامات مقبولة في سياسات الأمن.
احصل على مُعرّف جهاز USB من PowerShell
تتضمن لغة PowerShell أوامر cmdlets قوية للغاية لعرض معلومات أجهزة التوصيل والتشغيل وتصفيتها. أما بالنسبة لمعلومات تعريف الأجهزة (HWID)، فإن الأمر الأكثر أهمية هو... Get-PnpDeviceعلى الرغم من أن فئات WMI القديمة لا تزال مستخدمة في بعض البرامج النصية القديمة.
اعرض معرّفات الأجهزة باستخدام الأمر Get-PnpDevice
لعرض مُعرّفات جميع الأجهزة النشطة على النظام، يمكنك استخدام ما يلي:
Get-PnpDevice -PresentOnly | Select-Object -Property Name,InstanceId
هذا الأمر يُعيد جدول يحتوي على الاسم المألوف للجهاز ومعرف مثيله (InstanceId).إن معرف المثيل هذا هو بالضبط سلسلة معرف الجهاز (أو قريب جدًا منها) التي يمكنك ربطها بعد ذلك بالأخطاء أو أحداث النظام أو عمليات البحث عن برامج التشغيل.
إذا كنت ترغب في التركيز فقط على أجهزة PCIعلى سبيل المثال، يمكنك استخدام التصفية التالية:
Get-PnpDevice | Where-Object { $_.InstanceId -match '^PCI' } | Select-Object FriendlyName, InstanceId
وبالنسبة لأجهزة USB، يمكنك استخدام فلتر مماثل على سلسلة InstanceId، مع تغيير البادئة:
Get-PnpDevice | Where-Object { $_.InstanceId -like 'USB\VID_*' } | Select-Object FriendlyName, InstanceId
حالات واقعية: تحديد محرك أقراص USB به مشكلة من خلال معرّفه
السيناريو التالي شائع جداً: يتجمد جهاز الكمبيوتر الخاص بك، فتقوم بفحص عارض الأحداث وتجد إشارة إلى جهاز مثل "USB\VID_1F75&PID_0917\8&31abfd78&0&3"تتصفح مدير الأجهزة بحثًا عن هذا المعرف، ولا توجد طريقة لمعرفة ماهيته بالضبط.
مثال عملي: في هذه الحالات، من المفيد جدًا استخدام PowerShell للتحقق من المعلومات. على سبيل المثال، يمكنك محاولة تحديد موقع أي جهاز PnP يبدأ معرّفه (InstanceId) بهذا النمط:
Get-PnpDevice -InstanceId 'USB\VID_1F75*'
إذا لم يُظهر هذا أي نتائج (يحدث هذا أحيانًا إذا لم يعد الجهاز متصلاً)، يمكنك التحقق من سجل جهاز USB باستخدام WMI أو، عند السماح بذلك، باستخدام أدوات مثل USBDeview والتي تعرض جميع الأجهزة التي تم توصيلها على الإطلاق، بما في ذلك التواريخ والمنافذ.
عرض الخصائص: إذا حصلت على نتائج، يمكنك توسيع نطاقها من خلال:
Get-PnpDevice -InstanceId 'USB\VID_1F75*' | Get-PnpDeviceProperty
ينبغي أن تتضمن هذه القائمة جميع خصائص التوصيل والتشغيل المرتبطة بالجهازمع ذلك، إذا لم يكن الجهاز موجودًا أو كانت هناك مشكلة في الأذونات، فقد تحصل على نتائج فارغة أو جزئية. لتصدير المعلومات إلى ملف CSV، إليك الطريقة:
Get-PnpDevice -InstanceId 'USB\VID_1F75*' | Get-PnpDeviceProperty | Export-Csv -Path 'DevDetails.csv' -NoTypeInformation
إذا ظهر ملف CSV فارغًا، فهذا يعني في أغلب الأحيان أن لا يوجد جهاز يطابق الفلتر في ذلك الوقت أو أن الأمر cmdlet لم يتمكن من قراءة الخصائص (بسبب الأذونات أو لأن الجهاز لا يستجيب).
عرض أجهزة تخزين USB المتصلة بـ WMI
ومن الحالات النموذجية الأخرى الرغبة في المعرفة ما هي محركات أقراص USB أو محركات أقراص الفلاش المتصلة حاليًا؟من الطرق المختصرة الكلاسيكية في PowerShell الاعتماد على فئة WMI. محرك أقراص Win32 تصفية النتائج حسب نوع الواجهة:
Get-WmiObject Win32_DiskDrive | Where-Object { $_.InterfaceType -eq 'USB' }
إذا كنت تريد شيئًا أكثر قابلية للقراءة والتصدير، يمكنك عرض الحقول ذات الصلة فقط باستخدام PSCustomObject:
Get-WmiObject Win32_DiskDrive | Where-Object { $_.InterfaceType -eq 'USB' } | ForEach-Object {
[PSCustomObject]@{
معرّف الجهاز = $_.معرّف الجهاز
النموذج = $_.النموذج
Serial = (Get-WmiObject Win32_PhysicalMedia | Where-Object { $_.Tag -eq $_.DeviceID }).SerialNumber
}
}
هنا، يعرض كل كائن مخصص معرّف الجهاز، والطراز، والرقم التسلسلي الفعلي (عندما يعرضها المصنّع بشكل صحيح). وهذا أساس مفيد للغاية لبرامج إدارة المخزون وتتبعه.
مراقبة وتسجيل أجهزة USB تلقائيًا باستخدام PowerShell
في بيئات الشركات، من الشائع جدًا أن يرغب قسم تكنولوجيا المعلومات سجل مركزي لجميع أجهزة USB المتصلة لكل جهاز: ما هو الجهاز، ومتى تم الاتصال به، ومن أي جهاز كمبيوتر، وما إلى ذلك. يساعد هذا في اكتشاف الأجهزة غير المصرح بها، والتحقيق في الحوادث الأمنية، والامتثال للسياسات الداخلية.
تتمثل إحدى الطرق المرنة للقيام بذلك دون تراخيص إضافية في تثبيت un سيناريو برنامج نصي بلغة PowerShell يقوم بجمع المعلومات ذات الصلة من كل جهاز USB وإرسالها إلى خادم مركزي عبر واجهة برمجة تطبيقات RESTاستنادًا إلى المثال السابق مع WMI، سيبدو المخطط كالتالي:
Get-WmiObject Win32_DiskDrive | Where-Object { $_.InterfaceType -eq “USB” } | ForEach-Object {
[PSCustomObject]@{
معرّف الجهاز = $_.معرّف الجهاز
النموذج = $_.النموذج
Serial = (Get-WmiObject Win32_PhysicalMedia | Where-Object { $_.Tag -eq $_.DeviceID }).SerialNumber
}
} | ConvertTo-Json | Invoke-RestMethod -Uri «http://servidorcentral/api/usblog» -Method Post
هذه الكتلة يقوم بجمع جميع الأقراص المزودة بواجهة USB، وإعداد الكائنات التي تحتوي على البيانات الرئيسية، وتحويلها إلى JSON.ثم مع استدعاء طريقة الراحةأرسل بيانات JSON هذه إلى نقطة نهاية HTTP على خادم التسجيل الخاص بك. ومن هناك، يمكنك إضافة اسم الفريق، ومستخدم الجلسة، والتاريخ والوقت بدقة، وما إلى ذلك، حسب متطلباتك الأمنية.
للمراقبة المستمرة، عادةً ما يتم دمج البرنامج النصي مع جدولة مهام ويندوز لتشغيلها عند بدء تشغيل النظام أو تسجيل الدخول، أو يمكنك إنشاء خدمة تراقب أحداث النظام المتعلقة باتصالات USB وتؤدي إلى إرسالها في الوقت الفعلي.
أنشئ واجهة برمجة تطبيقات REST بسيطة لتسجيل بيانات USB
لاستلام البيانات المرسلة بواسطة برنامج PowerShell النصي، أنت بحاجة إلى برنامج صغير خادم ويب مزود بمسار مُعدّ لاستقبال طلبات POST بتنسيق JSONإحدى الطرق السريعة جدًا للقيام بذلك هي باستخدام Python مع قارورةمما يسمح لك بإعداد نقطة نهاية ببضعة أسطر.
الفكرة الأساسية هي كالتالي:
من قارورة استيراد قارورة، طلب، jsonify
التطبيق = قارورة (__ name__)
@app.route('/api/usblog', methods=['POST'])
دالة log_usb_data():
البيانات = طلب.get_json()
إذا لم تكن البيانات:
return jsonify({"error": "لم يتم إرسال أي بيانات"}), 400
with open("usb_log.txt", "a") as log_file:
log_file.write(f»{data}\n»)
return jsonify({"message": "تم استلام البيانات بنجاح"}), 200
إذا __name__ == '__main__':
app.run (المضيف = '0.0.0.0 ′ ، المنفذ = 5000)
وبهذا، ستنتهي كل مكالمة من برامج PowerShell النصية الخاصة بك إضافة سطر يحتوي على بيانات جهاز USB إلى ملف usb_log.txtمن الواضح أنه في عملية نشر حقيقية، سترغب في إرسال تلك البيانات إلى قاعدة بيانات، وإضافة المصادقة، وتشفير حركة المرور باستخدام HTTPS، وما إلى ذلك، ولكن كنقطة بداية، فهي أكثر من كافية.
الاحتياجات: الخطوات الأساسية لتشغيله هي كالتالي:
- قم بتثبيت Flask باستخدام قارورة تثبيت الأنابيب على خادم بايثون الخاص بك.
- احفظ الكود في ملف server.py وأطلقه مع python server.py.
- قم بتكوين عنوان URL في نصوص PowerShell البرمجية للإشارة إلى http://IP_DEL_SERVIDOR:5000/api/usblog.
من تلك اللحظة فصاعدًا، سيتمكن أي جهاز لديه إذن بالاتصال بهذا الخادم من قم بتقديم قائمة بأجهزة USB الخاصة بك بشكل دوري أو عند الطلب.
جدولة تشغيل البرامج النصية على USB عند بدء تشغيل نظام التشغيل Windows
لكي يكون هذا النظام بأكمله عملياً، من المهم أن سيتم تشغيل برنامج PowerShell النصي تلقائيًا دون الحاجة إلى أن يتذكر أحد تشغيله.يوفر نظام التشغيل ويندوز طريقتين شائعتي الاستخدام: جدولة المهام ومجلد بدء التشغيل.
استخدام جدول المهام
التكوين السريع: باستخدام مُجدول المهام (جدولة المهاميمكنك ضبط التنفيذ استجابةً لأحداث النظام المختلفة:
- افتح جدولة المهام واختر "إنشاء مهمة".
- في علامة التبويب "عام"، أعطِ اسمًا مثل "تتبع USB" ثم اختر "التشغيل بأعلى الامتيازات".
- في أغنية "Triggers"، يضيف واحداً لـ "عند بدء تشغيل النظام" أو "عند تسجيل الدخول"، وذلك حسب ما يثير اهتمامك.
- في قسم "الإجراءات"، حدد "بدء برنامج" وأشر إلى powershell.exe مع نوع المعلمات -NoProfile -ExecutionPolicy Bypass -File «C:\path\script.ps1».
- احفظ الملف وتأكد من تفعيل المهمة.
وهذا يضمن أن تبدأ عملية المراقبة في كل مرة يتم فيها تشغيل الجهاز وأن البرنامج النصي يمكنه الوصول إلى جميع المعلومات الضرورية، شريطة أن يكون لديه الأذونات المناسبة.
استخدام المجلد الرئيسي مع ملف .bat
ثمة خيار آخر أبسط، وإن كان أقل تفصيلاً، وهو إنشاء الخفافيش الذي يستدعي PowerShell ويضعه في مجلد المستخدم الرئيسي:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File «C:\path\del\script.ps1»
يمكنك حفظ ذلك باسم، على سبيل المثال، tracking_usb.batوانسخها إلى:
%APPDATA%\Microsoft\Windows\قائمة ابدأ\البرامج\بدء التشغيل
بمجرد تسجيل دخول المستخدم، سيقوم نظام التشغيل Windows بتشغيل ملف .bat هذا، ومعه سيتم تشغيل برنامج PowerShell النصي.إنه حل مفيد للبيئات الصغيرة أو عندما لا ترغب في التعامل مع جدولة المهام.
تتبع أجهزة USB على أجهزة الكمبيوتر البعيدة باستخدام PowerShell
في العديد من شبكات الشركات، لا تكمن المشكلة فقط في معرفة أي محرك أقراص USB يتصل بجهاز الكمبيوتر الخاص بك، بل للحصول على رؤية شاملة للأجهزة المتصلة عبر أجهزة كمبيوتر متعددةعندما يتعذر استخدام وكلاء الطرف الثالث، يظل الجمع بين PowerShell Remoting و WMI نهجًا صالحًا للغاية.
سيكون المثال النموذجي لبرنامج نصي لعرض قائمة أجهزة USB على أجهزة كمبيوتر متعددة على النحو التالي:
$computer = «COMPUTER1»، «COMPUTER2»، «COMPUTER3»
$namespace = "root\CIMV2"
Get-WmiObject -Class Win32_USBControllerDevice -ComputerName $computer -Namespace $namespace |
ForEach-Object { [wmi]($_.Dependent) } |
فرز الكائنات: الشركة المصنعة، الوصف، معرف الجهاز |
Format-Table -GroupBy Manufacturer Description,Service,DeviceID |
Out-File -Append -FilePath C:\USB\usblist.txt
الفكرة هي: استعلم عن علاقة وحدة تحكم USB بالجهاز على كل جهاز كمبيوتر بعيد، وحدد خاصية Dependent إلى مثيل WMI فعلي، ثم قم بتفريغ المعلومات المصنفة إلى ملف نصي.إذا ظل الملف فارغًا، فأنت بحاجة إلى التحقق من الأذونات، وإمكانية الوصول عن بعد، وجدار الحماية، وبالطبع، بناء جملة البرنامج النصي (المسافات أو علامات الاقتباس المغلقة بشكل سيئ هي من الأمثلة الكلاسيكية).
بفضل بنية جيدة لهذا النوع من النصوص البرمجية، يمكنك تحقيق جرد موحد لأجهزة USB لكل فريقيتم تجميعها حسب الشركة المصنعة والوصف، دون الاعتماد على برامج خارجية.
استخدام معرّف USB للعثور على برامج التشغيل وصيانتها
وبغض النظر عن الجانب الأمني، فإن معرفة وإدارة يُعدّ مُعرّف الجهاز (Hardware ID) مفتاحًا أساسيًا للعثور على برامج التشغيل المناسبة.خاصة عندما يفشل نظام التشغيل Windows في العثور على الإصدار العام أو بعد تحديث النظام الذي يترك الجهاز "معطلاً".
النمط الهرمي: عادةً ما تتبع المعرفات من هذا النوع نمطًا هرميًا، وخاصة في أجهزة PCI/PCIe:
- VEN_XXXX يحدد الشركة المصنعة للرقاقة.
- DEV_XXXX حدد طراز الجهاز بالتحديد.
- SUBSYS_XXXXXXXXX تفاصيل حول أنواع المُجمِّع، والمنطقة، وما إلى ذلك.
بالنسبة لـ USB، نجد سلاسل مثل USB\VID_XXXX&PID_YYYY وأحيانًا مع الرقم التسلسلي. عندما يتوقف جهاز عن العمل بعد تحديث ويندوز، انسخ معرّف الجهاز (HWID) بدقة وأدخله في محرك بحث الشركة المصنعة أو في قواعد البيانات متخصص إنها طريقة دقيقة للغاية للعثور على برنامج التشغيل المناسب، حتى للأجهزة القديمة.
أدوات مثل أصل أداة تثبيت برنامج التشغيل Snappy تعتمد حلول إدارة وحدات التحكم التجارية غالبًا على هذه المعرفات تحديدًا لـ قم بإقران برنامج تشغيل الجهاز بدقةتوجد أيضًا محركات بحث محلية قادرة على البحث في مئات ملفات .inf باستخدام معرفات الأجهزة المضمنة فيها، وهو أمر رائع عندما يكون لديك مكتبة من برامج التشغيل التي تم تنزيلها ولكن لا يمكنك تذكر أي منها يتوافق مع ماذا.
إحدى الحيل المفيدة للأشخاص الأكثر تنظيماً هي احتفظ بجدول بيانات يحتوي على أعمدة لـ VEN و DEV و SUBSYS والوصف ومسار برنامج التشغيلباستخدام وظائف مثل MID() في Excel، يمكنك استخراج تلك الحقول تلقائيًا من سلسلة HWID، وعلى المدى الطويل يوفر لك ذلك ساعات عديدة من التجربة والخطأ عند التعامل مع الأجهزة الموثقة بشكل سيئ.
أدوات تكميلية للعمل مع معرّفات USB
على الرغم من أن التركيز هنا ينصب على ما يمكنك فعله بـ أدوات PowerShell والأدوات المدمجة في نظام التشغيل Windowsمن المفيد معرفة بعض الأدوات المساعدة - خاصة إذا كانت بيئتك تسمح بتثبيتها - التي تسهل العمل مع أجهزة USB.
برنامج عرض أجهزة USB (USBView) من مايكروسوفت
تقدم مايكروسوفت هذه الأداة مجاناً. عارض أجهزة USB (USBView)وهو مُضمّن في حزمة برامج تشغيل ويندوز. يوفر عرضًا شجريًا لجميع برامج تشغيل USB والأجهزة الموجودة في النظام، ويعرض idVendor و idProduct وحقول وصف الجهاز الأخرى بطريقة واضحة جداً.
الخطوات التالية: الخطوات الأساسية هي:
- قم بتثبيت حزمة Windows Driver Kit المناسبة وحدد موقعها USBView.exe (عادةً في مسار أدوات تصحيح الأخطاء، على سبيل المثال، Debuggers\x64).
- قم بتشغيله وحدد جهاز USB في الشجرة الموجودة على اليسار.
- تحقق من الحقول الموجودة في اللوحة اليمنى idVendor و idProduct، بالإضافة إلى بقية الوصف.
إذا كنت تقوم بتطوير برامج تشغيل، على سبيل المثال مع معالج تطوير برامج تشغيل فيزاتُعد هذه البيانات ضرورية لإخبار السائق بالأجهزة التي يجب التعامل معها بناءً على معرفات VID وPID الخاصة بها.
قواعد بيانات معرف USB عبر الإنترنت
عندما لا يكون الجهاز بحوزتك فعلياً ولكنك تعرف اسمه أو جزءاً من مُعرّفه، يمكنك أيضاً اللجوء إلى قواعد بيانات معرفات USB العامةفي هذه الأنواع من المواقع، يمكنك البحث حسب الطراز أو العلامة التجارية أو حتى أجزاء من معرف الفيديو/معرف المنتج، وهي تعرض القيم الرسمية لـ معرف البائع ومعرف المنتج مسجل لهذا الجهاز.
يُعد هذا مفيدًا بشكل خاص عندما لديك معرف جهاز جزئي، أو أن نظام التشغيل Windows يقدم وصفًا عامًا فقط.ويجب عليك التأكد من معرف البائع/معرف المنتج الذي يتوافق معه قبل البحث عن برنامج تشغيل متوافق أو تطبيق سياسة حظر الجهاز بواسطة المعرف.
في النهاية، فإن إتقان معرفات USB وغيرها من معرفات الأجهزة يحولك إلى نوع من "محقق النظام": يمكنك تتبع الجهاز الذي تسبب في العطل، ومحرك أقراص USB الذي تم توصيله بأي جهاز كمبيوتر ومتى، أو سبب توقف برنامج التشغيل عن التحميل بعد التحديث.باستخدام PowerShell كأداة مركزية، بالإضافة إلى Device Manager وWMI وبعض الأدوات المساعدة المتخصصة، وإذا لزم الأمر، خادم Flask صغير، لديك كل ما تحتاجه لمراقبة والتحكم في نظام USB البيئي الخاص بك دون الاعتماد على حلول خارجية مرهقة أو افتراضات غير موثوقة.
كاتب شغوف بعالم البايت والتكنولوجيا بشكل عام. أحب مشاركة معرفتي من خلال الكتابة، وهذا ما سأفعله في هذه المدونة، لأعرض لك كل الأشياء الأكثر إثارة للاهتمام حول الأدوات الذكية والبرامج والأجهزة والاتجاهات التكنولوجية والمزيد. هدفي هو مساعدتك على التنقل في العالم الرقمي بطريقة بسيطة ومسلية.