כיצד למצוא את זמן הכניסה האחרון של משתמשי Active Directory (באמצעות ADUC)

איך למצוא את הזמן האחרון של התחברות של משתמשים ב־Active Directory (באמצעות ADUC). Active Directory הוא רכיב מרכזי ברשתות מבוססות Windows רבות ומשמש כמסד נתונים של משתמשים, קבוצות ומחשבים שמנהלי מערכת ניהלים. משימה קריטית אחת עבור מנהלי מערכת היא לזהות חשבונות משתמש לא פעילים ב־Active Directory ולהסיר אותם כדי לשפר את האבטחה ולהפחית את העומס בספריית הדרכון. כדי לבצע זאת, מנהלי מערכת צריכים למצוא את הזמן האחרון של התחברות של משתמש ב־Active Directory. קיימים מספר שיטות להשיג את זה, כולל מסך ה־Active Directory Users and Computers, שאילתות LDAP ופקודות PowerShell. בנושא זה, אנו מתעקשים על השיטות הללו בפרט ומראים כיצד מנהלי מערכת יכולים בקלות למצוא את הזמן האחרון של התחברות של משתמש ב־Active Directory.

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

האם נמשיך עם המאמר "איך למצוא את הזמן האחרון של משתמשי Active Directory שהתחברו" (באמצעות ADUC).

איך למצוא את הזמן האחרון של משתמשי Active Directory שהתחברו (באמצעות ADUC)

כדי לקבוע את הפעם האחרונה שמשתמש תחום נכנס, אנו משתמשים בחברת Active Directory Users and Computers (ADUC) קונסולת גרפית. הנה איך:

  1. השגריר ה-dsa.msc מסדרת.
  2. בחר נוף > תכונות מתקדמות מתפריט העליון כדי לאפשר את האפשרות זו.

3. התחבר אל המשתמש בעץ ה-AD וגש אל תכונותיו.
4. לחץ על כרטיסיית עריכת תכונה.
5. חפש את תכונת התחברות אחרונה ברשימת התכונות, שמציגה את זמן ההתחברות האחרונה של המשתמש בתחום האחרון.

הערה. הlastLogon וlastLogonTimestamp בתמונה לעיל דומים. אז מה מבדיל ביניהם?

תכונות תאריך התחברות

  • כשמשתמש מתחבר לתחום, התכונה lastLogonמשתנה. עם זאת, זה רק משנה את שרת הדומיין שסיפק את האימות של המשתמש הלא משודרג שלו. כתוצאה מכך, עלינו לבדוק את התכונה זו על כל שרת דומיין, אם יש מספר שרתי דומיין מפוזרים באזורים ובתתי-רשתות פעילים של רשת המסד הנתונים. אז עלינו להשוות את המידע שהתקבל. ערך התכונה עבור משתמש בכמה שרתי DC עשוי להשתנות או אפילו להיות אפס (אם המשתמש הוא משתמש לא אותחל בשרת זה);
  • כשמשתמש מתחבר לבקר תחום, הlastLogonTimeStampתכונה מותאמת גם כן, ואנו משתמשים בה לשיבוץ למכונות DC אחרות. עם זאת, זה לוקח זמן עד שהתכונה משובצת (אנו רק משתמשים בה לשיבוץ, אם הערך הנוכחי זה קיים ארבעה עשרה (14) ימים או יותר מהקודם). כתוצאה מכך, המידע בתכונה זו עבור DC מסוים עשוי להיות פחות רלוונטי.

החל מגרסת Windows Server 2008 של תוכנת AD (AD Schema objectVersion = 44), אנו משתמשים במספר תכונות חלופיות קשורות להתחברות. כאלה כוללות:

  • msDS-LastFailedInteractiveLogonTime: מציג את זמן הניסיון הכניסה הלא מוצלח האחרון.
  • msDS-LastSuccessfulInteractiveLogonTime: מציג את זמן ההתחברות המוצלח האחרון. חשוב לבדוק את גרסת תוכנת AD כדי לקבוע אם יש צורך לעדכן את תוכנת הרשימה הפעילה.

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

נסה כלי הדו-קידום והבדיקה שלנו של Active Directory & Office 365

תנסה אותנו בשביל בחינם.  100 תבניות דו-קידום זמינות. בקלות תיכף תוכנית הדו-קידום שלך על AD, Azure AD & Office 355.




הפעלת תכונות כניסה באמצעות מדיניות קבוצה

