חלק 1
הקדמה :
אני גאה להציג לכם את החלק הראשון בסדרת המדריכים, אודות השימוש והמעבר ל Power Shell.
החל מהבסיס ועד ש-ימאס לי לכתוב, שיסביר לכם מה זה בעצם Power Shell ואיך עובדים איתו והכי חשוב, איך מגלים בו פקודות? כיצד להתחיל לעבוד עם הסביבה? כיצד לעבור, איך לעשות את המעבר הלא פשוט הזה לפשוט מאוד משורת הפקודה הרגילה שאנחנו מכירים בתור מנהלי רשת\אנשי סיסטם ו\או טכנאי מחשבים הידוע בכינויה
(Command Prompted (CMD לעבודה עם שורת פקודה הרבה יותר חזקה ויעילה שמאפשרת לנהל כמעט כל אספקט במערכת ההפעלה שלנו באם מקומית, או מרוחקת, כן כמו ששמעתם גברותי ורבותי, ניתן להתחבר למחשבים מרחוק, או יותר טוב, למה להתחבר למחשב מרחוק כשאפשר פשוט להריץ פקודה על מחשב מרוחק בלי לפתוח Session שיהווה סיכון מבחינת אבטחת המידע.
אני לא הולך להסביר לכם למה Power Shell יותר טוב או פחות טוב כי אם החלטתם להתמקצע בשפה הזאת, כנראה שאתם יודעים למה.
אני יכול להגיד, שברגע שמבינים איך לגשת לשפה הזאת (כן זאת גם שפת תכנות שמאפשרת לפתח תוכנות כאלה ואחרות), הדברים הופכים להיות קלים למדי.
למה אני כותב את המדריך הזה?
אחת הסיבות שהחלטתי לכתוב את המדריך הזה, היא כי לא מצאתי אפילו מדריך שלם אחד, שמסביר איך עובדים עם הדבר הזה שנקרא "Power Shell" החל מהבסיס, לרוב תמצאו בעברית חצאי מידע, או הסבר על "מה זה?", ורוב הסיכויים שלא תלמדו כלום, אני לא מדבר על YouTube, שם כמעט בכלל לא קיים שום מידע על עבודה עם Power Shell, פרט לכמה מדריכים שרובם מפרסמים מכללה וכמובן שגם שם זה רק חלק מהמידע.
לזכות אותה מכללה יאמר, שאולי תלמדו טריק או שתיים, אבל לא משהו שאפשר לעבוד איתו ביום יום או אפילו להתחיל ללמוד את השפה, זאת גם הסיבה שאני כותב את כל המדריכים שלי ומצלם את כל ההדרכות שלי אך ורק בעברית מכיוון שפשוט לאנשי המחשבים הישראלים מאוד קשה למצוא חומר בעברית, זה נכון שאנחנו אמורים לדעת אנגלית ולרוב אנחנו יודעים את השפה, אך יחד עם זאת אני מתאר לעצמי שיש כאלה שמתקשים באנגלית, מה שיגרום להם להכנס לבעיה מאוד גדולה מכיוון שמכשול השפה עלול לגרום להם לפרוש מאוד מהר מכיוון שהם פשוט לא יבינו את החומר בצורה טובה.
סתם לצורך בדיקה, תריצו בגוגל שאילתא כזאת "מדריך ל Power Shell", תאמינו לי קוראים יקרים, שרוב הסיכויים בעצמכם תהיו בהלם, עד כמה אין מידע, לעומת זאת אם תריצו שאילת באנגלית עם הצירוף " Power Shell guide", תתפלאו כמה מדריכים תקבלו החל מהבסיס של הבסיס, עד להדרכות הרבה יותר מקצועיות, שלא לדבר על כמות ההדרכות ב YouTube.
למי מיועד ה-Power Shell? – לכולם, אתם יכולים לתכנת עליו, אתם יכולים לנהל איתו שרתים, מחשבים, הוא מעולה בתור שפת סקריפט, תחליף מעולה ל CMD אני יכול להעיד על עצמי בתור מי שרגיל ל-CMD אני גם עכשיו פותח אותו כמעט על אוט' ברגע שאני צריך לבדוק תקשורת או כל דבר אחר, אבל אחרי שאתה עובד עם Power Shell, אני יכול להגיד בכיף שאני ממש לא רוצה לחזור ל-CMD
כעקרון ה-Power Shell הוא שילוב של כמה שפות שהן #CMD + .Net + C ולכן גם הפקודות הרגילות של ה-CMD שאנחנו מכירים עובדות שם גם.
אפשר לכתוב איתו סקריפטים לעבודה יומיומית ואפשר ממש לפתח תוכנות, ככה שהוא גם שפת סקריפט וגם שפת תכנות.
למי מיועד המדריך?
אז ככה ראשית כל אם יש לכם ניסיון בניהול רשתות או שאתם רק בתחילת הדרך, המדריך יהיה לכם יותר ברור, במידה ואתם טכנאי מחשבים או פחות ממנהלי רשת\אנשי סיסטם, אני מאמין שיהיו לכם מושגים שקצת יקשו עליכם מכיוון שאני הולך לדבר על ניהול קבצים רגיל (בהמשך), מכונות וירטואליות על פלטפורמט Active Directory ,Hyper-v ועוד.
במידה ויש לכם משהו שהוא לא ברור אתם כמובן יכולים לשאול אותי במייל (יפורט בסוף המדריך) אבל זכרו אני לא אתן לכם את כל הפתרון, אני יכול לתת פתרון חלקי או להפנות אתכם לגוגל כמו כל איש מחשבים, אתם מחיובים לדעת לבצע חיפושים בגוגל, כי הוא החבר הכי טוב שלכם, יותר טוב מחבר טלפוני, יותר טוב ממרצה או מדריך.
חשוב לי להגיד שהחומר לא יתווסף על בסיס קבוע כל - X ימים, כתיבת חומר מסוג זה, זה משהו שלוקח זמן ולכן לא תמיד יש אותו, אבל אני אשתדל להביא כל פעם קצת, אישית בתור אדם שלא בא מעולם הפיתוח, אני אתן דגש על ניהול המערכות בעזרת ה Power Shell ונושא כתיבת הסקריפטים, ופחות על פיתוח תוכנות כאלה ואחרות, אני יכול להגיד על עצמי שאני לא אחד שכתב כמות מטורפת של סקריפטים בחיים שלי, אבל לדעת משהו כמו Power Shell הוא מאוד חשוב וכדי מאחר וכפי הנראה שמיקרוסופט צועדת לכיוון שורת הפקודה לאור העובדה שהרגע יצא שרת בשם
Microsoft Nano Server 2016, ואין לו שום ממשק בכלל פרט להגדרות בסיסיות של כתובת IP וחוקים בפיירוול, כל השאר אך ורק דרך Power Shell Remoting.
Microsoft Nano Server 2016, ואין לו שום ממשק בכלל פרט להגדרות בסיסיות של כתובת IP וחוקים בפיירוול, כל השאר אך ורק דרך Power Shell Remoting.
בהצלחה,
מאוד מקווה שתהנו מהקריאה ותצליחו להפיק את המירב.
חלק 1: מאיפה מתחילים? ואיך מסתדרים?
שאלת "מליון הדולר" מאיפה מתחילים?
גם אני שאלתי את עצמי את השאלה הזאת ברגע שהתחלתי ללמוד Power Shell "איך לעזעזל אני מתחיל לעבוד עם הדבר הזה? מה בעצם הדבר הראשון שאני צריך לדעת?"
אז ככה, הינה כמה פרטים שיעזרו לכם להתחיל לצעוד את הצעדים הראשונים שלכם בתור מי שרוצה לדעת Power Shell:
1) התחילו לצפות במדריך הכי טוב ב-Microsoft Virtual Academy : הינה הלינק לסרטון שמסביר את כל הבסיס ומלמד את כל הדברים הכי חשובים (אני למדתי ממנו גם כן, צפיתי בכולו):
MVA – את ההדרכה מעבירים Jason Helmick ו Jeffrey Snover הממציא של Power Shell.
2) הירשמו לפורום PowerShell.org – הפורום מנוהל על ידי כמה גורו ידועים בתחום
ה-Power Shell האחד בשם Don Jones והשני הוא Jason Helmick, ניתן להוריד ספרים בחינם אודות ה Power Shell.
3) כל מה שאתם שומעים בהדרכות, תרשמו ותתרגלו על ידי ביצוע סקריפטים פשוטים, או סתם הרצת פקודות בשביל נסיון אחרת יהיה מאוד קשה לזכור את הפקודות ולהבין איך בעצם עובד ה-Power Shell.
4) תצטרכו להפעיל את חוש ה"הסקרנות" שלכם וחוש ה"הרפתקנות" שלכם לצורך גילוי פקודות חדשות.
5) מדריך מצויין ללימוד (באנגלית) Learn PowerShell Scripting in a Month of Lunches - Power Shell
7) ספרי PDF באנגלית להורדה מה- Google Drive הפרטי שלי: Power Shell.
5) מדריך מצויין ללימוד (באנגלית) Learn PowerShell Scripting in a Month of Lunches - Power Shell
7) ספרי PDF באנגלית להורדה מה- Google Drive הפרטי שלי: Power Shell.
"תחשוב מה אתה רוצה, תקליד את זה, תקבל את זה"
המשפט הזה, הוא בעצם המפתח לעבודה עם Power Shell הוא בנוי בצורה כזאת שבעצם יקל עלינו מנהלי הרשתות או כל איש IT אחר, או בכלל אנשים שלא באים מעולם הפיתוח להשיג את מה שאנחנו רוצים ולקבל את התוצאה בצורה הטובה ביותר היעילה ביותר והכי חשוב? הקלה ביותר.
להבדיל משפות תכנות\סקריפט אחרות, אשר בנויות מכל מיני צורות שלא תמיד ברורות לנו, Power Shell בנוי בצורה כזאת שברגע שתחשבו על פקודה בצורה הגיונית למוח האנושי, רוב הסיכויים שהיא גם כתובה ככה.
לדוגמא אם אני רוצה לעשות הפעלה מחדש למחשב שלי אני פשוט כותב "Restart-computer" בלי שם מחשב, בלי קילומטר של פקודות, בלי שום דבר מסובך, אפילו בשורת הפקודה כיבוי המחשב נראה ככה: shutdown –r
ואם אני רוצה שהכיבוי יתבצע עכשיו? אני צריך להוסיף גם t- וגם לכתוב 00, יותר מדי פרמטרים אם אתם שואלים אותי, לביצוע של הפעלה מחדש למחשב ("איך "shutdown -r" יכול להיקשר להפעלה מחדש?) ואם אני רוצה לכבות מחשב מרוחק? תחשבו רגע, מישהו ממכם זוכר איך בשורת הפקודה מכבים מחשב מרוחק? אני בספק, או לפחות אני מאמין שיקח לכם כמה רגעים להזכר, איך עושים את זה ב- Power Shell?
שימו לב גבירותי ורבותי: restart-computer pc01 וזה בשביל לכבות מחשב מרוחק, ואם אני רוצה לכבות את שלי? אני פשוט מוריד את השם מחשב בסוף זהו.. המחשב יתחיל תהליך ואם אתם בכלל רוצים לעשות את זה "בכוח" תוסיפו
"force-" תאמינו לי עד שתספיקו לאיית "Power shell" המחשב כבר יתחיל לעשות הפעלה מחדש.
עוד משהו נחמד? יש לכם במחשב או בשרת מסויים מכונות וירטואליות שרצות על Hyper-v תריצו ב Power Shell
את Get-vm, תקבלו ישר את רשימת המכונות הוירטואליות שרצות אצלכם במחשב או בשרת, הינה הפלט מהמחשב שלי:
כרגע לפי התמונה הנ"ל רואים שהמכונה mdt-2013 במצב "Paused", מבחינת ההגיון איך תראה הפקודה במוח שלנו אם אנחנו רוצים להפעיל את המכונה הוירטואלית? בצורה מאוד פשוטה "תעשה "המשך" למכונה mdt-2013" בדיוק ככה בנויה הפקודה עצמה: resume-vm mdt-2013
(הרצתי לאחר מכן את get-vm שוב פעם בשביל שתשימו לב לסטטוס של המכונה)
איך בנויות הפקודות של Power Shell?
Power Shell בנוי בצורה של verb-noun (שם עצם-פועל) לדוגמא אם אני רוצה לקבל עזרה (וכאן על הדרך תלמדו את הפקודה הכי חשובה ב Power Shell) אני פשוט אכתוב Get-Help ואקבל עזרה מפורטת מאוד, אודות השימוש בפקודה "get-help" כאן, אין לנו אפשרות להשתמש ב "man" כמו ב Linux או ב "?/ help" כמו שאנחנו רגילים ב-CMD.
במידה ואני רוצה לקבל רשימה של כל ה"פעלים" שקיימים אני פשוט יכול להריץ את הפקודה הכי הגיונית שעולה לי לראש "הראה לי את הפעלים" או בשפת ה- Get-Verb : Power Shell
(רוב הסביבה לא מתייחסת ל"אותיות גדולות" או "קטנות", ככה שאת הפקודות אתם יכולים לרשום באותיות "קטנות")
(רוב הסביבה לא מתייחסת ל"אותיות גדולות" או "קטנות", ככה שאת הפקודות אתם יכולים לרשום באותיות "קטנות")
ככה תוכלו לגלות אילו פעלים יש ל Power Shell להציע, לאחר שתבחרו איזשהו פועל, פשוט כיתבו את הפועל ולחצו על מקש ה"-" ואז Power Shell יראה לכם את האפשרויות שיש בהקשר של אותו הפועל.
אני מאמין שלרוב, אף אחד ממכם לא לוחץ F1 בשביל להשתמש באמת ב"עזרה" שיש בתוכנות או בכל מוצר אחר בבית (מוצרים של Ikea לא נחשבים..).
אם אני רוצה לקבל עזרה אודות הפקודה "Get-Help", אני ארשום את הפקודה שתגיד למערכת שאני מחפש קובץ עזרה בעזרת "Get-Help" ולאחר מכן את הפקודה עצמה, לדוגמא כרגע אני רוצה לקבל עזרה אודות השימוש ב "Get-Help"
אז מבנה הפקודה יראה ככה: Get-Help Get-Help.לאחר מכן אני יכול להוסיף עוד כל מיני פרמטרים שיגידו ל-Power Shell שאני רוצה לקבל את ה"עזרה" בצורה מפורטת, או אולי אני רוצה לקבל רק את מבנה הפקודה (Syntax), או אולי בכלל אני רוצה לקרוא את ה"עזרה" בחלון חיצוני בשביל שאוכל להעתיק ממנו מידע לחלון העבודה שלי? או שבעצם אולי נוח לי לראות את זה ישירות באתר האינטרנט של Microsoft?
לכל פקודה יש פרמטרים, כמו "force-" כמו "computername-" ועוד כל מיני פרמטרים כאלה ואחרים שעליהם נלמד בהמשך.
אז לפי הפורמט של הפקודה שלמדנו, אם אני רוצה לקבל מידע על הפקודה להצגת ה Services שרצים לי כרגע ברקע, אני אריץ Get-Help Get-Service ולאחר מכן אוסיף פרמטר מתאים (את הפרמטרים נלמד בפסקה הבאה אל תדאגו, אני לא אשאיר אתכם הרבה במתח).
הכי חשוב אל תפחדו להתנסות בפקודות תוך כדי הקריאה – זה רק יעזור לכם להכנס לעולם ה Power Shell מהר יותר ובצורה קלה יותר.
יאמר לזכות החבר'ה של Jefrry Snover שהם השקיעו במערך ה"עזרה" ב Power Shell ברמה מאוד מאוד גבוהה, ולכן ניתן למצוא שם כמעט את הכל במידה ופשוט יודעים לחפש.
"2" מילים על הממשקים וסביבת העבודה.
ממשקי ה Power Shell - ישנם שני ממשקי Power Shell:
1) האחד הוא שורת פקודה רגילה - בצבע כחול, דיי מזכיר את ה CMD שאנחנו רגילים אליו.
2) השניה-Power Shell ISE - (אני מודה שלא ממש היה אכפת לי מה אומרת המילה ISE, אז אם ממש בא לכם, אתם מוזמנים לגלות לבד ) זאת היא סביבת הפיתוח של ה-Power shell ניתן לרשום שם את הקוד ממש כמו בכל סביבת פיתוח אחרת, כמובן כמו ב-Linux ה-TAB במקלדת משלים לכם את פקודות גם בסביבת שורת הפקודה וגם בסביבת הפיתוח אך בגירסת ה ISE הממשק גם יציע לכם הצאות לפקודות (על ידי תפריט צבעוני ויפה בשם Intellisense) ויעזור לכם ללמוד על הפקודות ולזכור אותן בצורה קלה יותר, שלא לדבר על הצגת דוגמאות On The Fly.
1) האחד הוא שורת פקודה רגילה - בצבע כחול, דיי מזכיר את ה CMD שאנחנו רגילים אליו.
2) השניה-Power Shell ISE - (אני מודה שלא ממש היה אכפת לי מה אומרת המילה ISE, אז אם ממש בא לכם, אתם מוזמנים לגלות לבד ) זאת היא סביבת הפיתוח של ה-Power shell ניתן לרשום שם את הקוד ממש כמו בכל סביבת פיתוח אחרת, כמובן כמו ב-Linux ה-TAB במקלדת משלים לכם את פקודות גם בסביבת שורת הפקודה וגם בסביבת הפיתוח אך בגירסת ה ISE הממשק גם יציע לכם הצאות לפקודות (על ידי תפריט צבעוני ויפה בשם Intellisense) ויעזור לכם ללמוד על הפקודות ולזכור אותן בצורה קלה יותר, שלא לדבר על הצגת דוגמאות On The Fly.
השתדלו להפעיל את ה Power Shell במצב של Administrator, ככה תוכלו לבצע את כל הפעולות שלכם ללא שגיאות מוזרות מצד המערכת.
הדרך לקבל עזרה בצורה מפורטת
אז נמשיך עם הפקודה Get-Help,
התחילו תוך כדי קריאת המדריך לעדכן את ה"עזרה" של ה Power Shell, נשמע לכם מוזר? תבדקו את זה,
פתחו Power Shell ISE במצב Administrator והקישו (שימו לב לפשטות הפקודות וכמה ההגיון של הפקודות עושה את העבודה, ממש לפי המודל של "תחשוב מה אתה רוצה, תקליד את זה, תקבל את זה"): Update-help -force
התחילו תוך כדי קריאת המדריך לעדכן את ה"עזרה" של ה Power Shell, נשמע לכם מוזר? תבדקו את זה,
פתחו Power Shell ISE במצב Administrator והקישו (שימו לב לפשטות הפקודות וכמה ההגיון של הפקודות עושה את העבודה, ממש לפי המודל של "תחשוב מה אתה רוצה, תקליד את זה, תקבל את זה"): Update-help -force
ותראו איך Power Shell מתחיל לעדכן את קבצי העזרה שלו אצלכם במחשב תוך שניות ישירות מהאינטרנט.
את ה"עזרה" אפשר לקבל בכמה צורות:
• עזרה מפורטת בעזרת: Get-Help Get-Help -full
• אפשר לראות רק את מבנה הפקודה: Get-Help Get-Help –syntax
• אפשר לראות את הפקודה בצורה מפורטת Get-Help Get-Help –Detaile
• אולי נראה רק דוגמאות של הפקודה?: get-help Get-Help -Examples.
• אפשר לראות את העזרה בחלון חיצוני בעזרת: get-help Get-Help –showwindow
• אפשר לראות את ה"עזרה" ישר באתר של מיקרוסופט: get-help Get-Help –online
• רוצים עוד "עזרה"? בבקשה רישמו פקודה כזאת: *_Get-Help about
אפשר לשלב בפקודה גם את הסימן "*" בכמה וכמה צורות: לפני פקודה, אחרי פקודה, ומסביב לפקודה עצמה לפי הדוגמאות הבאות:
o הראה לי את כל קבצי העזרה שמסתיימות במילה "Get-help *Service :"service
o הראה לי את כל קבצי העזרה שמתחילות במילה "Get-Help Service* :"Service
o הראה לי את כל קבצי העזרה שיש להן את המילה "Get-Help *Service* :"Service
o הינה עוד צירוף מעניין – אותו אתם כבר תצטרכו לברר לבד: *Get-help g*Service
o תנו לחוש ה"סקרנות" שלכם "לחקור" את התוצאות.
o) במידה ותרצו לקבל את כל הפקודות שיש לנו לעבוד איתן, ניתן להריץ את Get-Command.
o) במידה ותרצו לצמצם את האפשרויות הריצו בשילוב עם משהו:
Get-Command -Noun blahblah, Get-Command -Verb blahblah.
בסופו של דבר, לא תצטרכו לזכור כל כך הרבה פקודות, אלה כיצד לבצע חיפוש נכון בעזרת כמה פקודות וכיצד למצוא פקודות נוספות שיעזרו לכם להתנהל ב Power Shell.
משימה ראשונה:
להלן המשימה הראשונה שלכם ב-Power Shell:
להלן המשימה הראשונה שלכם ב-Power Shell:
• נסו לקבל "עזרה" אודות כמה פקודות פשוטות ונסו להשתמש בהן:
Get-Service o
Get-Process o
Get-Chileditem o (שזה במקרה המקביל של "ls" וגם ה-"Dir")
• לאחר שתבינו מה כל אחת מהפקודות האלה עושות, נסו להשתמש בהן, וגלו כמה פשוט זה ללמוד לעבוד עם
ה-Power Shell.
ה-Power Shell.
עוד קצת ידע כללי - אחרי שהבנו איך בנויות הפקודות נלמד קצת מושגים:
(אל תדלגו על החלק הזה, כמה שהוא ישמע לכם "משעמם" האמינו לי, שבלי החלק הזה במדריך לא תוכלו לעבוד בצורה נוכה ב Power Shell מכיוון שגם ה Power shell וגם האינטרנט משתמש במושגים האלה.)
Cmdlets
ה-Cmdlets או בשמן המלא "Command Lets" הן בעצם השם של הפקודות וכל מה שהוא לא אובייקט או כל דבר אחר.
הפקודה עצמה היא לדוגמא "Get-Help", "Get-Process" וכד', כל הפקודות הללו הן Cmdlet לחדי העין מביניכם תשימו לב שפשוט לקחו את ה"CMD" והוסיפו לו עוד מילה אחת.
הפקודה עצמה היא לדוגמא "Get-Help", "Get-Process" וכד', כל הפקודות הללו הן Cmdlet לחדי העין מביניכם תשימו לב שפשוט לקחו את ה"CMD" והוסיפו לו עוד מילה אחת.
Objects
אז מה זה Object? בקצרה? זה כל דבר שהוא לא פקודה, זאת אומרת אם אני מריץ את הפקודה Get-Process, כל Process שיוצג לי בטבלה נקרא Object לדוגמא אם אני אבקש להציג רק את ה Process של הדפדפן Chrome אני ארשום (ושוב שימו לב למבנה הפשוט של הפקודה): Get-process chrome
(נראה ממש פשוט מדי לא? אני מאמין שהתשובה הנכונה ביותר לשאלה הזאת היא יותר נכון להגיד "הגיוני יותר")
(נראה ממש פשוט מדי לא? אני מאמין שהתשובה הנכונה ביותר לשאלה הזאת היא יותר נכון להגיד "הגיוני יותר")
Get-Process chrome
והינה הפלט בשביל שיוצג:
והינה הפלט בשביל שיוצג:
אז בעצם כל מה שיוצג מתחת ל"Property" שנקרא "ProcessName" הוא Object, ובמקרה הזה, מדובר ב Process שהוא Chrome.
Property
ברגע שאני מבצע מיון של Process אני אקבל טבלה רגילה ובה שמות של עמודות, זאת אומרת שלכל אובייקט יש מאפיין, או בשפה פשוטה כל אובייקט נמצא תחת מאפיין מסויים, ואותו "מאפיין" מופיע בראש
הטבלה ונקרא "Propery"
כעקרון, על פי ההסבר של Jeffry Snover מה זה "Property" הוא כזה:
לכל אובייקט יש מאפיינים, לדוגמא אם ניקח מכונית,
מה הם המאפיינים של המכונית הם:
• צבע אדום.
• גדולה.
• נוחה לנסיעה.
אז במקום "מאפיינים" החליטו לקרוא לזה "Property"
עמודות (תכונות) בטבלה:
לצורך ההבנה – הכותרת של העמודה CPU נקראת Property, אם אתם שואלים את עצמכם מה עושים אם אתם רוצים לראות עמודות שונות, אז יש אפשרות כזאת, עליה נלמד בהמשך המדריך.
שיטות (Methods)
אני אשתמש בדוגמא של ה"מכונית" מהפסקה הקודמת להסבר יותר טוב אודות ה Methods:
אחרי שהבנו, מה הם המאפיינים של מכונית, עכשיו נבין מה אפשר לעשות עם מכונית?:
• אפשר לנסוע.
• לשים דברים בתא מטען.
• אפשר לעשות תאונות (לא מומלץ במיוחד).
הפעולה עצמה (לדוגמא נסיעה) נקראת Method
זאת אומרת שאם אני רוצה להפעיל Process מסויים, אני פשוט אריץ עליו Method, לדוגמא Start או Stop.
• לשים דברים בתא מטען.
• אפשר לעשות תאונות (לא מומלץ במיוחד).
הפעולה עצמה (לדוגמא נסיעה) נקראת Method
זאת אומרת שאם אני רוצה להפעיל Process מסויים, אני פשוט אריץ עליו Method, לדוגמא Start או Stop.
ה Process של הדפדפן כרום, אני אריץ את הפקודה הבאה :
get-process chrome |get-member -membertype methods
אם אני מפרק את הפקודה ומתרגם אותה לעברית (התחלה מצד שמאל) אז זה יראה בערך ככה:
"שיטות" "סוג Member-" "תשיג לי את כל ה Members" | "כרום" "תשיג לי את ה Processes"
מה שיגרום לי להציג את כל ה -Methods (מתגים) שאני יכול להשתמש בהם לשימוש עם ה-Process של גוגל כרום, תשימו לב שיש "kill" שזה מן הסתם לסגור את התהליך של הדפדפן
Get-Process chrome | Get-Member -MemberType Methods
איך משתמשים ב-Method? שוב תשימו לב כמה הפקודה בנויה בצורה מאוד פשוטה, אחרי שהבנתי מה אני רוצה לעשות, והבנתי איזה Process אני רוצה לדוגמא לסגור, אני ארשום את הפקודה ואת השם של ה-Process ואהפוך אותם לאובייקט אחד על ידי הוספת סוגריים מעוגלים (כן זה משנה איזה סוגריים) בצורה כזאת: (Get-Process chrome)
ועכשיו אחרי שה-Power Shell הבין, שבעצם אני מתייחס לאובייקט כולו, אני יכול להתחיל לעשות עליו כל מיני מוניפולציות כמו לדוגמא Start או Stop) Kill) בצורת הוספת "." על בסוף הסוגריים והסופת הפעולה שאני רוצה לעשות: PS C:\WINDOWS\system32>>(Get-Process chrome).Kill
(תזהרו לעשות את זה תוך כדי קריאת המאמר הזה מכיוון שהפקודה תסגור לכם את הדפדפן Chrome במידה ואתם משתמשים בו !)
Alias
כן, ב Power Shell יש לנו Alias (כינוי) שבעצם אפשר להשתמש בו, לדוגמא אם אני רוצה לעשות העתקה של קובץ אז אני יכול להשתמש ב - "Cmdlet" שהוא "Copy-Item" אבל אני יכול להשתמש גם ב"cp" (השתמשתם ב –Linux פעם? אז כן, זה אותו הדבר כמו שם) אם תרצו לראות את כל ה-Aliases תוכלו להריץ את הפקודה Get-Alias (לא משנה אם זה באותיות גדולות או קטנות) ותקבלו רשימה של כל ה Aliases שיש ב Power shell בהתאם ל Module שמותקים אצלכם ב Power Shell (מודולים זאת הפיסקה הבאה :) ).
אם אני רוצה לסנן ולראות את כל פקודות ה-Get, אני יכול להריץ *Get-alias g ואז אקבל את כל הפקודות שמתחילות באות G, שאילו בעצם כל פקודות ה Get שזה בעצם כל ה-CmdLets שיש.
אם אני רוצה לקבל קיצור של איזושהי פקודה אני יכול להריץ Get-Alias -definition Get-Process ואז אקבל בדיוק את המידע שאני צריך, כמו כאן בדוגמא, רציתי לברר מה ה- Alias של get-process אז אני בעצם "שואל" את ה Power Shell והינה הפלט:
get-alias -definition Get-Process
בסופו של יום, הכל עניין של פשוט לדעת כיצד לחפש, בצורה הזאת תקבלו את כל הפקודות שאתם צריכים לצורך תחילת עבודה, אני מבטיח לכם שעם הזמן והתרגול, הדברים יתחילו להיות לכם הרבה יותר קלים.
Modules
מודלים הם בעצם "תוספים" שמאפשרים לכם לעבוד עם Power Shell בהתאם למה שאתם מעוניינים לעשות, כל Module מוסיף רשימה של פקודות ופונקציות כאלה ואחרות, לדוגמא בשביל לנהל את ה- Active Directory דרך Power Shell, נצטרך מודול שנקרא Active Directory Module שיהיה מותקן לכם כחלק מ RSAT או שכמובן יהיה מותקן על שרת ה DC עצמו בשביל לראות אילו מודלים מותקנים לנו ב Power Shell נריץ את הפקודה:
Get-Module –ListAvailable
תיקחו בחשבון שתקבלו רשימה מאוד ארוכה כמובן, מכיוון שישנם הרבה מודולים שמותקנים אצלכם.
לאחר שהרצתי את הפקודה על שרת ה DC שלי להלן הפלט:
Get-Module -List ActiveDirectory
כפי שניתן לראות, מודול ה Active Directory מותקן על שרת ה DC מה שיאפשר לי לנהל אותו משורת הפקודה.
שימו לב - גירסה יותר עדכנית, תביא איתה יותר פקודות
ב Power shell האחרון שהוא בגירסה 5.1 ישנו סט מאוד גדול של פקודות שנוסף מאז הגירסה הראשונה ולכן כדי לעדכן לגירסה האחרונה (בשביל לבדוק את הגירסה המותקנת אצלכם, הריצו את הפקודה: host
להלן הפלט :
כפי שניתן לראות בשורת ה Version גירסת ה Power shell שמותקנת לי במחשב (Windows 10 ver 1709) היא גירסה 5.1, (בהקשר לפקודה host, רוצים לדעת את שם המחשב שלכם? תנחשו מה תצטרכו להריץ? – כשמו כן הוא :hostname.)
בשביל לעדכן את גירסת ה Power Shell עשו חיפוש בגוגל של
“Installing Windows PowerShell | Microsoft Docs”
“Installing Windows PowerShell | Microsoft Docs”
"הצינור" – PipeLine
לא אני לא עושה שום פרסומת לתוכנית בערוץ 10, למי שיצא לעבוד עם Linux מכיר את ה "PipeLine" טוב מאוד, הסימון שלו הוא "|" והוא נמצא בדרך כלל מעל מקש ה-Enter אצלכם, אם תלחצו על Shift ועל המקש הזה תקבלו את ה"PipeLine", בגדול מה שזה מאפשר לעשות הוא לשרשר פקודות, זאת אומרת לקחת פלט של פקודה אחת ולהעביר אותו דרך צינור לפקודה אחרת.
אם אני רוצה לדוגמא לראות אילו עמודות אני יכול לראות כשאני מריץ את Get-Process, אני "אשרשר" אותו דרך "צינור" לפקודת ה Get-Member ואז אוכל לראות את כל הפעולות שאני יכול לעשות עם האובייקטים שיוצגו, כולל עמודות (Property) שאני יכול להציג, ו"Methods" וכמובן גם ה Aliases המתאימים.
הפקודה נראית כך Get-process |Get-member
מאחר והפלט הוא מאוד ארוך, אציג כאן רק חלק
Get-Process | Get-Member
משימה שניה: נסו לחשוב על פקודות שיכולות להציג לכם פלט עם הרבה מידע ורשימות כמו רשימת ה – Process ורשימת ה-Services והעבירו אותם דרך ה-Pipeline לפקודה Format-Table ונוסיף את הפרמטר "autosize-"
לדוגמא, פקודה להצגת עדכוני מערכת, אני ארצה להציג אותם בצורה של טבלה ובשביל לראות את הכל בצורה שמתאימה למסך שלי, אני גם ארצה שה-Power Shell יתאים את זה לתצוגה שלי.
בשביל להציג עדכוני מערכת נשתמש ב-CmdLet שנקרא Get-Hotfix וכפי שנתנו דוגמא במשימה, נשתמש ב CmdLet שנקרא format-table ונגיד לו תתאים לבד את התצוגה בעזרת הפרמטר "autosize-"
מבנה הפקודה: Get-hotfix –computername localhost |format-table –autosize
עד כאן להפעם...
מדריך מצויין!! נשמח לעוד מדריכים מבית היוצר.
השבמחקתודה רבה!!
תודה רבה :)
מחקשמח שיכלתי לעזור
מדריך מעולה, נותן למתחיל את כל הכלים שנדרשים להתחיל לעבוד, ולחפש כל מה שדרוש לו בתוך ה-POWERSHELL עצמו.
השבמחקכדאי להוסיף הפניה לשימוש ב-"PowerShell_ise" לצורך בדיקה של תסריטים.
לקח לי קצת זמן אבל הגבתי בסוף
מחקמאוד מודה על הפידבק :)
מדריך חמוד ומושקע. אך עברו כבר שבועיים מהחלק הראשון.. (-:
השבמחקהיי,
מחקלקח לי זמן אבל בסוף פרסמתי את השני :)
עכשיו עומד לפרסם את השלישי וגם פרסמתי מאמר עם פקודות שימושיות ל PowerShell
תודה רבה מחכים לחלק השני
השבמחקהיי,
מחקפרסמתי את החלק השני :)
וגם עומד לפרסם את השלישי
תודה
השבמחקבכיף :)
מחקשמע אתה תותח!
השבמחקבן אדם מוכשר ורציני.
כל הכבוד, תמשיך ככה ותגיע לגדולות.
בכיף,
מחקשמח שיכלתי לעזור :)
עדכנתי בסוף הדף לינק לחלק השני של המדריך
ראיתי, תודה :)
מחקתודה רבה אהבתי!
השבמחקבכיף :)
מחקוואו וואו וואו מדהים!
השבמחקתודה רבה לך, אני ממש מעריך ובטוח שעוד הרבה אחרים! אתה ענק!
ממש אשמח אם תוכל להכין הסברים על איך עובדים עם POWERSHELL ו-SHAREPOINT או ACTIVE DIRECTORY!
היי,
השבמחקקודם כל תודה רבה :)
לגבי Sharepoint כמה שזה מצחיק, במהלך הקריירה שלי לא יצא לי להתעסק איתו אפילו פעם אחת !!
לגבי אקטיב דיירקטורי - הוצאתי החודש אוסף פקודות ל PowerShell יש שם כמה פקודות לאקטיב דירקטורי :
http://www.leidertech.co.il/2019/08/PowerShell-commands-for-every-day.html
מעבר לזה, העבודה עם אקטיב דירקטורי לא שונה משום דבר אחר פשוט אתה מפעיל PowerShell על ה DC ויש לך את כל הפקודות של עבודה עם משתמשים וכד'
כמו get-aduser, תריץ על ה DC שלך
*get-command -verb get -noun *user
תראה איזו רשימה אתה מקבל
אפשר קישור להורדת פאוור של?
השבמחקצהריים טובים, אני לא יודע למי אני עונה, אבל במידה ואתה לא יודע כיצד לבצע הורדה של דבר כל כך פשוט מהאינטרנט, אני ממליץ לך קודם להרים את הרמה בדברים הבסייסים, ולאחר מכן להתחיל להתעסק עם PowerShell.
השבמחקשלום לב,
השבמחקברצוני להודות לך על כתיבה המפורטת,המדויקת, והמקצועית- אין ספק שברוך השם זכית לכשרון הסברה גדול ואתה זוכה להפיץ אותו לכולם ומעוניין לעזור לאנשים !! תודה רבה רבה ..
אני משתמש הרבה עם powershell בעבודה , וזה המדריך הראשון המקצועי שאני רוצה בעברית..
בנוסף רציתי לשאול- ואולי זה יועיל לכולם..
מחקמי שמבין את הבלוג עצמו, יש עיניין לשמוע ולראות גם את הסרטון? יש בו ערך מוסף? או שאתה בסרטון די חזור על הדברים שכתבת בבלוג..
תודה מראש
בוקר טוב, הסרטון הוא ערך מוסף, אני אומנם חוזר על הדברים אבל אני גם מדגים את מה שנכתב בבלוג, מעבר לכך, ישנם גם דברים שאני מוסיף על הדרך.
מחקבקיצור, אני ממליץ לראות את ההדרכות :)
לגבי השאלה הראשונה,
מחקתודה רבה על הפידבק המחמם את הלב !
הסיבה שהתחלתי לכתוב את ההדרכות האלה, היא בדיוק מה שאתה אומר, כי אין מדריכים של ה Power Shell בעברית בכלל, ומי שרוצה להתחיל ללמוד חייב לחפש ברשת באנגלית, וזה קצת לא פיר לדעתי.
היי כל הכבוד על הסרטונים תמיד כייף ללמוד דברים חדשים וחיונים תוכל בבקשה להגיד לי אם יש הסמכה נפרדת לPowershell שאפשר לגשת?
השבמחקתודה רבה ותמשיך כך אפילו בנושאים שונים :)
היי,
השבמחקתודה רבה על הפידבק.
לגבי הבדיקה, אתה מוזמן לבצע בדיקה בגוגל - תמיד כיף ללמוד דברים חדשים :)
כל הכבוד על היוזמה.
השבמחקאני קצת יותר טירון בעולם המחשבים, יש לך אולי מדריך כזה לשפת cmd, משהו בסיסי?
היי,
מחקלא לצערי אין לי, אבל ל CMD יש המון מדריכים ברשת
פשוט כייף שיש אנשים כמוך מלך אין דברים כאלה אשמח שתעלה עוד דברים כאלה ועוד שיעורים
השבמחקהיי
מחקתודה רבה על הפדיבק המחמם !!
עד עכשיו יש חמישה חלקים, אתה מוזמן לצפות ולקרוא בהם, בהמשך אני אעלה עוד, פשוט לוקח זמן ליצור כל מדריך כזה ולצלם וכד', ככה שזה לא בא כל כך מהר :)
תודה רבה.
השבמחקאחלה הדרכה.
מזל שגוגל מצא לי אותך.
המון תודה על התגובה !
מחקשמח מאוד לעזור, סליחה שלקח המון זמן לענות !
מוסבר ברור !
השבמחקתודה רבה !!
מאוד משתדל :)
מחקתודה רבה !
וואו איזה מדריך יפה ומוסבר טוב, אני בשנה הראשונה שלי בניהול רשת וזה כיף שיש מדריך מקיף ובעברית ל PowerShell
השבמחקבהצלחה !
מחקשמח שיכלתי לעזור :).