מודולים של PowerShell: מדריך למתחילים להרחבת הפונקציות

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

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

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

גילוי מודולי PowerShell זמינים

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

כדי לחקור את המודולים המותקנים על המערכת שלכם, השתמשו בפקודת Get-Module:

Get-Module

אתם עשויים לשים לב לרשימה קצרה של מודולים. הסיבה היא שGet-Module מציגה רק את המודולים שכבר יובאו לסשן שלכם.

כדי לראות את כל המודולים הזמינים על המערכת שלכם, כולל אלו שעדיין לא נטענו, הוסיפו את הפרמטר -ListAvailable:

Get-Module -ListAvailable

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

מודולים יכולים להיות מסוגים שונים—סקריפט, בינארי או מניפסט.

כדי לקבץ מודולים לפי סוגם לבדיקה קלה יותר, נסו את זה:

gmo -ListAvailable | group ModuleType

כאן, אתה משתמש בכינויים לנוחות.

לדוגמה, gmo הוא ראשי תיבות עבור Get-Module, ו־group הוא ראשי תיבות עבור Group-Object. כינויים חוסכים זמן בעת הרצת פקודות בקונסולה.

גילוי גרסאות של מודולים ופרטי פקודות

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

מודולים מכילים גם פקודות שנגישות דרך המאפיין ExportedCommands.

כדי לראות את הפקודות במודול Microsoft.PowerShell.Management, הרץ:

gmo Microsoft.PowerShell.Management | Select-ExpandProperty ExportedCommands

פקודה זו מציגה רשימת פקודות הזמינות במודול.

איתור ספריות מודולים

מודולים לא עובדים כהילה ב־PowerShell – הם קיימים בספריות ספציפיות במערכת שלך, וצריך ש־PowerShell ידע לאיפה למצוא אותם.

כדי להציג את המיקומים של מודולי PowerShell זמינים:

gmo -list

המיקומים הנפוצים כוללים:

  • C:\Program Files\PowerShell\7\Modules
  • C:\Program Files\WindowsPowerShell\Modules
  • C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

אפילו כאשר מריצים PowerShell Core, מודולים מספריות PowerShell של Windows עדיין עשויים להופיע מכיוון ש־PowerShell Core יכול להשתמש בהם.

למודולים יש קטגוריות מוקצות לפי המאפיין PSEdition, שמציין תאימות:

  • Core – בנוי עבור PowerShell Core.
  • שולחן עבודה – מיועד ל-Windows PowerShell.
  • שני – תואם לשתי הגרסאות.

ניהול משתנה PSModulePath

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

כדי לצפות במשתנה הסביבה PSModulePath:

$env:PSModulePath

המשתנה מכיל רשימה מופרדת בנקודותיים של תיקיות.

כדי להקל על הקריאה, פרק אותו למערך:

$env:PSModulePath -split ';'

PowerShell מחפש מודולים ב:

  • תיקיות ברמת משתמש (למשל, תיק המסמכים של פרופיל המשתמש שלך).
  • תיקיות משותפות בתיקי תוכנה.
  • תיקיות ברמת מערכת, כגון C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules.

אתה יכול גם להוסיף תיקיות מותאמות אישית לנתיב החיפוש:

$env:PSModulePath + ';C:\MyNewModulePath'
$env:PSModulePath

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

סיכום

במאמר זה, חקרת כיצד לגלות מודולים זמינים, לצפות בגרסאות שלהם, לבדוק את הפקודות שלהם ול locate את תיקי האחסון שלהם. גם למדת כיצד לנצל את משתנה הסביבה PSModulePath כדי להתאים אישית היכן ש-PowerShell מחפש מודולים.

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

עם הבנה מעמיקה יותר של מודולים, תהיה מוכן להתמודד עם אתגרים מורכבים של אוטומציה בביטחון וביעילות!

Source:
https://adamtheautomator.com/powershell-modules-guide/