joe2017
Goto Top

Powershell Script zum ändern des Benutzerpasswort wenn dieses in 14 Tagen abläuft

Hallo zusammen,

ich möchte in mein Logonscript (powershell) eine Abfrage einbauen welche prüft ob mein Passwort in den nächsten 14 Tagen abläuft.
Wenn ja, soll automatisch die Windows Passwort änern Abfrage kommen. Am besten nicht mittels Script Fenster sondern über die Windows eingebaute Funktion wie wenn man Strg+Alt+Entf drückt und Kennwort ändern bestätigt.

Ich weiß, dass mich Windows sowieso erinnert wenn mein Passwort abläuft. Jedoch reagieren unsere Anwender hier nicht so wirklich. Sobald das Passwort abgelaufen ist und dieses geändernt werden muss, gibt es ein Problem mit der RDP Verbindung von einem Debian Client. Ab diesem Zeitpunkt können unsere Anwender sich nicht mehr anmelden.
Daher würde ich das gerne mittels Logon Script abfragen und unsere Anwender einfach 14 Tage vorher zwingen.

Mit net user $env:USERNAME kann ich mir die Information anzeigen. Jedoch benötige ich die Information in einer Variable, damit ich diese mit dem aktuellen Datum vergleichen kann. Get-aduser kann ich nicht verwenden, da diese Module nicht bei allen Clients aktiv sind. Daher wäre der net user Befehl der einfachere Weg für mich.

Hat jemand eine Idee wie ich das expire date in eine Variable bekomme?

Content-Key: 625052

Url: https://administrator.de/contentid/625052

Printed on: May 5, 2024 at 02:05 o'clock

Member: Looser27
Looser27 Nov 22, 2020 at 14:33:50 (UTC)
Goto Top
Vielleicht hilft Dir das hier weiter:

Titel
Member: primary
primary Nov 23, 2020 at 05:52:13 (UTC)
Goto Top
Moin,

schau dir mal folgenden Befehl genauer an:

Net user USERNAME /domain

Sollte dir weiterhelfen.

Gruß
Member: joe2017
joe2017 Nov 23, 2020 at 08:48:35 (UTC)
Goto Top
Moin primary,

ja diesen Befehl hatte ich ja oben bereits genannt.
Natürlich bekomme ich hier die Informationen aufgelistet. Jedoch benötige ich das "Kennwort läuft ab" Datum in einer Variable.
Kann man das mit select irgendwie separat auswählen?

get-aduser kann ich so ohne weiteres nicht verwenden da ein Import des ActiveDirectory Modul nicht möglich ist. Die RSAT Tools möchte ich auch nicht überall installieren.

Der Befehl mit einem select für exire date würde mir ausreichen.
Net user USERNAME /domain
Member: joe2017
joe2017 Nov 23, 2020 at 08:52:04 (UTC)
Goto Top
Habe es gerade gefunden...
Thema select-string face-smile
Member: joe2017
joe2017 Nov 23, 2020 at 09:49:43 (UTC)
Goto Top
Anbei meine fertige Lösung:

$UserExpireDate=(((net user $env:USERNAME /domain | Select-String "Kennwort l") -split " +")[3])  
$DatDate = [datetime]::ParseExact($UserExpireDate,"yyyy-MM-dd",$null)  
$diffDays = (($DatDate)-((get-date))).days

if ($DiffDays -lt 21) 
{ 
    [System.Windows.Forms.MessageBox]::Show("Ihr Windows Kennwort läuft in wenigen Tagen ab. Bitte ändern Sie Ihr Kennwort umgehend.  

Drücken Sie  Strg+Alt+Entf  und wählen  <Kennwort ändern>  aus.","Windows Information",[System.Windows.Forms.MessageBoxButtons]::OK,[System.Windows.Forms.MessageBoxIcon]::Warning)  
} 

Das Ganze einfach ins Windows Logon Script kopieren und fertig.