כדי להפוך את התכונות הללו זמינות:

  1. הפעל את מדיניות הקבוצה (GPO) "לספק מידע על כניסות קודמות ל מחשבים קליות עבור שרתי דור" הממוקם ב ממשק המשתמש של מחשב > הגדרות מנהלים > מערכת > KDC.
  2. צור פריט מדיניות קבוצת משתמשים (GPO) עם הפרמטר הזה.
  3. מיין את הפריט מדיניות קבוצת משתמשים (GPO) למיקום של מפעלי התחום.

כדי ליצור רשימה של משתמשים שלא ביצעו כניסה לתחום במשך זמן מה באמצעות שאילתת LDAP בתצוגה גרפית של Active Directory, בצע את השלבים הבאים:

  1. המר את התאריך הרצוי לפורמט ToFileTime. לדוגמה, אם אנו רוצים למצוא משתמשים שלא נכנסו במשך יותר מ -90 יום, אנו משתמשים בפקודת PowerShell כדי לקבל את ערך התאריך:
(Get-Date).AddDays(-90).ToFileTime()

קטע הקוד הזה מספק ערך בזמן אפוך כמו 132988354159396418 על פי התאריך המסוים.

2. הכנס את הערך FileTimeDate לשאילתת LDAP:

console.log( 'Code is Poetry' );

3. פתח את חלון AD Users and Computers, הקש על הצמדה שמאלית על הצמדה Saved Queries, ולחץ על New, ולאחר מכן על Query.

4. קבע שם לשאילתה ולחץ על כפתור Define Query.
5.
בחר חיפוש מותאם אישית מרשימת הפתיחה ועבור לכרטיסיית Advanced.
6. העתק את שאילתת ה-LDAP לתיבת הקלט Enter LDAP Query.

7. שמור את השאילתה על ידי לחיצה על OK > ואז אישור עם OK נוסף.
8. בחר את השאילתה ב-Saved Queries ולחץ על F5 כדי לרענן את רשימת האובייקטים. חלון ADUC מציג רשימה שטוחה של משתמשים ש נכנסו לחשבון לרשת לפחות במשך 90 ימים.

9. הסר או משה את חשבונות המשתמשים הנסתרים ישירות מחלון ה-AD.

מצא את זמן הכניסה האחרון באמצעות CMD

השלב הבא עם המאמר "איך למצוא את זמן הכניסה האחרון של משתמשי Active Directory (באמצעות ADUC)" הוא ללמוד כיצד למצוא את זמן הכניסה האחרון באמצעות CMS. באמצעות הכלים net או dsquery משורת הפקודה, אנו עשויים לגלות מתי המשתמש התחבר למדור התחום לאחרונה. לדוגמה, הפעל את הפקודה הבאה בתוך מסד יישומים של פקודה (אנו לא זקוקים לזכויות מנהל תחום לא דורשים כדי לקבל מידע משתמש AD):

net user administrator /domain | findstr "Last"

אם אנו רוצים לקבל את זמן ההתחברות האחרון של משתמש מקומי, עלינו להסיר את ה- /domain פרמטר:

net user User | findstr "Last"

אנו גם מקבלים את זמן הכניסה האחרון באמצעות dsquery. לדוגמה:

dsquery * domainroot -filter "(&(objectCategory=Person)(objectClass=User)(sAMAccountName=admin))" -attr distinguishedName lastLogon lastLogonTimestamp -limit 0

הבעיה העיקרית היא שהתכונות lastLogonTimestamp ו-lastLogon בפורמט שעון ב-AD, ועלינו להמיר אותם לפורמט זמן רגיל.

אנו משתמשים בפקודה זו כדי למצוא את כל המשתמשים הנסתרים, למשל, במשך 10 שבועות:

dsquery user domainroot -inactive 10

מצא את תאריך הכניסה האחרון באמצעות PowerShell

אנו גם משתמשים ב-PowerShell כדי לקבל את תאריך ה משתמש האחרון בתחום הכניסה. לשם כך, עלינו להשתמש במודול PowerShell של Active Directory ובפקודות PowerShell. קודם כל, פתח את PowerShell והפעל את ה Import-Module כדי לייבא את מודול Active Directory:

Import-Module ActiveDirectory

קרא גם כלי דיווח על כניסת ויציאת משתמשים ב-Active Directory (מסנן מתקדם)מצא משתמשים לא פעילים בתקופה מסוימת של ימים

Get-ADUser -Identity username -Properties LastLogon | Select-Object -Property Name, LastLogon

כדי למצוא חשבונות שלא התחברו למערכת בתקופה מסוימת של ימים, כמו 90 ימים, אנו משתמשים בפקודת PowerShell שסונן את חשבונות המשתמשים על פי המאפיין שלהם LastLogonTimestamp. הנה דוגמה לפקודה:

Get-ADUser -Filter {Name -eq "username"} -Properties * |
Select-Object Name, @{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}}

