PracticU

פקודת Get-WinEvent
חלק 1

בלי כתוביותעם כתוביות
PracticU › קורס PowerShell › פקודת Get-WinEvent חלק 1
מילון מושגים:
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.
Event Viewer - כלי ב-Windows שמציג את יומני האירועים של המערכת והתוכנות, לצורך מעקב ואבחון תקלות.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.
PowerShell - סביבת שורת פקודה ושפת סקריפטים של מיקרוסופט לניהול אוטומטי של מערכות Windows ושירותים.
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.

פקודת Get-WinEvent חלק 1
פתיחת הפרק שמוקדש כולו לפקודת Get-WinEvent - הדרך המעשית לשלוף ולסנן אירועי Windows בלי להסתמך על הכלי הגרפי המגושם.
השלבים העיקריים
1. רשימת כל היומנים: Get-WinEvent -ListLog * מציג את כל יומני האירועים הקיימים, כולל יומנים שמוסתרים כברירת מחדל (מוצגים דרך View > Show Analytic and Debug Logs ב-Event Viewer) ולכן דורשים הפעלה ידנית (Enable).
2. בחירת שדות: אפשר להעביר (|, פייפ) את הפלט לפקודת Select-Object ולבחור רק שדות מסוימים, למשל שם יומן, כמות רשומות, האם היומן פעיל, ואם הוא דורס רשומות ישנות (Circular) או מארכב אותן בקובץ נפרד.
3. תצוגה כטבלה: ללא עיבוד נוסף הפלט מוצג כרשימה. Format-Table (קיצור FT) מסדר אותו בעמודות עם רוחב מתאים אוטומטית.
4. שמירה במשתנה: אפשר לשמור פלט פקודה במשתנה בזיכרון (למשל $AAA) כדי לבדוק אותו בנפרד במקום לשרשר הכל בפייפים (one-liner).
5. רשימת ספקים: Get-WinEvent -ListProvider * מראה את כל ספקי ETW ולאיזה יומן כל אחד מהם משויך. חלק מהספקים מוגנים ב-PPL ולא ניתן לקבל מהם מידע.
6. שליפת אירועים מיומן: Get-WinEvent -LogName <שם> -MaxEvents 50 מביא את 50 האירועים האחרונים, ואפשר להוסיף -Oldest כדי להתחיל מהישנים ביותר.
שימו לב
פקודות PowerShell נבחרות על פני הכלי הגרפי כי אפשר להריץ אותן על הרבה מחשבים במכה ולהעביר את המידע למערכת ניטור מרכזית.
הסטודנט יוצא עם היכולת לשלוף רשימת יומנים, ספקים ואירועים אחרונים בשורת פקודה אחת, בסיס לסינונים מורכבים יותר בהמשך הפרק.
השיעור הבא בקורס: פקודת Get-WinEvent חלק 2

פרקי ההרצאה: פקודת Get-WinEvent חלק 1

  1. 00:00

    פקודת Get-WinEvent לשליפת אירועים

  2. 01:17

    שליפת רשימת היומנים עם ListLog

  3. 01:52

    הצגת יומנים נסתרים

  4. 02:46

    בחירת שדות עם Select-Object

  5. 03:40

    שמירת יומנים Circular ו-Archive

  6. 04:37

    סידור הפלט עם Format-Table

תמלול ההרצאה: פקודת Get-WinEvent חלק 1

