
dir הוא כינוי של Get-ChildItem, ו-md הוא כינוי של הפונקציה mkdir.Get-Command -Module ActiveDirectory מציג רק את הפקודות של מודול האקטיב דירקטורי.Get-Help -Full מציג את כל ההסברים על כל פרמטר, ו--Examples מציג רק את הדוגמאות.Get-Module -ListAvailable מציג את המודולים הזמינים במחשב.$env:PSModulePath מציין. תיקיית המשתמש משייכת את המודול רק לו, ותיקיית התוכניות מאפשרת את השימוש לכל המשתמשים.New-PSSession פותח סשן למחשב שבו המודול מותקן, ו-Import-PSSession מייבא את הפקודות מהסשן למחשב המקומי. לפני כן מגדירים את Execution Policy ל-Bypass, כפי שנעשה בהרצאה. אם למודול יש תלות במודול אחר, הייבוא עלול להיכשל.profile.ps1 בתיקייה $PSHOME רץ בכל הפעלה של PowerShell ומתאים לכל המשתמשים. בהרצאה נכתבו בו ייבוא המודולים, ניקוי המסך והודעת ברוכים הבאים.הטקסט המלא של הדקות הראשונות בהרצאה «PowerShell Modules» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזאת אנחנו נלמד על המודולים איך לייבא מודולים, מה זה מודול, איך זה עובד גם נשתמש בפקודה get command ונראה איך היא עובדת וגם נלמד קצת על הקונסול, איך ככה לקסטם אותו בואו נתחיל ממה שהכי מעניין זה כל הנושא של מודולים ו-get command ואיך זה עובד
אז בואו נפעיל power shell ונתחיל ככה יש לנו שתי פקודות שעוזרות לנו יש לנו פקודה שנקראת get help ו-get command. לדוגמה, אני עושה get help ואני מחפש משהו שקשור ל-Active Directory Computers.
Active Directory, נניח, קומפיוטר. והוא שואל אותי האם לעשות update help מהאינטרנט, האם לעדכן את ה-help מהאינטרנט, אני אומר לו yes, והוא בעצם מוריד את ה-help מהאינטרנט.
עכשיו, מה חשוב להבין לגבי help, לגבי קבצי עזרה? מה שחשוב להבין זה ש-Get Help משתמש בקבצי עזרה שנכתבו במיוחד על ידי מתכנתים כדי להסביר לנו חומר.
יש שם חומר תיאורטי גם, לדוגמה כל מיני about והסברים כלליים על אבטחה במערכת, אבל הוא לא מנתח את הפקודות עצמם.
זאת אומרת שאם יש פקודה או כובש שאין עליו קבצי עזרה, אז הוא לא יראה לנו. זה ההבדל הגדול בין-Get Command ל-Get Help. אז כל הנושא של העזרה, היתרון שלו שיש שם מידע כללי על המערכת, לדוגמה על חתימות דיגיטליות, על סקריפטים, מידע כללי.
לעומת זאת, GetCommand מנתח לי פקודות תכלס שקיימות במערכת ההפעלה. אז תראו, עשיתי GetHelp ואני רואה פה שיש לנו פה עזרה על ה...
לדוגמה, GetActiveDirectoryComputers, אוקיי? או NewActiveDirectoryComputer. מה אני רואה? שזה שייך לקטגוריה CMD Let ומתוך מודול Active Directory.
יפה מאוד. Get Help הוא גם לא רואה כל מיני פונקציות, יש דברים שהוא לא יודע להראות לנו. לעומת זאת, Get Command, ככה, מה היתרון של Get Help? בואו נתחיל מההתחלה.
היתרון שלו שהוא יודע את כל הקטע של ה-About לעשות. תראו כמה יש לנו אבאוטים. אבאוטים זה מידע כללי על איזשהו נושא. לדוגמה, Execution Policy, איזה סקריפטים מותר להעריץ.
אז יש פה, אני אישית קראתי את זה כשסקריפטים לא עבדו לי בתחילת דרכי, עד שהבנתי איפה הבעיה. אז about הזה זה מידע כללי שמספר לי סיפורים ולא רק איזשהם פקודות ספציפיות.
אז אני יכול לעשות, לדוגמה, get help about execution policy, get help. אני לוחץ סתם, אני לא כותב עד הסוף, about execution policy. והנה הוא אומר לי פה את כל הסיפורים, איך עובד הנושא של execution policy.
אנחנו עוד מעט נדבר, זה אומר, האם מותר להריץ קבצים שהם לא חתומים או שלדוגמה אפשר להריץ פקודות קבצים סקריפטים שלא חתומים דיגיטלית אבל רק מקומית ולא מרחוק מרחוק הם חייבים להיות חתומים דיגיטלית כל הנושא הזה של execution policy כל הסיפורים וכל ההסברים נמצאים פה אז היתרון הכי גדול של get help זה כל הדפי about שהעזרה מאוד
יפה היתרון של get command שהוא מנתח את הפקודות תכלס אז אז get help אתם רואים ככה ו-get command אם אני אעשה אותו דבר רק במקום help אני ארשום command זה נראה כאילו הוא נותן אותו דבר אבל get command גם יודע לתת לי כל מיני פונקציות והוא יודע לבדוק בעוד מקומות ש-get help לא
יודע כרגע בגלל שזה command let שזה פקודות רגילות אז זה די אותו דבר טוב בואו נתחיל רצינו לדבר על ה-session טוב בואו אני אראה לכם עוד כמה דברים לפני שאנחנו נעבור לסשינים, כי סשינים זה נורא מעניין, אבל עוד דקה נעבור לזה.
ומודולים, נייבא מודול לבד. גט קומנד מביא את הפקודות מתוך מודול, אוקיי? זאת אומרת, אני יכול לעשות כזה דבר. גט קומנד, לדוגמה, כל מה שקשור לקומפיוטר, נניח כל מה שקשור לקומפיוטרס, אבל אני רוצה את זה מתוך מודול, ועוד מעט אנחנו נייבא מודול בעצמנו, Active Directory.
זאת אומרת, אל תראה לי קומפיוטר בכל מה שקיים. בואו תראו. לבד הוא מראה לי את זה מהמון המון מקומות. אני לא רוצה את כל המקומות, שימו לב, גם גט קומנד יודע למצוא לי אפליקציות קבצי אקסי שאפשר להריץ.
לא רק פקודות, גט קומנד זה כל מה שאפשר להריץ בסביבה כרגע של פאורשייל. אבל אני רוצה רק מתוך מודול לסנן אותו ולהגיד לו תראה לי רק מתוך אקטיב דירקטורי מודול.
והנה הוא מראה לי את זה רק מתוך המודול של אקטיב דירקטורי. מה יש לנו עוד? אנחנו יכולים לעשות, לדוגמה, מינוס וורב. וורב זה החלק הראשון של הפקודה.
למה הוא לא נותן לי פה? צריך אולי את זה פה לעשות. מינוס וורב, הוא בא לתת לי את זה. מינוס וורב, גט.
ואז הוא מראה לי רק מילת קומפיוטר ורק איפה שיש פעולה של גט. יש פה עוד כל מיני פרמטרים שאפשר להכניס. תכלס, מה שחשוב זה גט קומפיוטר ותרשמו מה שאתם רוצים ואיזה מודול שאתם רוצים.
בואו נייבא מודול משלנו. למה צריך קודם כל לייבא מודול? למה צריך את זה כשאנחנו מתקינים ה-S אז? לדוגמה, מתווספות לנו פקודות כמו לנהל אתר אינטרנט דרך פאורשייל.
כשאנחנו מתקינים דברים מתווספים, יש לנו דברים. אבל כרגע חסר לי, מה שחסר לי כרגע זה כל מה שקשור ל-SSH. לדוגמה, גט קומנד, אני רוצה להתחבר ללינוקס ולהריץ פקודות של ssh מפה, להתחבר מתוך פאורשל לssh ולעשות invoke לפקודות ולהיכנס לסשנים של ssh מתוך פאורשל ואני רואה שאין לנו ssh.
כן, אין לנו, יש לנו nfs, אנחנו יכולים להתחבר לשיתופים, nfs זה שיתוף של לינוקס אבל אין לנו ממש להיכנס לתוך סשן של ssh.
אתם רואים, יש לנו רק שיתופים של לינוקס, אנחנו לא יכולים לעשות ssh, זה כמו פאורשל בתוך לינוקס. אז אנחנו הולכים לאינטרנט ומחפשים מודול שעושה את העבודה הזאת.
האמת שאני כבר מצאתי את המודול הזה כדי לא לעכב אותנו. אני רואה שהוא לא נותן לי פה לעבוד בשקט. בואו נסגור אותו שנייה אחת, הוא ישגע אותי פה.
בואו נסגור שנייה ונחסום את ההבטחה המוגברת הזאת. באמת הגיע הזמן שהאינטרנט אקספלור הזה כבר ימות. אוקיי, אז אנחנו פה ב-ssh from powershell using ssh מצאתי את זה בגוגל תוך שנייה new ssh session invoke ssh commands ואנחנו יכולים לעשות פה downloads ולהוריד את המודול ל-dotnet 4 שזה powershell
3, 4 וכמובן 5 תומך גם לאחור וזה ל-powershell 2 בואו נוריד את זה שימו לב מה זה מודול מודול זה כמה קבצים שכל מה שצריך לעשות זה קופי פייסט לקבצים האלו.
זה הכל. בואו נראה. לאן לעשות להם קופי פייסט אתם שואלים וזאת שאלה יפה ותכף אני מראה לכם איך אני יודע איפה לעשות קופי פייסט.
אם אני עושה פה גט מודול, אם אני אעשה גט מודול אני רואה איזה מודולים יש לי טעונים בזיכרון כרגע זה מה שטעון לי list available זה כל מה שזמין גט מודול זה מה שכרגע טעון לי בזיכרון איזה במה השתמשתי ומטעין מודולים לפי הצורך.
הספר הוא של שלוש, הוא יודע להטעין מודולים לפי הצורך, לא צריך לעשות להם אימפורט. List Available, הוא מראה לי את כל המודולים הקיימים, אוקיי, את כל המודולים הקיימים, ושימו לב איפה הם נמצאים.
אם אנחנו, אוקיי, בואו נתחיל ממשהו פשוט, אפשר להכניס אותם לפה, אבל עוד שנייה אני אראה לכם איפה הנתיב הזה רשום, יש לנו משתנה סביבה שנקרא Environment, כל המשתנה סביבה נמצאים ב-Environment, נקודתיים, ויש לנו פה בתוך ה-Environment, אם אנחנו נסתכל, יש לנו פה, איך זה, איך
כותבים את זה, נקודתיים, ומשתנה סביבה, יש לנו פה משהו שקשור למודולים. אני מדפדף עם תאב, כן? עם כפתור של תאב, הנה, PSModulePath.
PSModulePath, מינוס ספליט, תחלק לי את זה לפי נקודות פסיק, ואז זה עושה לי ספליט, שלא יהיה לי שורה אחת, ואנחנו רואים שיש לנו פה שלושה מקומות שבהם אני יכול לשמור מודולים, והמערכת תדע לזהות.
מה זה אומר לשמור? זה כולה לעשות קופי פייסט. אני יכול לשמור את זה רק ביוזר שלי, ואני יכול לשמור את זה בפרוגרם פיילס ובווינדוס לכולם, אוקיי?
אם אני שומר פה במודולס בתיקי הזאת, אז זה יעבוד רק ליוזר שלי, שזה במקרה זה אדמיניסטור פה, זה יעבוד לכולם. בואו נעשה לכולם, אחרי זה גם נעשה רק לי, זה לא משנה.
כל מה שנדרש כדי להתקין מודול זה לעשות קופי פייסט, זה הכל. שימו לב, אני עושה רק קופי פייסט. עשיתי קופי פייסט אין מודול זה קובץ dll שלו שזה תכלס הקוד והעתקתי את המודול ברגע שאני מעתיק אותו הוא אוטומטי אני יכול לעשות לו אימפורט מודול לייבא אותו אבל גט קומנד יודע לעשות את זה אוטומט וגט מודול גם יודע לראות אותם באוטומט איפה ssh ssh sessions אתם רואים ssh בואו
תראו מה זה אומר גט קומנד אה עכשיו אני לוחץ F7 ואני חוזר חזרה בהיסטוריה לפקודות קודמות שימו לב F7 מחזיר אותי חזרה לפקודות ישנות ואני יכול לראות פה את כל הפקודות שהרצתי ו-in a get command ssh ושימו לב יש לנו פה חוץ מ-nfs שהיה לנו function חדש שנקרא ssh sessions אתם רואים מודול ssh sessions אתם גם רואים מאיזה מודול זה מגיע זאת אומרת כל מה שעשיתי
עשיתי copy paste שימו לב הלאה אם אני עכשיו יעשה מחיקה משמה מודל נמחוק שמה, אני אעבור פה ואני אעשה פה delete, אל תדאגו זו מכונה וירטואלית, אם אני אעשה עוד פעם את הפקודה, אין יותר, הוא פשוט בודק את הקבצים בתיקייה, זה הכל, הבנתם?
כל מה שהוא עושה הוא בודק קבצים בתיקייה, אז ראינו שאפשר לעשות copy paste למודול, שימו לב גם אפשר להכניס אותו רק לאדמיניסטרטור, עכשיו הנתיב הזה ברירת מחדל הוא לא קיים, צריך ליצור אותו, עכשיו כשיצרתי אותו md, דרך אגב, מה זה MD?
גט קומנד. MD זה אליאס, קיצור ל-MakeDיר, אוקיי? מקדירקטורי. ומה זה MKDיר? זה פונקציה, פאנקשן.
שימו לב, גט הלפ לא היה אומר לכם את זה, כי גט הלפ לדוגמה לא יודע לזהות פונקציות. אז ככה על ידי גט קומנד אני חוקר את הפקודות ולאן הן מובילות ומה מסתתר מאחורי מה. אליאס זה קיצורים.
בשביל מה אני צריך אליאס? אני צריך אליאס בשביל שיהיה לי נוח לעבוד. לדוגמה, אני מכיר פקודת דיר, אז אני עושה אליאס לדיר ואני רואה שזה Get Child Item, אוקיי?
אני אוהב את ה-Get Command, דיר, ואז הוא כותב לכם אותו דבר. Get Command מנתח את הפקודה שקוראים לה דיר ואומר שהיא בכלל אליאס, אוקיי?
אם אני אעשה Get Command על פקודה שנקראת Get Child Item, אני אקבל שזה Command Let. Command Let זה בעצם כבר תוכנה ב-PowerShield, אוקיי? ומאיפה היא מגיעה? מאיזה מודול זה מגיע?
זה מודול שמותקן יחד עם PowerShield. טוב יפה אז מה רצינו רצינו לראות לגבי ssh מחקנו אותו שמה כרגע הוא לא נמצא בואו ניכנס לתיקייה של היוזר שלי שימו לב זה בתיקייה של היוזר שלי נעשה לו copy paste עשיתי לו