Commit 83b6566a authored by Michael Kleger's avatar Michael Kleger

Initial Version

parent fd8787c0
<#
Kennwort Info E-Mail
Informaitons E-Mail an den Active Directory Benutzer x Tage voraus wen das Passwort ausläuft.
@link https://www.onesystems.ch
@copyright OneSystems GmbH 2009-2019
@author Michael Kleger <michael.kleger@onesystems.ch>
#>
#-----------------------------------------------------------------------------------------------------------------------------------------------
# Module
#-----------------------------------------------------------------------------------------------------------------------------------------------
Import-Module ActiveDirectory
#-----------------------------------------------------------------------------------------------------------------------------------------------
# Parameter
#-----------------------------------------------------------------------------------------------------------------------------------------------
$ADBind = "OU=Users,DC=server,DC=ch"
$SMTPServer = ""
$SMTPPort = "25"
$SMTPTLS = $true
$SMTPBenutzer = ""
$SMTPPasswort = ""
$Zeitraum = "14"
#-----------------------------------------------------------------------------------------------------------------------------------------------
# Script
#-----------------------------------------------------------------------------------------------------------------------------------------------
Get-ADUser -filter * -properties PasswordLastSet,EmailAddress,GivenName,Surname -SearchBase $ADBind -SearchScope Subtree | foreach {
$PasswortDatum = $_.PasswordLastSet
$PasswortMaxAlter = $null
$PasswortMaxAlter = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
$AblaufDatum = $PasswortDatum + $PasswortMaxAlter
$Laufzeit = $AblaufDatum - (Get-Date)
$AnzahlTage = $Laufzeit.days
$Vorname = $_.GivenName
$Nachname = $_.Surname
$MailAdresse = $_.EmailAddress
if ($AnzahlTage -lt $Zeitraum -and $AnzahlTage -gt 0) {
Write-Host $Vorname $Nachname $MailAdresse
$MailText = "
Sehr geehrte(r) $UserName $Surname,
Ihr Kennwort wird in $AnzahlTage Tagen auslaufen, bitte ändern Sie das Kennwort bei der nächsten Gelegenheit oder wenden Sie sich an Ihre IT-Abteilung.
Mit freundlichen Grüssen
Ihre IT-Abteilung"
$SMTPBetreff = "IT Information: Ihr Kennwort wird in $AnzahlTage Tagen auslaufen"
$SMTPNachricht = New-Object System.Net.Mail.MailMessage($SMTPBenutzer,$MailAdresse,$SMTPBetreff,$MailText)
$SMTPClient = New-Object Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
$SMTPClient.EnableSsl = $SMTPTLS
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($SMTPBenutzer, $SMTPPasswort);
$SMTPClient.Send($SMTPNachricht)
}
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment