פוורשל הוא שפת סקריפטים חזקה ומרשימה ביותר. אך כדי לפתוח את הפוטנציאל שלו, עליך לדעת כיצד לייבא את המודולים הנכונים.
במדריך זה, תלמד את כל מה שאתה צריך לדעת כדי לייבא מודולי פוורשל כמו מקצוען. עם הבנה עמוקה של cmdlets, פרמטרים ומודולים, תוכל ליצור סקריפטים מהירים, יעילים ויעילים יותר מתמיד.
המשך לקרוא כדי להמריץ את מיומנויות הפוורשל שלך ולהעלות את המשחק הסקריפט שלך לרמות חדשות!
דרישות מוקדמות
מדריך זה יהיה הדגמה מעשית. כדי לעקוב, הקפד שתהיה לך מערכת עם פוורשל מותקן. מדריך זה משתמש בווינדוס 10 ופוורשל 5.1 כדוגמה, אך אותם פקודות אמורות לעבוד עם רוב הגרסאות של ווינדוס ופוורשל.
ייבוא מודול יחיד
מודולי פוורשל מכילים קוד מובנה שאתה יכול להשתמש בו בסקריפטים שלך, מפחית לך זמן ומאמץ. כאשר אתה מייבא מודולי פוורשל, אתה מנצל קודים מובנים במקום להתחיל מאפס.
אך איך ניתן לייבא מודולים ב-PowerShell? ה־Import-Module
cmdlet הוא הדרך העיקרית לייבא מודולים ב-PowerShell. לייבוא מודול יחיד הוא אחת מהשימושים הבסיסיים ביותר של פקודת ה־Import-Module
, שהיא הדבר הראשון שתלמד במדריך זה.
פתח את PowerShell כמנהל, והרץ את הפקודה להלן כדי לחפש את המודול PSDiagnostics
ולטעון אותו לזכרון. אם הצלחת, המודול ייבא, אך הפקודה לא תציג פלט.
ייבוא מודולים ממאגרי ריפוזיטוריות מקוונות באמצעות ה־Install-Module cmdlet מומלץ בחום כל עוד זה אפשרי. פקודת זו מטפלת בתלותים ובניהול גרסאות עבורך.
לאחר שייבאת את המודול, תוכל להשתמש באחד מפקודות cmdlets או פונקציות המצויות במודול כדי לעזור לך לאבחן ולתקן בעיות. פקודת ה-cmdlet Enable-PSTrace
היא דוגמה אחת לפקודות הזמינות במודול PSDiagnostics, המאפשרת מעקב תקלות ב-PowerShell.
כעת, הרץ את הפקודה הבאה Enable-PSTrace
כדי לבצע מעקב תקלות ולשמור את התוצאות בנתיב המצויין -TraceFilePath
(C:\\MyTrace.log
). הפקודה זו אינה מספקת פלט לקונסול מאחר והתוצאות מתווספות לקובץ.
חלק מהמודולים עשויים לדרוש הגדרה או הגדרות נוספות לפני שתוכל להשתמש בהם. יש לוודא קריאת התיעוד המסופק עם המודול כדי להבין כל דרישות הקדם או הנדרשים.
ייבוא מודולים מרובים בו זמנית
ייבוא של מודול יחיד עובד בסדר. אך כאשר תצטרך לייבא מודולים מרובים בו זמנית, המשימה גם כן נכנסת לתחום הפעולה של פקודת ה-cmdlet Import-Module
.
ייבוא מודולים מרובים הוא דרך מצוינת לחסוך זמן ומאמץ ב-PowerShell. אך איך בדיוק? תציין את שמות המודולים מופרדים בפסיקים.
הרץ את הפקודה הבאה כדי לחפש מספר מודולים (Dism, PowerShellGet, PSReadline
) וטען אותם לזיכרון. כמו שייבוא של מודול יחיד, פקודה זו אינה מספקת פלט.
הצגת פרטי היבוא של מודול
כפי שצוין מראש, היבוא המוצלח של המודול לא מספק פלט. אבל תגיש לי את זה, היית מסקפטי אם המודול באמת נטען או לא.
הפרמטר -Verbose
הוא אפשרות שימושית שניתן להשתמש בה עם מספר רב של פקודות ופונקציות של פוורשל, כולל פקודת ה־Import-Module
. הפרמטר הזה אומר לפוורשל להציג מידע מפורט על הפקודה בזמן ביצועה. בתמורה, אתה מקבל משוב שימושי שאתה יכול להשתמש בו לתיקון בעיות ולאיתור באגים.
הפעילו את הפקודה הבאה כדי לייבא את המודול SmbShare
, תוסיפו את הפרמטר -Verbose
כדי להדפיס פרטי יבוא המודול.
כפי שניתן לראות למטה, הפרמטר -Verbose
מספק מידע מפורט אודות הקובץ של המודול שנטען ופונקציות שונות שנייבאות מהמודול. מידע זה יכול לעזור להבין את הפעולה הפנימית של המודול.
במקרה זה, המודול SmbShare
מספק קומדלטים לניהול שיתופי SMB במכונות Windows. קומדלטים אלו כוללים, אך אינם מוגבלים ל-New-SmbShare
(יצירת שיתופים חדשים) ו-Remove-SmbShare
(הסרת שיתופים קיימים).

