דף הבית » איך ל » חנון בית הספר כיצד להשתמש אובייקטים ב PowerShell

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

    הבנת אובייקטים היא אחד המושגים הבסיסיים כדי "מקבל" PowerShell. הצטרף אלינו כפי שאנו לחקור אובייקטים וכיצד הם עושים PowerShell טוב יותר מאשר כל פגז אחר שם בחוץ היום.

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

    • למד כיצד להפוך את Windows עם PowerShell
    • ללמוד להשתמש Cmdlets ב PowerShell

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

    אובייקטים

    האם תהית אי פעם מה קובע PowerShell מלבד פגז לינוקס מסורתי כמו Bash, או אפילו פקודת הפקודה מדור קודם? התשובה היא פשוטה מאוד: פגזים מסורתיים טקסט פלט, אשר עושה את זה קשה לעשות דברים כמו עיצוב וסינון. כמובן, ישנם כלים שיעזרו לך לעשות את העבודה (sed ו grep לבוא בראש), אבל בסוף היום, אם אתה רוצה לעשות כל סוג של טקסט כבד ניתוח, אתה צריך לדעת ביטויים רגולריים כמו גב היד שלך.

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

    אובייקטים ב. NET הם דומים מאוד למעט שני הבדלים קטנים: "חלקים" נקראים נכסים ואת "הוראות" נקראים שיטות. אם רצינו לייצג את שירות Windows כאובייקט, אנו עשויים להחליט כי ראוי לתאר אותו באמצעות שלושה מאפיינים: שם שירות, מדינה ותיאור. אנחנו גם צריכים אינטראקציה עם השירות, אז אנחנו יכולים לתת את האובייקט התחלה, עצור ו Pause שיטה.

    ניתן לראות מאפיינים ומאפיינים של אובייקט על-ידי העברתו ל- cmdlet Get-Member. האובייקטים שתפוקות ה- cmdlet של PowerShell מבוססות בעיקר על סוגי מסגרות NET, אך ניתן ליצור בעצמך אובייקטים אם עליך להשתמש בשפה כמו C # או להשתמש בסוג PSObject.

    צינור

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

    קבל שירות | קבל חבר

    מטעמים שמעבר להיקף המאמר, מאפיינים ושיטות נקראים במשותף חברי המחלקה, מה שמסביר מדוע אתה משתמש ב- cmdlet Get-member כדי לקבל רשימה של כל השיטות והמאפיינים של אובייקט. עם זאת, קמדלט Get-Member גם מחזיר עוד פיסת מידע חשובה, סוג האובייקט הבסיסי. במסך המסך שלמעלה, אנו יכולים לראות ש- Get-Service מחזיר אובייקטים מהסוג:

    SystemServiceProcess.ServiceController

    מאחר ש- PowerShell עוסק באובייקטים ולא בטקסט, לא כל הקמ-ליטים יכולים להיות מקושרים יחד באמצעות הצינור [1]. זה אומר שאנחנו צריכים למצוא cmdlet זה מחפש לקבל אובייקט System.ServiceProcess.ServiceController מהצינור.

    Get-Command-ParameterType SystemServiceProcess.ServiceController

    שים לב כי יש cmdlet שנקרא להפסיק שירות; בואו נסתכל על העזרה עבור זה.

    Get-Help-Stop-Service

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

    Get-Help-Stop-Service-Full

    החשדות שלנו היו נכונים. אז בשלב זה אנו יודעים את הדברים הבאים:

    • Get-Service מחזיר אובייקטים של ServiceController
    • Stop-Service כולל פרמטר הנקרא InputObject שמקבל אחד או יותר ServiceControllers כקלט.
    • הפרמטר InputObject מקבל קלט צינור.

    באמצעות מידע זה נוכל לבצע את הפעולות הבאות:

    Get-Service -Name 'מכשיר נייד של אפל' | להפסיק את השירות

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

    שיעורי בית

    • קרא על צינור אובייקט

    אם יש לך שאלות אתה יכול ציוץ לי @ taybgibb, או פשוט להשאיר תגובה.