בית הספר חנון באמצעות 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 \ 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.