Powershell - שיעור שניתזכורת, שיעור ראשון - https://rotter.name/nor/hard/10486.shtml
נושא מאד מאד מאד חשוב שלא הזכרתי בשיעור הראשון,
כל מה שאתם עושים ב Powershell הוא נדיף ב Default!
זה אומר שאם ביצעתם פעולה כלשהיא, סגרת את ה Session ופתחתם מחדש, הכל מתחיל מאפס!
אנחנו נראה בהמשך איך אפשר לשמור פרופיל שיעלה באופן אוטומטי,
אז בואו נתחיל בשיעור?
בואו נדבר קצת על משתנים,
כל דבר שעושים בPowershell אפשר לשמור לתוך משתנה, הכל!
Output של פקודות, Credentials, וכדומה.. כמובן שאחר כך אפשר לעשות באותו משתנה שימוש.
איך מכריזים על משתנה? פשוט מאד,
$x = 10
$i = 5
$y = 'SomeText'
(שימו לב שכאשר מכניסים טקסט לתוך משתנה הוא מגיע עם צ'ופצ'יק " ' " כזה)

בכדי להציג את המשתנים על המסך כל מה שצריך לעשות, זה לכתוב אותם על המסך בצורה הבאה
$y

מה אנחנו יכולים לעשות עם משתנים? נראה בהמשך השיעור
משהו שראיתם בשיעור ראשון ובטח לא הבנתם מהו, אולי תבינו עכשיו.
מדובר במושג Piping (זה למעשה Pipe (צינור) והפועל שלו הוא Piping).
המושג Pipeמייצג את התו הבא " | ", למה זה נקרא Pipe ומה הוא עושה?
אז נגיד לרגע שיש לכם צינור, בצד אחד הכנסתם מים, מה ייצא בצד השני? (עם עניתם קולה אז זו טעות) מים!
אבל בוא נגיד שאמצע הצינור יש מסננת, מה תקבלו? מים מסוננים (שוב, לא קולה!)
מה שאנחנו עושים עם Pipe בPowershell זה למעשה לקחת אובייקט כלשהוא ולעשות בו מודיפיקציה, אולי לסנן אותו, אולי לסגנן טבלה יפה.. פשוט לקחת את האובייקט מצד שמאל של ה Pipe ובצד ימים לבצע בו כל מיני פעולות.
נגיד לרגע שלקחתי את הפקודה Get-Proccess (או עם ה Alias שלה, GPS),
עשיתי לה Pipe, עכשיו אני יכול לעשות כל מיני פעולות על גבי הפקודה הזו.
לפני שניתן דוגמא, תדעו שיש פקודה שנקראת Get-Member,
פקודה זו למעשה לוקחת את מה שהכנסתם לצינור בצד אחד ואומר לכם, "חבר'ה, אלו הנתונים שתקבלו כאשר תשתמשו בפקודה הזו".
לדוגמא,
gps | get-member תיתן לנו רשימה מלאה של כל הנתונים שנקבל על הפקודה gps.

או לדוגמא, פקודה נוספת,
get-alias | get-member

בואו ניקח עכשיו את הפקודה Select כדוגמא כדי שנוכל להגיע לעיקר של Piping.
הפקודה Select בעצם אומרת, תבחר את ה *** הבאים, כאשר במקום הכוכביות, אנחנו יכולים לבחור Property (נוכל למצוא את רשימת ה Properties בעזרת Get-Member)
ונוכל לקחת Output שלם שנראה כך:

ולהפוך אותו לכזה

בעזרת Pipe נוסף, והוספת הפקודה Format-table -autosize נוכל לצמצם רווחים ולתת לטבלה מראה יפה יותר

עכשיו, בואו נגיד שעשינו את הדבר הבא:
הכנסנו למשתנה שנקרא $now את התאריך הנוכחי והצגנו אותו על המסך בכדי לוודא.

עכשיו בוא נראה מה ה Get-member של get-date
כמובן שהרשימה עוד ארוכה אבל בוא נסתפק בזה לכרגע
עכשיו אני רואה שבנוסף ל Propery שראיתי מקודם לדוגמא ב Get-Process, יש פה גם Methods,
אלו למעשה פונקציות שאנחנו יכולים להכיל על המשתנים שלנו.
אמרנו שבמשתנה $now יש כעת את התאריך הנוכחי, בואו נוסיף לו 4 ימים, לפי רשימת ה Methods שראיתי כאשר הרצתי get-member

אנחנו גם יכולים לעשות עליו עוד כל מיני דברים כגון:


וכדומה...
אז מה שראינו עד כה בשיעור הזה הוא למעשה:
מה זה Pipe
איך משתמשים ב Pipe
איך יודעים מה כל משתנה מסוגל לעשות
איך לסגנן טבלה מסודרת
איך לבחור שדות ספציפיים
ולמעשה, מפה אתם יכולים להתחיל לרוץ כי יש לכם בסיס מאד חזק ויציב (אם הצלחתם להבין עד כה) להמשיך הלאה..
יש מצב שהשיעור נראה לכם קצר, אבל קחו בחשבון שכדי לכתוב שיעור כזה אני משקיע לפחות שעה וחצי אם לא יותר.
זה כולל צילומי מסך, חיפוש דוגמאות, חיפוש באינטרנט לגבי דברים שאני לא בטוח וכדומה..
אז נתקדם לאט לאט.
נכון לרגע זה עברנו על מספיק דברים בשביל שתתחילו להבין איך עובד PowerShell ותוכלו להתחיל לחפש מידע ברשת (או בעזרת Get-Help בעצמכם)
החל מהשיעור הבא אני אשתמש לא מעט ב Alias לכן אני ממליץ לעבור על הרשימת Get-Alias (אני חייב לבדוק אם גם לה יש קיצור חחחח) כדי שנהיה מסונכרנים.
מקווה שהתקדמתם,
קדימה להתאמן!