Search-ADAccount :: Inaktive, deaktivierte oder abgelaufene Konten finden

Search-ADAccount :: Inaktive, deaktivierte oder abgelaufene Konten finden

Das Search-ADAccountCmdlet verfügt über die Schalter -AccountDisabled, -AccountExpiredund -AccountInactive; die Ergebnisse müssen sich weder gegenseitig ausschließen noch einschließen.

Ein Konto, das gestern deaktiviert wurde, aber erst seit einer Woche inaktiv ist, wird möglicherweise nicht als deaktiviert angezeigt, wenn unser Zeitraum -90 Tage beträgt. Umgekehrt wird ein Konto, das noch nicht deaktiviert wurde, aber seit einiger Zeit nicht mehr verwendet wurde, als inaktiv, aber nicht deaktiviert angezeigt.

Gibt es eine Möglichkeit, mit diesen Schaltern alle deaktivierten, abgelaufenen und inaktiven Konten aufzulisten OR, oder muss ich drei Abfragen ausführen und dann eine ausführen, | select * -uniqueum Duplikate zu entfernen?

Antwort1

So würde ich es machen.

Get-ADUser -Filter * -Properties Enabled, AccountExpirationDate, LastLogonDate | ? { `
($_.Enabled -EQ $False) -OR `
($_.AccountExpirationDate -NE $NULL -AND $_.AccountExpirationDate -LT (Get-Date)) -OR `
($_.LastLogonDate -NE $NULL -AND $_.LastLogonDate -LT (Get-Date).AddDays(-90)) }

Ein Aufruf von AD ruft nur die Eigenschaften ab, die wir benötigen. Schließt alle Benutzer ein, die entweder deaktiviert, abgelaufen (eine ungewöhnliche Einstellung) oder „inaktiv“ sind.

Beachten Sie, dass LastLogonDate null ist, wenn das Benutzerkonto erstellt wurde, der Benutzer sich aber nie angemeldet hat.

Das AccountExpirationDate ist meistens auch null, da Administratoren diese Einstellung nicht oft verwenden. Sie müssen überprüfen, dass es nicht null ist, bevor sinnvolle Vergleiche mit Datumsangaben durchgeführt werden können.

Wenn Sie Benutzerkonten einschließen möchten, die sich nie angemeldet haben, entfernen Sie einfach das Häkchen für $Null bei LastLogonDate. Das bedeutet allerdings, dass Ihnen Konten angezeigt werden, die möglicherweise gestern erstellt wurden und sich einfach noch nicht anmelden konnten. Um dies auszugleichen, fügen Sie in diesem Fall ein Häkchen hinzu, um WhenCreated -LT (Get-Date).AddDays(-90)sicherzustellen, dass Sie nur Konten erhalten, die vor über 90 Tagen erstellt, aber nie angemeldet wurden.

Und um Ihre Frage zum Search-ADAccountCmdlet tatsächlich zu beantworten: Nein, verwenden Sie ein anderes Cmdlet, diese Schalter schließen sich gegenseitig aus.

verwandte Informationen