أرشيف

Posts Tagged ‘WMI’

Windows PowerShell Scriptomatic

يناير 23, 2010 أضف تعليق

يوم PowerShell Workshop و تحديداً عند شرح كيف يمكن لـPowerShell التعامل مع الـ WMI، سأل أحد الحاضرين “ هو عشان إستخدم الـ WMI  محتاج أحفظ كل الـ WMI Classes، دا عددها كبير أوووووي؟” الأجابة طبعا كانت لا والفضل هنا يرجع لـ tool  اسمها Windows PowerShell Scriptomatic  ودي وظيفتها انك بإستخدامها تقدر تشوف كل الـ WMI classes عندك في الويندوز و تختار الـclass المناسب و كمان تكتبلك الـPowerShell script اللي بيستخدم و بيتعامل مع الـ WMI class اللي انت اختارته يعني بأختصر كل اللي محتاج تحفظه هو إسم الـtool 🙂 .

image

للتحميل: Windows PowerShell Scriptomatic

التصنيفات :Windows PowerShell الوسوم:, , ,

WMI in PowerShell

يناير 19, 2009 تعليق واحد

في موضوع WMI in brief اتكلمنا بإيجاز عن الـWMI وإستخداماته. وإتكلمنا عن حاجة إسمها WMI Consumer أو WMI Application وقولنا ان دي الـTool اللي من خلالها نقدر نستخدم الـWMI علشان نحصل على أي معلومات عن الـManaged Resource. وذكرنا أمثلة ليها وكان من ضمنها الـPowerShell Script. وفي الموضوع ده هنعرف إزاي نقدر نستخدم WMI من خلال Windows PowerShell.

في PowerShell طريقتين علشان تقدر تستخدم الـWMI.

الطريقة الأولي: هي إنك تستخدم أمر Get-WmiObject

إستخدام الأمر: get-help get-wmiobject -full علشان تعرف كل المعلومات الخاصة بالأمر Get-Wmiobject زي الـsyntax والـparameters.

مثال 1: عرض معلومات عن الكمبيوتر بإستخدام WMI

{"Get-Wmiobject -class Win32_ComputerSystem | Where {$_.Name -eq "XYZ

في مثال 1، إستخدمت إسم الـWMI class الخاص بالـBIOS كـparameter للأمر Get-WmiObject

مثال 2: عرض كل الـWMI Classes الموجوده في CIMV2 namespace

Get-Wmiobject -namespace "Root\CIMV2" -list

في مثال 2، إستخدمت الـnamespace كـparameter للأمر Get-Wmiobject.

مثال 3: إستخدام WMI Query للحصول على معلومات عن الـService

"Get-Wmiobject -Query "Select * from Win32_Service

الطريقة الثانية: إستخدام  PowerShell WMI Type Accelerator

الـType Accelerator الخاصة بـWMI:

  •  [WMI]
  •  [WMIClass]
  • [WMISearcher]

 [WMI]: وظيفته أنه يساعدك في الحصول على معلومات عن WMI Object محدد عن طريق أنك تستخدم خاصية من خصائص الـObject ده في الحصول على كل معلوماته. أحياناً بيكون أسهل من الـGet-WMIobject في حالة توافر معلومات عن الـWMI Object. أو بمعني أخر الـ[WMI] يستخدم مع الـObjects.

مثال 4: عرض معلومات عن الكمبيوتر بإستخدام WMI] Type Accelerator]

' "WMI]'\\.\root\CIMv2:Win32_ComputerSystem.Name="COMPUTERNAME]

في مثال 4، إستخدمنا [WMI] بدلاً من Get-Wmiobject، وحددنا الـWMI Object path و إختارنا خاصية (Property) من خصائص الـ Object  المطلوب عرض معلوماته، في هذا المثال الخاصية هي (Name)

[WMIClass]: ده بيكون مخصص للإستخدام مع الـWMI Classes

مثال 5:

* WMIClass]'\\.\root\CIMv2:Win32_ComputerSystem' | format-list]

[WMISearcher]: هذا النوع يستخدم الـWMI Query في شكل String. ثم يقوم بإنشاء WMI Searcher Object تستخدم الـQuery. أخيراً يستخدم ()Get لتنفيذ الـQuery  وعرض الناتج.

مثال 6:

"ComputerInfo = [WMISearcher]"Select * From Win32_ComputerSystem$
()ComputerInfo.GET$
التصنيفات :Windows PowerShell الوسوم:,

WMI in brief

يناير 18, 2009 3تعليقات

إيه هو الـWMI؟

