Jump to content
Kuddel071089

PS: Ablaufdatum mit aktuellem Datum vergleichen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

×