Demo ansehen×
×

Sehen Sie NinjaOne in Aktion!

Mit dem Absenden dieses Formulars akzeptiere ich die Datenschutzerklärung von NinjaOne.

Wie man Active Directory sauber hält | NinjaOne

Cleaning up the Active Directory

Active Directory ist eines dieser Produkte, die dazu neigen, immer größer zu werden. Es ist ein Produkt, an dem viele Leute jeden Tag Änderungen vornehmen und letztendlich diesen enormen Haufen von Zeug generieren, der irgendwie doch noch funktioniert. Sogar die IT-Abteilung mit den besten Absichten scheint immer eine Active Directory-Umgebung zu haben, die unendlich viele Benutzerkonten hat, die nicht mehr benötigt werden, GPOs die mit OUs verbunden sind, von denen die Leute nicht mal wussten, dass sie überhaupt noch existieren und Computerkonten, die sich auf Computer beziehen, die längst nicht mehr da sind. Dieser Zustand scheint an Leute heranzupirschen. Eines Tages setzt sich jemand vor die Active Directory für Nutzer und Computer (ADUC) und hat diesen Moment, in dem sie sagen: „Wow! Das muss mal aufgeräumt werden.“

Sobald jemand in Ihrer Organisation diesen Moment hat, wird es wahrscheinlich eine entmutigende und überwältigende Aufgabe sein. Es mag sein, dass Sie das Projekt „Zeug aufräumen“ in Angriff nehmen, aber Sie werden bald feststellen, dass Rechtsklicken und Löschen alleine, das Problem nicht wird lösen können. Es gibt viele Möglichkeiten, dieses Projekt zum Erfolg zu führen, wobei die erste Aufgabe darin besteht, zu definieren, was genau „Aufräumen“ überhaupt bedeutet. In diesem Artikel konzentrieren wir uns auf nicht verwendete Benutzerkonten. Genauer gesagt konzentrieren wir uns auf drei Attribute, die ein Benutzerkonto möglicherweise als „löschbar“ einstufen. Diese Attribute sind deaktivierte Konten, Konten, die in x-Tagen nicht verwendet wurden, und Konten mit abgelaufenen Kennwörtern.

Eine der einfachsten Möglichkeiten, diese potenziell nicht verwendeten Konten zu finden, ist die Nutzung von PowerShell. Die ActiveDirectory PowerShell ist ein Modul, das ein äußerst nützliches Cmdlet namens Search-AdAccount enthält, mit dem Abfragen erstellt und genau das zurückerhalten werden kann, was wir benötigen. Bevor dieses Cmdlet jedoch verwendet werden kann, müssen Sie das RSAT-Paket (Remote Server Administration Tools) von Microsoft herunterladen. Sobald das Paket installiert ist, sollten Sie das ActiveDirectory-Modul haben, und schon können Sie loslegen! Damit einer der folgenden Codes funktioniert, gehe ich davon aus, dass Sie sich an einem Windows-PC befinden, der mit der Domäne verbunden ist, in der sich die Nutzer befinden, die Sie suchen möchten. Nachdem das gesagt wurde, lassen Sie uns die Sache angehen!

Deaktivierte Konten in Active Directory finden

Die erste Aufgabe besteht darin, deaktivierte Konten zu finden. Um deaktivierte Konten zu finden, verwenden wir das Cmdlet Search-ADAccount. Dieses Cmdlet verfügt über einen einzelnen Parameter namens Disabled, der diese Aufgabe zu einem Kinderspiel macht. Führen Sie einfach Search-AdAccount-AccountDisabled aus und voilá, alle Ihre deaktivierten Konten werden angezeigt. Beachten Sie unten, dass ich den Parameter UsersOnly verwendet habe, da dieses Cmdlet auch deaktivierte Computerkonten finden kann.

C:> Search-ADAccount -UsersOnly -AccountDisabled -Server dc

AccountExpirationDate :
DistinguishedName : CN=Guest,CN=Users,DC=mylab,DC=local
Enabled : False
LastLogonDate :
LockedOut : False
Name : Guest
ObjectClass : user
ObjectGUID : 89cfaf2b-c6d8-4ae0-a720-e2da7d201717
PasswordExpired : False
PasswordNeverExpires : True
SamAccountName : Guest
SID : S-1-5-21-4117810001-3432493942-696130396-501
UserPrincipalName :
…………

 

Inaktive Benutzerkonten im Active Directory finden

