בכל פעם שאנו צריכים לגלות מידע כלשהו אודות מחשב Windows ורכיביו, אנו יכולים לעשות זאת באמצעות Get-WmiObject
.
לא רק קריאה, באמצעות שימוש בשיטות WMI, Get-WmiObject
יכול להריץ פעולות גם על מערכות מקומיות או מרוחקות. פקודה זו היא אחת ממספר פקודות בפוורשל שיכולות לעבוד עם גנזר WMI כדי להפוך את ניהול המון מערכות להרבה יותר פשוט.
גילוי כיתות עם Get-WmiObject
ברמה הבסיסית ביותר שלה, פקודה זו יכולה לשאול מידע ממחשב מקומי. כל מה שתצטרכו לדעת הוא המרחב השמור (כנראה root\cimv2
שהוא ברירת המחדל) והמחלקה WMI בה נמצא המידע שאתם מחפשים.
קיימות אלפי כיתות, וכנראה שאינכם יודעים איזו כיתה תרצו להשתמש בה עדיין. באמצעות Get-WmiObject
, אנו יכולים לשאול את כל הכיתות הזמינות במרחב שמור. באמצעות Get-WmiObject -List
, תוכלו לראות את כל הכיתות במרחב המקורי root\cimv2
. אם תצטרכו לבדוק כיתות במרחב שמור אחר, תוכלו תמיד להשתמש בפרמטר Namespace
יחד עם זה גם.
קבלת מאפייני WMI
לאחר שקיבלתם את הכיתה, יש לבדוק ולראות אילו מאפיינים נמצאים בכיתה זו. אולי אשמח לראות איזה מערכת הפעלה רץ במחשב. אולי אני בונה דוח ואשמח לראות מה מכונת מרוחקת רצה. Get-WmiObject
כולל פרמטר ComputerName
שבו תוכלו לציין מחשב אחד או יותר במרחק במקום במקומי.
המחשב הרחוק שלי הוא בקר מתחום שנקרא DC. אני אבדוק את הכיתה Win32_OperatingSystem
כדי לראות אילו מאפיינים קיימים שם.
מידע שימושי, אך אינני רואה את שם מערכת ההפעלה. דומה להרבה פלטים אחרים של PowerShell, אין כל המאפיינים נראים. לכן, נצטרך להשתמש ב- Select-Object
כדי להחזיר את כל המאפיינים.
I can now see a property called Caption
that lets me know the version of Windows.
מציאת מאפייני WMI
מה קורה אם אינך מחפש מאפיין ספציפי, אלא מאפיין שתואם ערך ספציפי. לדוגמה, אנו יכולים לשאול את כל ההופעות בכיתה CIM_DataFile
, אך זה יחזיר כל קובץ במערכת! במקום זאת, נוכל לסנן הופעות לפי ערך באמצעות הפרמטרים Filter
או Query
. בואו נסקור שניהם.
בשימוש ב- CIM_DataFile
כדוגמה, אולי אני רוצה רק למצוא הופעות שמייצגות קבצים דחוסים. מאחר שהמאפיין Compressed
הוא מאפיין בכל ההופעות והוא ערך בוליאני, אני יכול להשתמש בפרמטר Filter
כדי לשלוח את המסנן ישירות לספק WMI ולהחזיר רק הופעות שיש להן מאפיין Compressed
עם ערך True
.
אם אתה מכיר את WQL, תוכל גם לבחור את הכיתה ולציין את ה"מסנן" לבד על ידי יצירת שאילתת WQL משלך.
קריאה לשיטות WMI
Get-WmiObject
לא רק יכול לקרוא מידע מ-WMI, אלא גם לסייע בקריאה לשיטות WMI. אחת מהשיטות הנפוצות של WMI שמקוראת היא השיטה Create
על מחלקת Win32_Process
. ישנן מספר דרכים שונות לקרוא לשיטות WMI כגון באמצעות Invoke-WmiMethod
, אך זה ניתן לעשות גם עם Get-WmiObject
. עלינו רק ללכוד אינסטנס WMI ולקרוא לשיטה על אותו אובייקט.
הנה דוגמה להתחלת notepad.exe מרחוק על מחשב מרוחק. כבונוס, אנו משתמשים בהרשאה אלטרנטיבית כדי לעשות זאת!
WMI, DCOM, וכן PowerShell Remoting
דבר אחרון שיש לציין הוא כי ה-Cmdlet היורש של זה: Get-CimInstance
. אף על פי ש-Get-CimInstance
מספק יתרונות מסוימים לשימוש ב-PowerShell Remoting כפרוטוקול התקשורת המרוחקת המוגדרת כברירת מחדל, Get-WmiObject
לעיתים קרובות נוח יותר לשימוש.
Get-WmiObject
משתמש ב-DCOM כדי לתקשר עם מחשבים מרוחקים וכמעט תמיד זמין גם כך. אחרת, תצטרך לאפשר PowerShell Remoting על קצוות המחשב המרוחקים כאשר רוצה להשתמש ב-Get-CimInstance
דרך WSMAN.
לפירוט מלא, ראה את תיעוד ה-Microsoft.