הטקסט המלא של הדקות הראשונות בהרצאה «פקודת Get-WinEvent חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם, אנחנו בפרק חמישי שכולו מוקדש לפקודת גט ווינדוס איבנטס. זאת פקודה סופר חשובה בפאוורשל, כי היא יודעת לשלוף ולסנן אירועים שקרו בווינדוס גם מתוך EventLog, מ-EventViewer של ווינדוס, וגם מתוך EventTracing - מערכת מעקב אחר הקרנל.

  2. 00:26

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

  3. 00:41

    אנחנו נלמד פאוור של לעומק, והכל יהיה מעשי. אני הולך לתרגל הכל עם הדוגמאות שלהם, להסביר לכם הכל לעומק. יצרתי מכונה וירטואלית בענן שלהם, התחברתי אליה עם שם וסיסמה, כמובן שלפני כן הפעלתי VPN כדי להיכנס לרשת הפנימית שלהם, אז יש לי פה את ה-Remote Desktop למכונה, ואנחנו הולכים לדבר על היומנים האלו שנמצאים ב-Event Viewer,

  4. 01:10

    ואיך אפשר לשלוף אירועים, לסנן אותם, לסדר אותם. שימו לב, ב-Windows יש המון המון יומנים. פעם היו ארבע בלבד והיה סלט, כי כל התוכנות רשמו הכל לאותו יומן של אפליקיישן.

  5. 01:24

    עכשיו זה הכל מופרד להרבה יומנים קטנים, וצריך לדעת לנהל אותם ואנחנו נעזר בפקודות פאוורשל. אז בואו נתחיל בדוגמה הראשונה שמדברת על לשלוף בכלל רשימה של איזה יומנים קיימים list log כוכבית זה אומר תשלוף לי את כל היומנים שקיימים get windows events ותראה לי את הרשימה של כל הלוגים שקיימים והוא שולף לי

  6. 01:50

    את כולם כל אלו שמסודרים פה בעץ הזה ובתוך כל אחד יש יומן דרך אגב יש פה יומנים שאנחנו אפילו לא רואים אותם אנחנו יכולים לעשות view, show analytics and debug logs ולהוסיף לתצוגה עוד יומנים שהם לא פעילים בכלל.

  7. 02:05

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

  8. 02:18

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

  9. 02:32

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

  10. 02:46

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

  11. 02:57

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

  12. 03:12

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

  13. 03:35

    זאת אומרת, האם הוא אוגר את הכל או מוחק את המידע הישן, איזה סוג הוא. אתם יכולים דרך אגב לראות את זה גם בגרפי, כל מה שאני מראה לכם גם קיים בגרפי. נניח נבוא פה ליומן של security, נעשה right click properties ונראה שכשהוא מגיע ל-20 מגה בייט, אלף קילו בייט הוא עושה אוברייד דורס את האירועים הישנים זה נקרא סירקולאר סירקולארי

  14. 04:01

    מעגלי הוא למעשה מחזיק 20 מגה אחרונות של רשומות כאשר יש אופציה אחרת אומרת ארכייב זה אומר במקום למחוק תשמור את הכל בקובץ נפרד בצד בדיסק כשתגיע ל-20 מגה תשמור את זה כקובץ נפרד ותתחיל קובץ חדש אוקיי אז יש פה כמה ויש כזה don't overwrite ולחכות שהמנהל רשת יעשה משהו ידני אז ברירת מחדל במקרה של

  15. 04:25

    הלוג הספציפי הזה זה Override, זה אומר Circular Logging. הפקודה הזאת אומרת איזה שדות לבחור מתוך כל אובייקט שמגיע, מתוך כל הפלט, ואז אני אומר לו תבחר לי את השדות האלו, ואני יכול להגיד לו First 3, רק שלושה ראשונים תראה לי על המסך, ואני רואה פה שהם רוצים להוסיף עוד Pipe, זאת אומרת כל הפלט הזה

  16. 04:50

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

  17. 05:04

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

  18. 05:21

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

  19. 05:31

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

  20. 05:46

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

לקורס המלא: קורס PowerShell אונליין

ההרצאה הקודמת: משתנה סביבה - Environment Variables ב-PowerShell

ההרצאה הבאה: פקודת Get-WinEvent - חלק 2

הרצאות קשורות מקורסים אחרים

  • Get Requests
  • פקודת Select
  • פקודת ls בלינוקס
  • Get Activity Orientation

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס קוברנטיקס - Kubernetes
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס Git ו-GitHub עם Visual Studio