
Get-WinEvent קוראת גם קבצי ETL, ובעזרת צינורות (pipe) אפשר לסנן, למיין ולקבץ את האירועים.Get-WinEvent -Path <נתיב> -Oldest. הפרמטר -Oldest חובה, כי הקובץ נקרא מהישן לחדש. מוסיפים -MaxEvents 15 כדי לא למלא את המסך.Sort-Object לפי תאריך בסדר יורד, ו-Select-Object -First 10. זה איטי יותר, כי נקרא הקובץ כולו.Format-List -Property * רואים את כולן, וביניהן ProcessId, שמראה איזו תוכנה יצרה את האירוע.ProcessId משווים ל-PID ב-Task Manager. Where-Object בודק לכל שורה אם ה-ProcessId שווה למספר (7132 בדוגמה), וכך רואים כל מה שהתוכנה עשתה ברמת הקרנל, כולל ה-DLLs שטענה, גם אם היא לא מדווחת בעצמה.Get-WinEvent -ListProvider מציג את הספקים של יומן האירועים הרגיל. גם היומנים האלה מגיעים מ-ETW. פרובידר Security Auditing מוגן ב-PPL, ולכן קוראים אותו דרך Event Viewer: Get-WinEvent -LogName Security.$events. אחר כך Group-Object לפי ה-ID, Sort-Object לפי Count בסדר יורד ו-Select-Object -First 10. בדוגמה אירוע 4624 הופיע 10 פעמים ו-4798 הופיע 8 פעמים. עם Where-Object ו-Select-Object -First 1 קוראים את הודעת אירוע 4624, ועם Measure-Object סופרים כמה פעמים קרה.הטקסט המלא של הדקות הראשונות בהרצאה «מעקב אחר הליבה של וונדוס - Kernel Powershell» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בסרטון זה נלמד על PowerShell ואיך הוא יודע לנתח קבצי ETL. למעשה הפקודה של Get Windows Events, שמביאה אירועים מתוך Event Viewer, מתוך יומן האירועים של ה-Windows, יודעת גם להבין קבצי ETL.
וזה עוזר לנו מאוד בניתוח, כי ל-PowerShell יש עוצמות אדירות. בואו נפתח PowerShell, ניכנס לתיקייה Performance Logs, זה Get Child Item שזה כמו לעשות דיר ונראה שיש לנו פה קבצי ETL אז בואו נתחיל לראות איך אפשר להשתמש ב-PowerShell ובעוצמה שלו בשביל לנתח את הקבצים האלו קודם כל אנחנו רואים
פה ש-Get Windows Events ונותנים לו מינוס Path ונתיב לקובץ חייבים להוסיף Oldest וזה איזושהי מגבלה טכנית שהוא חייב לקרוא את זה בסדר מסוים אז צריך להגיד לו באיזה סדר לקרוא את זה מהישן לחדש ונגיד לו לקרוא 15 אירועים בלבד שלא יתפוס לנו מסך מלא אז הנה אנחנו רואים שהפקודה הזאת שלפה לנו 15 אירועים הכי ישנים אתם רואים את השעה 12.36 אם אני רוצה להפוך
את הסדר ולשלוף את הכי חדשים אני צריך עדיין לכתוב oldest כי יש פה מגבלה טכנית ואחרי זה אני הופך את הסדר תסתכלו אני לוקח קורא את האירועים ואז עושה סורט אוג'קט מסדר אותם לפי תאריך בסדר יורד ובוחר נניח עשרה אירועים אחרונים אז זה היה 12-36 עכשיו זה לוקח לו קצת זמן כי הוא צריך לקרוא את הכל ואז להפוך להם את הסדר כך הוא קרא רק 15 ועצר
ושימו לב עכשיו זה 12-43 זה אומר שזה האירועים האחרונים שקרו אז עוד פעם get windows events הפקודה מינוס path בנתיב לקובץ בפייפ אני מעביר את כל התוצאה של הפקודה הקודמת את כל האירועים לפקודה חדשה של סורט אובייקט ממיין את זה לפי תאריך לפי סדר יורד זה אומר החדש למעלה ואז בוחר רק את העשרה הראשונים שוב דרך פייפ אני מעביר פלט של
סורטינג לפקודה של סלקט אובייקט שאומרת מה לבחור מכל הפלט יש פה שרשור של פקודות על ידי פייפ במקום השרשור הזה יכלתי לעשות פקודות בכמה שורות לקחת את החלק הראשון ולשמור אותו באיזשהו משתנה ואחרי זה מתוך המשתנה הזה לעשות עליו sorting object ועל המשתנה החדש לעשות select.
במקום לשמור את זה במשתנה הזה רציתי את הכל בשורה אחת. בואו נראה עוד דברים מעניינים. בואו נראה את התכונות שיש לנו בכל שורה. כרגע אנחנו רואים שיש לנו תאריך, ID, זה אומר מספר מזהה של האירוע ודרגת חומרה ו-message.
האם יש עוד עמודות שאנחנו לא רואים? והתשובה היא כן, יש עוד עמודות שאנחנו לא רואים אני לחצתי קונטרול L, ניקיתי מסך ועכשיו אני מראה לך פקודה שחושפת לי את כל העמודות שקיימות קודם כל איך הולכת הפקודה?
שוב, get windows events, מינוס path, oldest שזה חובה, שולף אירוע אחד, הכי ישן מעביר אותו בפייפ לפקודה הבאה, פורמט ליסט פורמט ליסט, מראה לי הכל לא כטבלה זוכרים לפני כן הייתה טבלה?
עכשיו הוא מראה לי את זה כשורות ואני אומר לו תראה לי את כל המאפיינים פרופרטי כוכבית דרך אגב אם אני אעשה בלי פרופרטי כוכבית הוא יראה לי רק ארבע עמודות כמו שזה היה בטבלה אם אני עושה לו פרופרטי כוכבית הוא מראה לי את כל התכונות את כל השדות ולדוגמה השדה שמעניין אותי הוא process ID זה שדה מעניין מאוד שעכשיו גילינו אותו ולמה הוא כזה חשוב כי כי השדה הזה מראה לי איזה
תוכנה יצרה את האירוע הזה. תוכנה 7132. איפה אני רואה את המספרים של התוכנות?