27Aug

הספר החנון: באמצעות PowerShell כדי לקבל מידע על המחשב

WMI ואחיו החדש CIM יכול לשמש גם כדי לנהל את מכונות Windows בסביבה שלך.אבל האם אתה יודע את ההבדל ביניהם?הצטרף אלינו כפי שאנו להעיף מבט.

הקפד לקרוא את המאמרים הקודמים בסדרה:

  • למד כיצד להפוך את Windows עם PowerShell
  • לומד להשתמש ב- Cmdlets ב- PowerShell
  • למידה כיצד להשתמש באובייקטים ב- PowerShell
  • למידה, סינון והשוואה ב- PowerShell
  • למד להשתמש ב- Remoting ב-PowerShell

ו להישאר מכוון עבור שאר הסדרה כל השבוע.

מבוא

WMI מייצג את Windows Management Instrumentation.המילה "Instrumentation" מתייחס לעובדה ש- WMI מאפשר לך לקבל מידע על המצב הפנימי של המחשב, בדומה למכשירי לוח המחוונים במכונית שלך, ניתן לאחזר ולהציג מידע על מצב המכוניות הפנימיות שלך.

WMI מורכב מאוסף המכיל מחלקות המייצגות רכיבים שניתן לנהל בתוך המכשיר.לפי זה אנו מתכוונים רק בגלל WMI יש בכיתה Win32_Battery לא אומר כי המכשיר מכיל סוללה.לאחר מכן ניתן לשאול את השיעורים האלה עבור מידע מקומי או אפילו ברשת באמצעות שפת שאילתות דומה מאוד ל- SQL הנקרא WQL.עם זאת, WMI כבר ידוע להיות אמין מאוד, בעיקר בשל העובדה כי היא מבוססת על RPC( Remote Procedure Calls), אשר עושים כמה דברים מטורפים עם יציאות הם בוחרים לתקשר על.

החל מ - Windows 8 ו - Server 2012, WMI הוא להיות מדורגת החוצה לטובת מודל מידע משותף או CIM בקיצור.ההבדל היחיד בין WMI ו- CIM הוא פרוטוקולי ההובלה בהם הם משתמשים.בעוד WMI מבצעת שאילתות באמצעות קריאה לפרוצדורות מרוחקות, CIM משתמשת ב- HTTP, דבר שעושה את ההבדל העצום.על backend הם עדיין מדברים עם אותו מאגר מידע.

שימוש WMI

הדרך המהירה והקלה ביותר לחקור את המידע הזמין לך באמצעות WMI היא לתפוס עותק של כל דפדפן אובייקט חינם WMI.אנחנו אוהבים את זה.לאחר ההורדה, אש זה יהיה לך ממשק גרפי כדי לעיין בחוגים WMI.

תמונה

אם ברצונך לברר פרטים על תצורת הדיסק של המחשב, לחץ על שילוב Ctrl + F עם המקלדת כדי להציג תיבת חיפוש, ולאחר מכן הקלד "logicaldisk" והקש enter.

תמונה

מיד זה ייקח אותך בכיתה Win32_LogicalDisk.

תמונה

על החלק התחתון של היישום, אתה יכול לראות שיש לנו שני מופעים של הכיתה.

תמונה

ברגע שיש לנו את הכיתה שאנחנו מחפשים, שאילתה זה PowerShell הוא ישר קדימה.

Get-WmiObject -Query "בחר * מתוך Win32_LogicalDisk"

תמונה

לא ראיתי את התחביר הזה לזמן מה עם אנשים מעדיפים להשתמש בתחביר החדש פרמטרית.

Get-WmiObject -Class Win32_LogicalDisk

תמונה

אם ברצונך לקבל את המידע ממחשב אחר ברשת, תוכל פשוט להשתמש בפרמטר ComputerName.

Get-WmiObject -Class Win32_LogicalDisk -ComputerName צפע -Credential viper \ Administrator

תמונה

שימוש ב- CIM

תוך התחשבות בכך ש- CIM זמין רק ב- Windows 8 וב- Server 2012, התקדמות זו בהחלט הדרך.

Get-CimInstance -ClassName Win32_LogicalDisk

תמונה

יש גם השלמת כרטיסיות עבור פרמטר -ClassName בעת שימוש ב- Get-CimInstance, דבר המראה כי התקדמות זו היא המקום שבו מאמצי מיקרוסופט יהיו ממוקדים.

למעשה, WMI פותחה על ידי צוות נפרד לחלוטין בתוך מיקרוסופט, אך לאחר מכן נלקח על ידי אנשים האחראים על PowerShell.הם היו אלה שראו כי זה הולך להיות קשה מאוד לנקות את הבלגן WMI השאיר מאחור.בניסיון לתקן את המצב, הם מנסים לעשות WMI ו CIM זמין יותר על ידי כתיבת cmdlets מעטפת להשתמש WMI ו CIM מתחת למכסה המנוע.הדרך היחידה לבדוק אם cmdlet הוא עטיפה היא על ידי עיון בתיעוד.לדוגמה, ה- cmdlet Get-Hotfix הוא מעטפת עבור המחלקה Win32_QuickFixEngineering, כפי שניתן לראות בתיעוד.

תמונה

זה אומר שאתה יכול לקבל את התיקון החם על מכונות מרוחקות באמצעות cmdlet Get-HotFix במקום שאילתה WMI.

Get-HotFix -ComputerName localhost

תמונה

אז יש לך את זה.רק תזכור שאם יש ייעודי cmdlet אתה תמיד רוצה להשתמש בו, במעקב על ידי CIM צריך cmdlet לא קיים.לבסוף, אם כל השאר נכשל, או שיש לך מכונות ישנות בסביבה שלך, אתה רוצה להשתמש WMI.זה כל מה שיש לי עכשיו.נתראה מחר עבור יותר כיף PowerShell.