WMI دي إختصار لـWindows Management Instrumentation وهو عبارة عن تكنولوجيا مختصة بالتحكم وإدارة نظام تشغيل ويندوز أو ما يسمي بـ Windows Management. يعتبر WMI واحد من مكونات نظام تشغيل ويندوز إبتداً من Windows 2000.

من أهم مميزات WMI و بردو من أهم أسباب تطويره، هو أنه يوفر طريقة سهلة و مباشرة للتعامل مع الـManaged Resources الخاصة بالكمبيوتر من خلال الويندوز. الكمبيوتر ده ممكن يكون Local Computer أو ممكن يكون Remote Computer.

يعني إيه Managed Resources؟

المقصود بالـManaged Resources هي أي مكونات داخل الكمبيوتر يمكن للـWMI انه يتعامل معاها سواء كانت Logical Components زي معلومات عن نظام التشغيل، معلومات عن الـUser Accounts. أو Physical Components زي الـBIOS أو الـProcessor. يعني نقدر نقول سواء كانت Software أو Hardware.

يعني إيه WMI namespace؟

ببساطة الـnamespace هو طريقة لتجميع الحاجات(objects) اللي شبه بعض او مرتبطه ببعض في مجموعة واحده (Scope). مفهوم الـnamespace ده ممكن نطبقه على أي حاجة في الدنيا. هناخد الكمبيوتر كمثال للتوضيح. مكونات الكمبيوتر زي الـMotherBoard,Processor,RAM,Hard Disk دي كلها مرتبطه ببعضها وليها علاقة ببعض، في الحالة دي ان احنا نعملها namespace اسمه ComputerHardware. وبكده أول متسمع كلمه Computer Hardware هتفهم ان المقصود بيها هي المكونات زي الـMotherBoard,Processor,RAM,Hard Disk. دلوقتي بعد ما عرفت يعني ايه namespace من السهل انك تعرف يعني إيه WMI namespace. الـWMI namespace هي الـnamespace الخاصة بكل حاجة يقدر الـWMI يتعامل معاها. يعني على سبيل المثال وليس لبحصر هتلاقي WMI namespace إسمه Hardware ده علشان الـhardware اللي يقدر الـWMI يتعامل معاه. كمان هتلاقي namespace اسمه SQL Server علشان الـWMI الخاص بالـSQL

يعني إيه WMI Class؟

الـWMI بيستخدم الـClasses علشان يوصف الخصائص (Properties) لكل object موجود جوا الـnamespace. يعني مثلاً الـWMI class اللي اسمه Win32_BIOS ده بيبقي جواه كل الملعومات اللي تخص الـBIOS زي نوعه، والسوفت وير اللي موجود عليه، والشركة المنتجة، وتاريخ إصداره.

http://msdn.microsoft.com/en-us/library/aa394554(VS.85).aspx

يعني إيه WMI Provide؟

الـProviders بيستخدمها الـWMI في إنه يطلب (Request) المعلومات عن Managed Resource من الويندوز. يعني مثلاً في DNS Provider علشان تقدر تتعامل مع الـDNS من خلال الـWMI.

http://msdn.microsoft.com/en-us/library/aa394570(VS.85).aspx

يعني إيه WMI Consumer أو WMI Application؟

الـProvider كان وظيفته أن يحصل على المعلومات من نظام التشغيل – الويندوز – و الـConsumer وظيفته أن يحصل على المعلومات من الـWMI أو بمعني تاني أنه يحصل على المعلومات اللي بيحصل عليها الـWMI من الـProviders. الـConsumer ده ممكن يكون برنامج بيستخدم الـWMI، على سبيل المثال برنامج Microsoft System Management Server المشهور بإسم SMS. أو ممكن يكون PowerShell Script – VBScript بيستخدم الـWMI Query.

يعني إيه WMI Query؟

الـWMI Query هو الأمر المستخدم بواسطه الـWMI للحصول على معلومات عن الـobjects.

يعني إيه WMI Query Language؟

WQL هي اللغة اللي بيتك كتابه الـWMI Queries بإستخدامها. وهي لغة فرعية من لغة SQL المستخدمه مع قواعد البيانات Database. مما يعني أن الـWQL تشبه في كتابتها لغة SQL.

يعني إيه WMI Repository أو WBEM؟

الـWMI Repository أو WBEM هو المكان الذي يحتوي على المعلومات الخاصة بالنظام والمستخدم بواسطة الـWMI. يمكننا تخيل الـWBEM أنه قاعدة البيانات DB الخاصة بمعلومات النظام.

الـWMI Repository موجود في:

 SystemRoot%\system32\wbem\Repository%

WMI Tools:

WMI Administrative Tools

WMI Code Creator V1.0

Scriptomatic v2.0

WMI Diagnosis Utility V2.0

التصنيفات :Windows PowerShell الوسوم: