Jump to content

Leztes Logon Datum per PS auswerten


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich bin gerade dabei ein Skript zu schreiben, welches unser AD von Altlasten befreien soll.

 

Ziel ist es, alle User zu deaktivieren, die sich länger als 180 Tage nich am System angemeldet haben.

 

Dazu habe ich folgendes Skript geschrieben, wo ich leider am Vergleich scheitere

$tage = 180

#Abfrage aller aktiven User
$aktive_user = Get-ADUser -Filter {enabled -eq $true} -SearchBase "OU=****,DC=****-ad,DC=local" -Properties * | Sort

#Ablaufdatum von vor X Tagen definieren
$ablaufdatum = (get-date -date ((get-date).AddDays(-$tage)) -Format "dd.MM.yyyy");

"Heute vor 180 Tagen:  $ablaufdatum"
""

#Abfrage der letzten Anmeldung jedes Users an den drei DCs
foreach($user in $aktive_user) {$letzte_anmeldung_dc1 = Get-ADUser $user.SamAccountName -Properties * -Server DC1 | Select LastLogon$letzte_anmeldung_dc2 = Get-ADUser $user.SamAccountName -Properties * -Server DC2 | Select LastLogon$letzte_anmeldung_dc3 = Get-ADUser $user.SamAccountName -Properties * -Server DC3 | Select LastLogon#Datum formatieren fü den Vergleich$letzte_anmeldung_dc1 = [dateTime]::FromFileTime($letzte_anmeldung_dc1.LastLogon).ToString('dd.MM.yyyy')$letzte_anmeldung_dc2 = [dateTime]::FromFileTime($letzte_anmeldung_dc2.LastLogon).ToString('dd.MM.yyyy')$letzte_anmeldung_dc3 = [dateTime]::FromFileTime($letzte_anmeldung_dc3.LastLogon).ToString('dd.MM.yyyy')#Check ob der User sich länger als X Tage nicht angemeldet hatif($letzte_anmeldung_dc1 -lt $ablaufdatum -and $letzte_anmeldung_dc2 -lt $ablaufdatum -lt $letzte_anmeldung_dc3 -gt $ablaufdatum)) {

"Der User $($user.SamAccountName) ist abgelaufen / Letzte Anmeldungen: DC1: $letzte_anmeldung_dc1, DC2: $letzte_anmeldung_dc2; DC3: $letzte_anmeldung_dc3"

}



}

 

Irgendwie wird beim Vergleich nur der erste Tag im Datum verglichen.

 

 

Vielen Dank schon einmal

bearbeitet von Kuddel071089
Link zu diesem Kommentar

Moin,

 

nicht selbst bauen, das Thema ist seit Jahren abschließend gelöst.

 

[Leichenzählung in Active Directory | faq-o-matic.net]

https://www.faq-o-matic.net/2011/08/29/leichenzhlung-in-active-directory/

 

Gruß, Nils

Hallo Nils,

 

vielen Dank für die schnelle Antwort.

 

Mit dem PS Skript wollte ich, wenn denn alles klappt, den Usern ein Ablaufdatum setzten bzw. die ganz alten direkt deaktivieren.

 

Wenn ich jetzt eine Auswertung mit oldcmp machen, müsste ich dann also die Daten verarbeiten richtig?

Link zu diesem Kommentar

Moin,

 

ich verstehe nicht, was du vorhast. Ablaufdatum?

Deaktivieren kann OldCmp direkt.

 

Falls du unbedingt was mit PowerShell bauen willst, dann nimm das AD-Feld lastLogonTimestamp. Das ist für Vergleiche der hier erwünschten Art gedacht und wird üer alle DCs repliziert, du musst also nicht alle DCs auslesen. Den Wert lastLogon und den Vergleich über die DCs braucht man nur, wenn man aktuelle Daten benötigt (letzte Anmeldung in den letzten wenigen Tagen), aber die brauchst du hier ja gerade nicht.

 

Gruß, Nils

Link zu diesem Kommentar

Moin,

 

ich verstehe nicht, was du vorhast. Ablaufdatum?

Deaktivieren kann OldCmp direkt.

 

Falls du unbedingt was mit PowerShell bauen willst, dann nimm das AD-Feld lastLogonTimestamp. Das ist für Vergleiche der hier erwünschten Art gedacht und wird üer alle DCs repliziert, du musst also nicht alle DCs auslesen. Den Wert lastLogon und den Vergleich über die DCs braucht man nur, wenn man aktuelle Daten benötigt (letzte Anmeldung in den letzten wenigen Tagen), aber die brauchst du hier ja gerade nicht.

 

Gruß, Nils

 

Was ich vorhabe:

 

Wenn sich ein User länger als 180 Tage nicht angemeldet hat, wird sich User per Ablaufdatum gesperrt. Falls er jetzt nach z.B. 200 Tagen aus einer langen Krankheit zurück kommt, wird der User wieder freigeschaltet.

 

Wenn sich ein User länger als z.B. 360 Tage nicht angemeldet hat. wird er deaktiviert und alle Gruppenmitgliedschaften entzogen...

 

Ich werde es dann mal mit LogonTimeStamp versuchen....

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...