Jump to content

PS: Ablaufdatum mit aktuellem Datum vergleichen


Direkt zur Lösung Gelöst von Kuddel071089,
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,

 

bei uns bekommen externe Mitarbeiter bei der Einrichtung immer ein Ablaufdatum und werde in eine Gruppe aufgenommen, wo alle externen MAs gelistet sind.

 

Jetzt möchte ich ein PS Skript schreiben, welches die User, sofern sie ein Mail-Adresse haben, bei X Tagen vor dem Ablaufdatum benachrichtigen.

 

Ich dachte da so an 7 Tage, 5 Tage und 1 Tag.

 

Mein Ansatz wäre jetzt ersteinmal die Mitglieder der Gruppe abzufragen.

 

Dann würde ich mir eine Schleife bauen, in der für jeden User das Ablaufdatum abgefragt wird und mit dem aktuellem Datum verglichen wird.

 

Leider hänge ich gerade ein wenig an dem Vergleich der beiden Daten.

 

 

cls
$user = Get-AdUser Test-5 -Properties * | Select AccountExpirationDate
$userdatum = $user.AccountExpirationDate
$aktuellesdatum = Get-Date
if($userdatum -gt $aktuellesdatum) {"NICHT ABGELAUFEN"}

 

Im Vergleich müsste man ja vom aktuellen Datum irgendwie X Tage abzeigen und dann vergleichen.

 

Hat jemand eine Idee ?

 

 

Vielen Dank schon einmal

Link zu diesem Kommentar
  • Beste Lösung

Habe mir die entsprechenden Tage in eine Variable geschrieben:

$aktuelles_datum = Get-Date -Format dd.MM.yyyy
$7_tage = get-date -date $(get-date).adddays(+7) -format dd.MM.yyyy
$5_tage = get-date -date $(get-date).adddays(+5) -format dd.MM.yyyy
$1_tag = get-date -date $(get-date).adddays(+1) -format dd.MM.yyyy

Jetzt muss ich nur noch das Ablaufdatum wie oben formatieren

$user = Get-ADUser Test-5 -Properties * | Select AccountExpirationDate
$user_ablaufdatum = $user.AccountExpirationDate

EDIT:

 

Okay, habs gelöst:

$user = Get-ADUser Test-5 -Properties * | Select AccountExpirationDate
$user_ablaufdatum = $user.AccountExpirationDate
$user_ablaufdatum = ($user_ablaufdatum.tostring("dd.MM.yyyy"))
bearbeitet von Kuddel071089
Link zu diesem Kommentar

Waaaah. Du willst nicht ein Datum umformatieren um zu vergleichen. Du willst zwei Datumsobjekte haben und diese (incl. dem Versatz) vergleichen.

$user_ablaufdatum = (Get-ADUser Test-5 -Properties AccountExpirationDate).AccountExpirationDate
# Damit sparst du die Variable $user
$user_ablaufdatum
Mittwoch, 13. Dezember 2017 00:00:00
(Get-Date).AddDays(-7)
Dienstag, 31. Oktober 2017 14:40:01

# Vergleich:
$user_ablaufdatum -gt (Get-Date)
True
$user_ablaufdatum -gt (Get-Date).AddDays(50)
False

Statt einem Vergleich kannst du auch die Daten voneinander abziehen und dieses Ergebniss verarbeiten (via Switch).

$user_ablaufdatum - (Get-Date)

Days              : 35
Hours             : 9
Minutes           : 13
...

($user_ablaufdatum - (Get-Date)).days
35
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...