
Get-WinEvent - הדרך המעשית לשלוף ולסנן אירועי Windows בלי להסתמך על הכלי הגרפי המגושם.Get-WinEvent -ListLog * מציג את כל יומני האירועים הקיימים, כולל יומנים שמוסתרים כברירת מחדל (מוצגים דרך View > Show Analytic and Debug Logs ב-Event Viewer) ולכן דורשים הפעלה ידנית (Enable).|, פייפ) את הפלט לפקודת Select-Object ולבחור רק שדות מסוימים, למשל שם יומן, כמות רשומות, האם היומן פעיל, ואם הוא דורס רשומות ישנות (Circular) או מארכב אותן בקובץ נפרד.Format-Table (קיצור FT) מסדר אותו בעמודות עם רוחב מתאים אוטומטית.$AAA) כדי לבדוק אותו בנפרד במקום לשרשר הכל בפייפים (one-liner).Get-WinEvent -ListProvider * מראה את כל ספקי ETW ולאיזה יומן כל אחד מהם משויך. חלק מהספקים מוגנים ב-PPL ולא ניתן לקבל מהם מידע.Get-WinEvent -LogName <שם> -MaxEvents 50 מביא את 50 האירועים האחרונים, ואפשר להוסיף -Oldest כדי להתחיל מהישנים ביותר.הטקסט המלא של הדקות הראשונות בהרצאה «פקודת Get-WinEvent חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, אנחנו בפרק חמישי שכולו מוקדש לפקודת גט ווינדוס איבנטס. זאת פקודה סופר חשובה בפאוורשל, כי היא יודעת לשלוף ולסנן אירועים שקרו בווינדוס גם מתוך EventLog, מ-EventViewer של ווינדוס, וגם מתוך EventTracing - מערכת מעקב אחר הקרנל.
הפקודה הזאת היא מאוד שימושית, כי הכלי הגרפי של EventViewer הוא לא משהו, ולכן נאלצים להשתמש בפקודה הזאת. שימו לב, אחרי ארבע פרקים, הפרק החמישי כולו מדבר רק על הפקודה הזאת, ויש פה מלא דוגמאות.
אנחנו נלמד פאוור של לעומק, והכל יהיה מעשי. אני הולך לתרגל הכל עם הדוגמאות שלהם, להסביר לכם הכל לעומק. יצרתי מכונה וירטואלית בענן שלהם, התחברתי אליה עם שם וסיסמה, כמובן שלפני כן הפעלתי VPN כדי להיכנס לרשת הפנימית שלהם, אז יש לי פה את ה-Remote Desktop למכונה, ואנחנו הולכים לדבר על היומנים האלו שנמצאים ב-Event Viewer,
ואיך אפשר לשלוף אירועים, לסנן אותם, לסדר אותם. שימו לב, ב-Windows יש המון המון יומנים. פעם היו ארבע בלבד והיה סלט, כי כל התוכנות רשמו הכל לאותו יומן של אפליקיישן.
עכשיו זה הכל מופרד להרבה יומנים קטנים, וצריך לדעת לנהל אותם ואנחנו נעזר בפקודות פאוורשל. אז בואו נתחיל בדוגמה הראשונה שמדברת על לשלוף בכלל רשימה של איזה יומנים קיימים list log כוכבית זה אומר תשלוף לי את כל היומנים שקיימים get windows events ותראה לי את הרשימה של כל הלוגים שקיימים והוא שולף לי
את כולם כל אלו שמסודרים פה בעץ הזה ובתוך כל אחד יש יומן דרך אגב יש פה יומנים שאנחנו אפילו לא רואים אותם אנחנו יכולים לעשות view, show analytics and debug logs ולהוסיף לתצוגה עוד יומנים שהם לא פעילים בכלל.
כברירת מחדל המסך קופץ כי הוא כל הזמן מוסיף לי יומנים לתצוגה. בואו נראה משהו, הנה בבקשה, יש לנו פה יומן עבור משהו מסוג דיבאג, מסוג אופריישן, מסוג פרפורמנס.
אם אני עכשיו אלך לכאן ואני אוריד את היומן הזה, נשאר רק אחד, אופריישנל. אם אני רוצה יומנים נוספים, לצורך דיבאג ואנליטיקה, דיבאג זה לחפש תקלות, אז אני יכול להוסיף את זה.
ברגע שאני מוסיף הוא עדיין לא מופעל, צריך לעשות רייט קליק ו-Enabler להפעיל אותו. למה הוא לא מופעל? כי זה מעמיס על המערכת לאסוף עוד נתונים. עכשיו השאלה, איך מנהלים את היומנים האלו דרך פקודות?
וזה מה שאנחנו רואים כאן, פקודה שקודם כל שולפת לי הכל. שימו לב שהוא מציג לי כמה שדות עבור כל יומן. השאלה, אולי יש שדות אחרים עבור כל יומן?
אולי אני רוצה לראות איזשהו מידע אחר? אז אני יכול לעשות פה פייפ, זה אומר להעביר את כל הפלט לפקודה הבאה. זאת אומרת, הפלט הזה שיש לנו על המסך עובר כאינפוט, ככניסה לפקודה הבאה, ומה הפקודה הבאה?
סלקט אובג'קט, איזה שדות רוצים להציג? ובמקרה שלנו אנחנו רוצים להציג רק את השדות האלו. שם של לוג, כמה רישומות יש, האם זה מהסוג הישן או החדש, האם הלוג מופעל או לא, האם הלוג הזה דורס רשומות ישנות או שכשהוא מגיע לסוף שלו הוא שם את הכל בצד, לא מוחק כלום וממשיך לקובץ חדש.
זאת אומרת, האם הוא אוגר את הכל או מוחק את המידע הישן, איזה סוג הוא. אתם יכולים דרך אגב לראות את זה גם בגרפי, כל מה שאני מראה לכם גם קיים בגרפי. נניח נבוא פה ליומן של security, נעשה right click properties ונראה שכשהוא מגיע ל-20 מגה בייט, אלף קילו בייט הוא עושה אוברייד דורס את האירועים הישנים זה נקרא סירקולאר סירקולארי
מעגלי הוא למעשה מחזיק 20 מגה אחרונות של רשומות כאשר יש אופציה אחרת אומרת ארכייב זה אומר במקום למחוק תשמור את הכל בקובץ נפרד בצד בדיסק כשתגיע ל-20 מגה תשמור את זה כקובץ נפרד ותתחיל קובץ חדש אוקיי אז יש פה כמה ויש כזה don't overwrite ולחכות שהמנהל רשת יעשה משהו ידני אז ברירת מחדל במקרה של
הלוג הספציפי הזה זה Override, זה אומר Circular Logging. הפקודה הזאת אומרת איזה שדות לבחור מתוך כל אובייקט שמגיע, מתוך כל הפלט, ואז אני אומר לו תבחר לי את השדות האלו, ואני יכול להגיד לו First 3, רק שלושה ראשונים תראה לי על המסך, ואני רואה פה שהם רוצים להוסיף עוד Pipe, זאת אומרת כל הפלט הזה
להעביר לפקודה שמסדרת הכל בטבלה, עם רוחב עמודות שמתאים למידע עצמו, האוטוסייז לרוחב עמודה. בואו נראה איך זה בלי הפקודה הזאת, ואז נבין למה היא חשובה.
אז אם אני עושה שליפה של כל יומן האירועים, של כל הרשימה, מעביר את זה בפייפ למי שבוחרת את העמודות, שימו לב מה קורה, הוא מציג לי את זה לא כטבלה, אלא כרשימה, זה עמודת לוג ניים, הערך.
רקורד קאונט, ערך כלשהו. במקרה הזה זה 0, פה זה לא הצליח לשלוף את זה. זאת אומרת, הוא שלף לי את כל העמודות שביקשתי, אבל סידר את זה לא כטבלה אלא כרשימה.
אם אני רוצה את זה כטבלה, אני מעביר את כל הפלט הזה בפייפ לפקודת פורמט טייבל. במקום הפייפים הייתי יכול לשמור הכל במשתנה בזיכרון, ואז להפעיל פקודת פורמט טייבל על המשתנה בזיכרון.
במקום להשתמש במשתנים, אני עושה הכל בשורה אחת. אם הייתה איזושהי תקלה והייתי רוצה לחקור לעומק את הפקודה הזאת, הייתי לוקח את החלק הראשון בלי הפייפ, שומר אותו במשתנה בזיכרון, בודק מה קורה שם.