ייבוא מחדש של מודול לאותו סשן
בין אם המודול שלך לא פועל כראוי או שאתה רוצה פשוט לוודא שאתה משתמש בגרסה העדכנית ביותר של המודול שלך, ייבוא מחדש של PowerShell הוא מועיל. איך? על ידי הוספת הפרמטר -Force
לפקודת Import-Module
.
הפרמטר -Force
מאפשר לך להמשיך להשתמש ב-cmdlets ובפונקציות שסופקו על ידי המודול מבלי לצגות ולפתוח מחדש את ההפעלה של PowerShell שלך.
אחת המקרים הנפוצים לייבוא מחדש של מודול הוא כאשר אתה פותח ועושה שינויים במודול. תוכל לייבא מחדש את המודול להפעלה הנוכחית שלך כדי לבדוק את השינויים האלה לפני שתסיים אותם.
הריץ את הפקודה הבאה על מנת להשתמש בפרמטר -Force
ב-PowerShell כדי להסיר ולייבא מחדש את המודול SmbShare
ממיקומו המקורי.
הפרמטר -Prefix
מאפשר לך לציין תחילית עבור ה-cmdlets והפונקציות שיובאו מהמודול. במקרה זה, כל ה-cmdlets והפונקציות שיובאו יתחילו בתחילית New
. הפרמטר הזה יכול להיות שימושי למניעת התנגשויות עם cmdlets או פונקציות קיימות בהפעלה שלך.
לדוגמה, ה-cmdlet Get-SmbShare
במודול המקורי יהפוך להיות Get-NewSmbShare
במודול שייובא מחדש.
כעת, הרץ את Get-Command למטה כדי לקבל רשימה של כל ה-cmdlets והפונקציות שסופקו על ידי המודול SmbShare שנבחרו (Select-Object) לפי שם.
שים לב, תוכל לראות שלמודול ה- SmbShare, יש כעת קידומת New התווספה לשמות ה- cmdlets שלו. הפלט הזה מאשר שהמודול יובא מחדש בהצלחה.

שימוש בחבילות NuGet לייבוא של מודולי PowerShell באופן ידני
עד כה, ייבאת מודולים בהצלחה מגלריית PowerShell. אך מה קורה אם המודול שאתה מחפש לא נמצא שם?
תוכל להתקין ולייבא מודולי PowerShell מחבילת NuGet באופן ידני. בהקשר של PowerShell, חבילת NuGet היא אוסף של קבצים הכוללים מודול PowerShell יחד עם כל המודולים או ספריות תלויות הדרושים לתפעול המודול.
כדי לייבא מודול מחבילת NuGet, יש להוריד, לחלץ ולהתקין את חבילת NuGet ידנית עם השלבים הבאים:
1. לנווט לדף PowerShell Gallery של מודול Az.Automation ב-Azure.
2. לאחר מכן, ללחוץ על לשונית Manual Download → להוריד את קובץ ה-nupkg הגולמי כדי להוריד את החבילה. המדריך הזה משתמש במודול Az.Automation בגרסה 1.9.1 מגלריית PowerShell של Azure כדוגמה. אך השלבים הם זהים גם לחבילות NuGet אחרות.