פקודה זו מחפשת חשבונות שלא התקבלו פעילות במשך 90 ימים או יותר ובוחרת רק את אלה שהם חשבונות משתמשים. לאחר מכן היא מציגה את השמות של אלו ואת ערך התכונה LastLogonTimestamp, המייצג את הזמן האחרון שהמשתמש התחבר לתחום.אנו מתאימים את הפרמטר TimeSpan כדי לחפש אחר חשבונות שהם לא פעילים למספר ימים שונה. לדוגמה, אם נרצה לחפש חשבונות שלא התקבלו פעילות במשך 60 ימים, אנו מגדירים את TimeSpan ל-60.00:00:00.שים לב ש-AD מעדכן את התכונה LastLogonTimestamp לאחר שהמשתמש מתחבר או יוצא מהמערכת, כך שהערך עשוי להיות חלקית מדויק. בנוסף, תכונה זו מוכפלת בין שרתי ה- domain רק כל 9-14 ימים כברירת מחדל, לכן יתכן שנקבל מידע מעודכן רק עבור חשבונות משתמש מסוימים.

למצוא משתמשים מנותקים במספר ימים מסוים

כדי למצוא חשבונות שלא התחברו במשך מספר ימים מסוים, כגון 90 ימים, אנו משתמשים בפקודת PowerShell המסננת חשבונות משתמש על פי תכונת ה-LastLogonTimestamp שלהם. הנה דוגמה לפקודה:

Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 | where {$_.ObjectClass -eq 'user'} | Select-Object Name, LastLogonTimestamp

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

אנו מתאימים את פרמטר ה-TimeSpan כדי לחפש חשבונות שהיו מנותקים במשך מספר ימים אחר. לדוגמה, אם אנו רוצים לחפש חשבונות שהיו מנותקים במשך 60 ימים, אנו קובעים את TimeSpan ל-60.00:00:00.

שים לב ש-AD מעדכן את התכונה LastLogonTimestamp לאחר שמשתמש מתחבר או מתנתק מהמערכת, כך שהערך עשוי להיות חלקית מדויק. כמו כן, תכונה זו משודרגת בין ממשקי התחום רק כל 9-14 ימים כברירת מחדל, כך שאנו עשויים לקבל מידע מעודכן רק עבור כמה חשבונות משתמשים.

ייצוא לקובץ CSV

כדי לייצא את רשימת חשבונות המשתמש הנסתרים לקובץ CSV, אנו משנים את הפקודת PowerShell שסיפקנו קודם לכן כדי לכלול את הפקודה Export-CSV . הנה דוגמה לפקודה:

Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 |
where {$_.ObjectClass -eq 'user'} |
Select-Object Name, LastLogonTimestamp |
Export-CSV C:\InactiveUsers.csv -NoTypeInformation

פקודה זו חופשית חיפוש אחר חשבונות שנשארו בן פעיסים במשך 90 ימים או יותר ובוחרת רק את אלו שהם חשבונות משתמשים. לאחר מכן היא קובעת את התכונות Name ו-LastLogonTimestamp של חשבונות המשתמשים הללו ויוצאת אותם לקובץ CSV הממוקם ב- "C:\InactiveUsers.csv".

הפרמטר "-NoTypeInformation" מציין כי קובץ ה-CSV לא יכיל את מידע סוג האובייקט ב-.NET עבור כל אובייקט, וכך הקובץ יהיה קל יותר לקריאה. לאחר הרצת הפקודה זו, אנחנו פותחים את קובץ ה-CSV עם Excel או אפליקציה גיליון אחרת כדי לצפות ברשימת חשבונות המשתמשים הלא פעילים ואת חותמות התחברותיהם האחרונות.

תודה על קריאת המאמר כיצד למצוא את זמן התחברות המשתמשים ב־Active Directory האחרונה (באמצעות ADUC). אנו נסים לסיים עכשיו.

סיכום כיצד למצוא את זמן התחברות המשתמשים ב־Active Directory האחרונה (באמצעות ADUC)

בסיכום, מציאת הזמן האחרון שבו משתמש כלשהו התחבר ל Active Directory היא משימה עיקרית למנהלי מערכות, מאחר וזה מאפשר להם לזהות חשבונות משתמש לא פעילים שכדאי לנטרל או להסיר כדי לשפר אבטחה ולהפחית סרבול בתיקיית המדריך. אנחנו משיגים זאת בעזרת שיטות שונות, כולל קונסולת Active Directory Users and Computers, שאילתות LDAP ופקודות PowerShell (קומנדות).

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

Source:
https://infrasos.com/how-to-find-active-directory-users-last-logon-time-using-aduc/