Ein weiterer üblicher Verdächtiger, der gesäubert werden muss ist Inaktive Nutzerkonten und der ist ein weniger schwerer zu finden. „Inaktiv“ ist ein subjektiver Begriff, daher definieren wir für unsere Zwecke „inaktiv“ als älter als 30 Tage, da jeder Benutzer einen LastLogonTimeStemp-Wert hat. Im Internet werden Sie viele Artikel über die Suche nach inaktiven Nutzern finden, aber einige Leute merken nicht, dass es viel einfacher ist, als komplizierte AD LDAP-Filter zu erstellen. Der Support ist in Search-AdAccount systemeigen.

Wir können Search-AdAccount-AccountInactive -UsersOnly -Timespan 30.00:00:00 verwenden, um sofort alle AD-Benutzerkonten zu finden, die innerhalb der letzten 30 Tage nicht verwendet wurden.

Es gibt jedoch einen Vorbehalt. Microsoft aktualisiert nur alle 14 Tage das LastLogonTimestamp-Attribut, das mit dem LastLogonDate identisch ist, um Vervielfältigungsanstürme zu verhindern. Aufgrund dieser Eigenschaft von AD ist die Verwendung dieser Methode (oder auch Get-AdUser oder Get-AdComputer mit dem erweiterten Filter) nicht 100%ig genau, wenn Sie versuchen, Konten mit einer Inaktivität älter als 14 Tage zu finden. Seien Sie also gewarnt.

Schließlich müssen wir alle AD-Benutzer finden, die ein abgelaufenes Kennwort haben, die nicht mehr benötigt werden. Dieser ist knifflig, weil „aktive“ Benutzerkonten ein abgelaufenes Passwort haben könnten, wenn es gerade erst abgelaufen ist. Ich muss also nicht nur abgelaufene Passwörter finden, sondern auch, wie lange sie abgelaufen sind. Wenn sie abgelaufen sind, sagen wir vor 30 Tagen oder länger, kann ich davon ausgehen, dass diese Benutzerkonten tatsächlich inaktiv sind.

Um herauszufinden, wie lange ein Passwort abgelaufen ist, muss ich zuerst das maximale Passwortalter für die Passwortrichtlinie der Domain finden. Ich kann dies mit dem Cmdlet Get-AdDefaultDomainPasswordPolicy tun.

$MaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.Days

Als nächstes kann ich dann alle Benutzerkonten finden, die ein abgelaufenes Passwort haben, dann diese Benutzerkonten filtern, indem ich das letzte Mal sehen, an dem ihr Passwort zuletzt geändert wurde, und kann sicherstellen, dass die maximale Zeit plus 30 Tage vergangen ist (je nachdem wie alt ich das Konto einstufe).

Der Code sieht ungefähr so aus:

Search-AdAccount -PasswordExpired -UsersOnly | Where-Object {((Get-Date) – (Get-AdUser -Filter „samAccountName -eq $_.SamAccountName“).PasswordLastSet) -lt ($MaxPasswordAge + 30)}

Wenn Sie das nächste Mal nach inaktiven Einträgen suchen, sehen Sie sich Search-AdAccount an, um zu sehen, ob es bereits das tut, was Sie tun möchten. Es kann Ihnen eine Menge Zeit sparen!

Adam Bertram ist ein Microsoft Windows Cloud und Datacenter Management MVP. Er hat verschiedene Schulungen verfasst, ist regelmäßiger Mitwirkender zahlreicher Print- und Online-Publikationen und präsentiert auf verschiedenen Benutzergruppen und Konferenzen. Sie können Adam unter adamtheautomator.com oder auf Twitter unter @adbertram finden.

Nächste Schritte

Um ein erfolgreiches und effektives IT-Team aufzubauen, ist eine zentralisierte Lösung erforderlich, die zur Hauptplattform für die Servicebereitstellung wird. NinjaOne ermöglicht es IT-Teams, alle ihre Geräte unabhängig von deren Standort zu überwachen, zu verwalten, zu schützen und zu unterstützen, ohne auf komplexe lokale Infrastrukturen angewiesen zu sein.

Erfahren Sie mehr über  NinjaOne Endpoint Management, werfen Sie einen  Blick auf eine Live-Tour oder beginnen Sie Ihre kostenlose Testversion der NinjaOne-Plattform. .

Das könnte Sie auch interessieren

Sind Sie bereit, ein IT-Ninja zu werden?

Erfahren Sie, wie Sie mit NinjaOne Ihren IT-Betrieb vereinfachen können.

NinjaOne Terms & Conditions

By clicking the “I Accept” button below, you indicate your acceptance of the following legal terms as well as our Terms of Use:

  • Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms.
  • Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party.
  • Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library belonging to or under the control of any other software provider.
  • Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations.
  • Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks.
  • Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script.
  • EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).