3. לאחר הורדת הקובץ, להפעיל את הפקודה Unblock-File
למטה, שאין לה פלט, אך היא מפתיעה את הקובץ שהורד .nupkg. יש לוודא שהמסלול שלך שונה מזה שבו הורדת את החבילה.
פתיחת החבילה נחוצה. למה? פוורשל עשוי לא לאפשר את ביצוע קבצים שהורדו מהאינטרנט כחלק מהזהירות האבטחתית למניעת ביצוע סקריפטים פוטנציאלית מזיקים
4. עכשיו, פתח את קובץ ה-.nupkg שהורדת לתיקייה במחשבך המקומית. ייתכן ותצטרך כלי דחיסה/פיצוץ כגון 7-zip או WinRAR כדי לפתוח את החבילה. חבילת NuGet היא ארכיון ZIP המכיל אוסף של קבצים המהווים מודול.
5. מחק את התוכן הבא מהתיקייה שנפתחה.
תוכן המופק מחבילת NuGet כולל מטא-נתונים וקבצים שאינם נדרשים להתקנת המודול באופן ידני.
Name | Type |
---|---|
_rels | Folder |
Package | Folder |
[Content_Types].xml | XML File |
Az.Automation.nuspec | XML Manifest File |

6. שנה את שם התיקייה שנפתחה בשם מתאר יותר תיאורי כמו az.automation כדי למנוע שגיאות שעלולות להתרחש. זכור לשמור על כל האותיות באותיות קטנות ולהימנע משימוש בתווים מיוחדים בשם התיקייה.
7. לאחר מכן, הפעל את הפקודה $env:PSModulePath
למטה כדי למצוא את נתיבי המודול של הפקודה הנוכחית שלך. פקודה זו מחזירה רשימה של כל נתיבי המודול הברירתיים על המערכת שלך. PowerShell מחפשת את הנתיבים הללו כדי לטעון מודולים באופן אוטומטי כאשר שם המודול מצויין בסקריפט או בפקודה.
שים לב לנתיבים, שכן תזדקק להם בשלב הבא.

8. העתק את התיקייה שקיבלה שם חדש (az.automation) לאחת מהתיקיות שסימנת בשלב השבעה. בכך נגדיר את טווח המודול (ספציפי או לכל המשתמשים).
Path | Function |
---|---|
C:\Users\admin\Documents\WindowsPowerShell\Modules | Makes the module available for the specific user account (admin). This tutorial uses this location as an example. |
C:\Program Files\WindowsPowerShell\Modules | Makes the module available for all user accounts on your local machine. |
9. עכשיו, הריץ את הפקודה הבאה כדי להתקין ולייבא את המודול (az.automation) לסשן ה־PowerShell שלך. ודא שהחלפת את az.automation בשם הממשי של המודול שלך.

10. לבסוף, הרץ את הפקודה הבאה Get-Module כדי לוודא אם המודול (az.automation) יובא בהצלחה.

אולי אין לך רצון לסמוך על גילוי אוטומטי. אם כן, ציין את מיקום הקובץ המדויק (C:\az.automation) בעת ייבוא המודול.

מסקנה
עם פונקציות מחוברות או קוד מקובץ, מודולי PowerShell הם שינוי משחק. ובמדריך זה, למדת דרכים מספיקות לייבוא מודולי PowerShell לסשנים שלך, כולל ייבוא ידני של מודולים מחבילת NuGet. גם נגעת בפרמטרים שונים ששולטים בתהליך הייבוא.
באמצעות לשלוט בטכניקות אלו, ניתן לייבא ולהשתמש במודולים בקלות כדי לשפר את התסריטים שלך לאוטומציה. אך הלמידה אינה חייבת להפסיק שם. למה לא לקחת את כישורי ניהול המודולים של PowerShell שלך לרמה הבאה על ידי למידת ייצוא חברי המודול?
Source:
https://adamtheautomator.com/import-powershell-modules/