איך למצוא משתמשים נעולים ב-Active Directory עם PowerShell

האם המשתמשים בארגון שלך שוכחים את הסיסמאות שלהם? בטוח לא! האם משתמש ב־Active Directory נעול את חשבוןו? בכלל לא! בואו נראה מה אנו יכולים לעשות כדי למצוא משתמשים נעולים ב־Active Directory באמצעות PowerShell!

תפסיק למאבק עם שיחות איפוס סיסמה ונעילות חשבון ב־Active Directory. קבל גרסה חינמית של Specops uReset.

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

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

דרך אחת לעשות זאת היא להשתמש ב־PowerShell ובמודול ActiveDirectory. על ידי שימוש בפקודה Search-AdAccount בתוך מודול ה Active Directory, תוכל בקלות לאתר את כל החשבונות שנעולים כרגע ברשותך על פני הדומיין.

קשור: איך להתקין את מודול הפקודות של Active Directory ב PowerShell

מצא משתמשים נעולים ב Active Directory בעזרת PowerShell

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

Search-AdAccount -LockedOut

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

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

מצא את בעל התפקיד PDCe

כל אימות סיסמא יגיע לשרת הראשי הזה החולק את תפקיד PDCe, ולכן זה תמיד המקום הטוב ביותר לבדוק. כדי למצוא את שרת ברשותו של תפקיד PDCe, ניתן לבדוק את המאפיין PDCEmulator שמוחזר מפקודת Get-ADDomain.

$pdce = (Get-ADDomain).PDCEmulator

חיפוש ביומן האירועים לחסימות

כשיש לך את השרת החולק את תפקיד PDCe, יהיה עליך לשאול את יומן האבטחה (יומני אבטחה) של שרת זה על אירוע ID 4740. אירוע ID 4740 הוא האירוע שנרשם בכל פעם שחשבון ננעל. עשה זאת באמצעות פקודת Get-WinEvent.

Get-WinEvent -ComputerName $pdce -FilterHashTable @{'LogName' ='Security';'Id' = 4740}

אתה כל כך קרוב למציאת אותם משתמשים שננעלו ב Active Directory עם PowerShell!

פילוח שם המשתמש והמיקום

זה יחזיר את כל אירועי הנעילה, אך אין זה מראה מיד את שמות המשתמשים והמחשבים שבהם בוצעה הנעילה. כדי למצוא את שם המשתמש, יהיה עליך לחקוף קצת יותר על מאפיין בשם Properties שמחזירה Get-WinEvent.

$filter = @{'LogName' = 'Security';'Id' = 4740}
$events = Get-WinEvent -ComputerName $pdce -FilterHashTable $filter
$events | Select-Object @{'Name' ='UserName'; Expression={$_.Properties[0]}}, @{'Name' ='ComputerName';Expression={$_.Properties[1]}}

ניתן לראות שהעברתי את הסינון של הטיילת למניעת גלישת קוד, ובעיקר השתמשתי במאפיינים מחושבים של Select-Object כדי לשדרג את שמות המשתמש ושם המחשב מתוך המאפיין Properties.

מניע של PowerShell לבטל נעילת חשבונות AD

עכשיו שמצאת את המשתמשים שננעלו ב-AD, איך אתה הולך לפתוח את החשבונות? ה-ActiveDirectory module ב-PowerShell מציע לך את הפקודה Unlock-ADAccount שמקלה על פעולה מהירה כדי להחזיר את הלקוח לעבודה. כפי שמוצג למטה, השתמש ב-PowerShell כדי לפתוח חשבונות AD. הפקודה עובדת גם ב-Windows PowerShell וב-PowerShell 7, ברגע שהוא נטען דרך ה-ActiveDirectory module.

Unlock-ADAccount -Identity 'lockeduser'

אולי אתה רוצה לפתוח את כל המשתמשים הננעלים בבת אחת. השתמש ב-Search-ADAccount עם הפרמטר -LockedOut והעבר את התוצאות לפקודת Unlock-ADAccount, כפי שמוצג למטה.

Search-ADAccount -LockedOut | Unlock-ADAccount

הפחת שיחות לשולחן העזרה ועדכן את הפרטיים האישיים למשתמשים רחוקים אפילו מחוץ ל-VPN עם פתרון לאיפוס סיסמאות עצמאי. קבל דגם של Specops uReset!

סיכום

Find Locked Out Users in Active Directory

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

Source:
https://adamtheautomator.com/find-locked-out-users-in-active-directory-powershell/