diff --git a/files/Aufgabe.txt b/files/Aufgabe.txt
new file mode 100644
index 0000000..e28cd3d
--- /dev/null
+++ b/files/Aufgabe.txt
@@ -0,0 +1,3 @@
+C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
+
+- command "C:\scripts\password-reminder.v1.ps1
\ No newline at end of file
diff --git a/files/CPR - Kennwortablaufbenachrichtigung-für-alle.xml b/files/CPR - Kennwortablaufbenachrichtigung-für-alle.xml
new file mode 100644
index 0000000..e060129
Binary files /dev/null and b/files/CPR - Kennwortablaufbenachrichtigung-für-alle.xml differ
diff --git a/password-reminder.v1-functional.ps1 b/password-reminder.v1-functional.ps1
new file mode 100644
index 0000000..9a9a674
--- /dev/null
+++ b/password-reminder.v1-functional.ps1
@@ -0,0 +1,80 @@
+# Active Directory Passwort Policy:
+$MaxPasswordAge = 365 # Max Password age in days
+$WarningLevel = 364 # Warn Users XX Days before Password expires
+
+# Mail Settings:
+$SMTPServer = "smtp.media-techport.int"
+$FromName = "Media-Techport.DE | Passwort Erinnerung"
+$FromEmail = "noreply@media-techport.de"
+$Subject = "Dein Passwort muss geändert werden!"
+
+# Funktion zur expliziten Zeichencodierung
+function Encode-StringToUTF8 ($inputString) {
+ $utf8Bytes = [System.Text.Encoding]::UTF8.GetBytes($inputString)
+ return [System.Text.Encoding]::UTF8.GetString($utf8Bytes)
+}
+
+# Message Template (Mailbody)
+function New-MailBody ($GivenName, $Surname, $DaysBeforePasswordchange, $PasswordExpireDate) {
+ $Mailbody = @"
+
+
+
+
+ Hallo $($GivenName) $($Surname),
+
+ Du erhälst diese E-Mail, da du ein Benutzerkonto auf Media-Techport.DE hast.
+
+ Dein Passwort bei media-techport.de endet am $($PasswordExpireDate).
+
+ Du hast $($DaysBeforePasswordchange) Tage Zeit dein Kennwort zu ändern.
+
+ Wenn du der Passwortänderung nicht nachkommst, wirst du dich bei deinem Administrator melden müssen, damit das Kennwort gesetzt werden kann.
+
+
+ Freundliche Grüße
+
+ Media-Techport.DE
+
+"@
+ return Encode-StringToUTF8 $Mailbody
+}
+
+# Import all active AD-Users
+$AllADUsers = Get-ADUser -Filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties PasswordLastSet, mail
+
+# Calculate expiring passwords and store them in an object
+$today = Get-Date
+$ExpirePasswordList = @()
+foreach ($ADUser in $AllADUsers) {
+ $GivenName = $ADUser.GivenName
+ $Surname = $ADUser.Surname
+ $MailAddress = $ADUser.mail
+
+ $PasswordLastSet = $ADUser.PasswordLastSet
+ $PasswordExpireDate = $PasswordLastSet.AddDays(+$MaxPasswordAge)
+
+ $DaysBeforePasswordchange = ($PasswordExpireDate - $today).Days
+ if ($DaysBeforePasswordchange -le $WarningLevel) {
+ $ExpirePasswordList += New-Object PSObject -property @{Givenname=$Givenname;Surname=$Surname;MailAddress=$MailAddress;DaysBeforePasswordchange=$DaysBeforePasswordchange;PasswordExpireDate=$PasswordExpireDate}
+ }
+}
+
+# Filter Users with Mailaddresses
+$ExpirePasswordList = $ExpirePasswordList | Where-Object {$_.mailaddress}
+
+# Send mail to every user with expired password
+foreach ($ADUser in $ExpirePasswordList) {
+ $GivenName = $ADUser.GivenName
+ $Surname = $ADUser.Surname
+ $MailAddress = $ADUser.MailAddress
+ $DaysBeforePasswordchange = $ADUser.DaysBeforePasswordchange
+ $PasswordExpireDate = $ADUser.PasswordExpireDate
+
+ $Body = New-MailBody $GivenName $Surname $DaysBeforePasswordchange $PasswordExpireDate
+
+ # Erstelle den "From" Header mit Sendername und E-Mail-Adresse
+ $FromHeader = "{0} <{1}>" -f $FromName, $FromEmail
+
+ Send-MailMessage -SmtpServer $SMTPServer -To $MailAddress -From $FromHeader -Body $Body -BodyAsHtml -Subject $Subject -Encoding ([System.Text.Encoding]::UTF8)
+}
\ No newline at end of file
diff --git a/password-reminder.v1.ps1 b/password-reminder.v1.ps1
new file mode 100644
index 0000000..52590b0
--- /dev/null
+++ b/password-reminder.v1.ps1
@@ -0,0 +1,91 @@
+# Script Name: password-reminder.v1.ps1
+# Beschreibung: Schickt dem Nutzer eine Kennwortablauferinnerung
+# Aufruf: -
+# Autor: Patrick Asmus
+# Web: https://www.media-techport.de
+# Git-Reposit.: https://git.media-techport.de/scriptos/private-script-collection.git
+# Version: 2.1
+# Datum: 21.10.2023
+# Modifikation: logo verschoben
+#####################################################
+
+# Active Directory Passwort Policy:
+$MaxPasswordAge = 365 # Max Password age in days
+$WarningLevel = 14 # Warn Users XX Days before Password expires
+
+# Mail Settings:
+$SMTPServer = "smtp.media-techport.int"
+$FromName = "Media-Techport.DE | Account Service"
+$FromEmail = "noreply@media-techport.de"
+$Subject = "Wichtige Mitteilung - Dein Kennwort läuft bald ab"
+
+# Funktion zur expliziten Zeichencodierung
+function Encode-StringToUTF8 ($inputString) {
+ $utf8Bytes = [System.Text.Encoding]::UTF8.GetBytes($inputString)
+ return [System.Text.Encoding]::UTF8.GetString($utf8Bytes)
+}
+
+# Funktion zum Erstellen des E-Mail-Texts (Mailbody)
+function New-MailBody ($GivenName, $Surname, $DaysBeforePasswordchange, $PasswordExpireDate, $PasswordLastSet) {
+ $Mailbody = @"
+
+
+
Hallo $($GivenName),
+
Ich möchte dich darüber informieren, dass dein aktuelles Kennwort in Kürze abläuft. Die Sicherheit deiner Daten ist mir ein wichtiges Anliegen und das regelmäßige Aktualisieren deines Kennworts ist ein wesentlicher Schutzmechanismus.
+
Dein Account ist mit folgenden Services verknüpft:
Bitte beachte folgende Informationen zu deinem Account:
+
- Dein Kennwort läuft am $($PasswordExpireDate) ab. - Gemäß meiner Sicherheitsrichtlinien müssen Kennwörter alle 365 Tage geändert werden. - Dein Kennwort wurde zuletzt am $($PasswordLastSet) aktualisiert. - Wenn du dein Kennwort nicht änderst, wird es in 14 Tagen ablaufen und dein Benutzer deaktiviert. - Wenn dein Account einmal deaktiviert ist, kannst du diesen nur noch über mich wieder aktivieren.
Das Kennwort darf nicht den Kontonamen des Benutzers oder mehr als zwei Zeichen enthalten, die nacheinander im vollständigen Namen des Benutzers vorkommen. Das Kennwort muss mindestens acht Zeichen lang sein. Das Kennwort muss Zeichen aus drei der folgenden Kategorien enthalten: Großbuchstaben (A bis Z) Kleinbuchstaben (a bis z) Zahlen zur Basis 10 (0 bis 9) Nicht alphabetische Zeichen (zum Beispiel !, $, #, %) Die Komplexitätsvoraussetzungen werden erzwungen, wenn Kennwörter geändert oder erstellt werden.
+
Bitte antworte nicht auf diese E-Mail. Wenn du Unterstützung benötigst oder Fragen hast, zögere nicht dich über mein Helpdesk oder per Mail an mich zu wenden.