Denkfehler bei Kennwortskript
Hi,
ich habe mich mal wieder an einem Skript in PowerShell geübt, wobei ich wohl einen Denkfehler in dem Skript habe.
Die Ausgabe, wann das Kennwort abläuft scheint korrekt zu sein, allerdings erhalte ich die Meldung des bald ablaufenden Kennworts leider viel zu früh. Das Kennwort läuft im November ab und ich werde nun schon gewarnt.
Wo habe ich hier den Denkfehler sitzen?
Danke schon mal für eure Hilfe.
Lg Pago
ich habe mich mal wieder an einem Skript in PowerShell geübt, wobei ich wohl einen Denkfehler in dem Skript habe.
Die Ausgabe, wann das Kennwort abläuft scheint korrekt zu sein, allerdings erhalte ich die Meldung des bald ablaufenden Kennworts leider viel zu früh. Das Kennwort läuft im November ab und ich werde nun schon gewarnt.
Wo habe ich hier den Denkfehler sitzen?
Danke schon mal für eure Hilfe.
Lg Pago
$EntryDate = ""
$Entry = ""
$Date = ""
$Days = ""
$Users = ""
#Import Active Directory Module
Import-Module ActiveDirectory
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
#Tage bis zum Kennwortablauf
$Days="14"
#Einstellungen
$Date=Get-Date -Format dd.MM.yyyy-HH:mm:ss((Get-Date).adddays($Days))
$Users=Get-ADUser $Env:USERNAME -Properties DisplayName, msDS-UserPasswordExpiryTimeComputed | Where-Object {$_.DisplayName -ne $null} | Select DisplayName,@{Name="ExpiryDate";Expression={([datetime]::fromfiletime($_."msDS-UserPasswordExpiryTimeComputed")).DateTime}}
#Magic
foreach ($Entry in $Users) {
$EntryDate = Get-date($Entry.ExpiryDate) -Format dd.MM.yyyy
$EntryTime = Get-date($Entry.ExpiryDate) -Format HH:mm:ss
if ($EntryDate -lt $Date) {
# Ausgabe der Warnmeldung 14 Tage vor Kennwortablauf, dass das Kennwort geändert werden soll. Und Abfrage ob bei der nächsten Anmeldung das Kennwort geändert werden soll!
[System.Windows.Forms.MessageBox]::Show("Achtung $Date, Ihr ($Env:USERNAME) Kennwort läuft am $EntryDate um $EntryTime Uhr ab. Möchten Sie Ihr Kennwort bei der nächsten Anmeldung ändern?" , "WARNUNG KENNWORT LÄUFT BALD AB!!!",3, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
}
#Bei Antwort YES wird ein Flag gesetzt, welches bei der nächsten Anmeldung eine Kennwortänderung verlangt.
If($Result -eq "Yes")
{
Set-ADUser $_ -ChangePasswordAtLogon $true
}
#Bei der Antwort NO wird abgebrochen und nichts unternommen
elseif ($Result -eq "No")
{
break
}
#Bei der Antwort ABBRECHEN wird abgebrochen und nichts unternommen
else
{
break
}
else
{
# Wenn das Kennwort noch lange genug gültig ist, passiert hier nichts!
}
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 283015
Url: https://administrator.de/contentid/283015
Ausgedruckt am: 24.11.2024 um 13:11 Uhr
1 Kommentar
Moin,
das liegt an deinen sehr sehr komischen Datumsangaben, vor allem in Zeile 16
Hier findest du ein Skript das das macht was du willst
Gruß grexit
das liegt an deinen sehr sehr komischen Datumsangaben, vor allem in Zeile 16
Hier findest du ein Skript das das macht was du willst
Gruß grexit