mahagon
Goto Top

Kennwörter nachts ablaufen lassen

Schönen guten Morgen,

kennt jemand von euch eine Möglichkeit seine Passwörter in der AD in der Nacht ablaufen zu lassen?

Per Powershell müsste es denke ich machbar sein, gibt es vielleicht eine "schönere" Art un Weise. Also z.B. per GPO?
Habe noch keine Richtlinie dazu gefunden.

Problem ist beim Ablauf während der Arbeitszeit, dass einige Programme über RemoteApp laufen.
Sobald ich mein Passwort ändere, wirft mich das Programm mit Fehlern zu.

Content-Key: 304417

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

Printed on: April 26, 2024 at 20:04 o'clock

Member: emeriks
Solution emeriks May 13, 2016 at 06:36:57 (UTC)
Goto Top
Hi,
nein gibt es nicht.
Du kannst mit PSO das max. Kennwortalter zwar auf die Sekunde angeben, das Zeitfenster in welchem es gültig ist (wann er mit dem Zählen anfangen soll) aber nicht festlegen. Der Zähler beginnt mit den Ändern des Passworts.
Es bleibt also nur die Variante mit dem Script.

Oder geht es Dir darum, dass sich niemand nachts anmelden kann? Dafür gibt es dann die erlaubten Anmeldezeiten. Plus GPO, dass ein Benutzer nach Ablauf der Anmeldezeit automatisch abgemeldet wird.
Meinst Du sowas?

E.
Member: Mahagon
Mahagon May 13, 2016 at 06:57:23 (UTC)
Goto Top
Nene es geht mir nur um Die Uhrzeit des Ablaufs.
Aber dann schaue ich mal, was sich per PS Script machen lässt.
Dürfte mit dem AD Modul ja keine große Sache sein.

Danke face-smile
Member: emeriks
emeriks May 13, 2016 at 07:01:31 (UTC)
Goto Top
Oder meinst Du vielleicht das Konto-Ablaufdatum?
Member: Mahagon
Mahagon May 13, 2016 at 07:05:02 (UTC)
Goto Top
Nein das Passwort soll Nachts ablaufen, damit man es bei der Anmeldung und nicht während des Arbeitens ändern muss
Member: TlBERlUS
TlBERlUS May 13, 2016 at 08:58:03 (UTC)
Goto Top
Zitat von @Mahagon:

Nein das Passwort soll Nachts ablaufen, damit man es bei der Anmeldung und nicht während des Arbeitens ändern muss
Wenn ich dich nicht falsch verstehe, müsste es doch reichen, wenn du per Skript die Option "Passwort bei nächster Anmeldung ändern"setzt.
Member: DerWoWusste
DerWoWusste May 13, 2016 updated at 09:50:17 (UTC)
Goto Top
Hi.

Wenn Du die PS Syntax nicht hinbekommst: Nimm Dir eine Userliste (erstellbar mit Powershell face-wink )
und lass ein
for /f %a in (liste.txt) do net user %a /LOGONPASSWORDCHG:YES /domain
darauf los. Natürlich vom Scheduler auf dem DC zu einem Zeitpunkt Deiner Wahl, ausgeführt vom Systemkonto.
Member: Mahagon
Mahagon May 13, 2016 at 11:04:00 (UTC)
Goto Top
Habe es mit AutoIt hinbekomen ;)

#include "udf\ad.au3" 
#include <Date.au3>
#include <File.au3>

Opt("TrayAutoPause", 0)  
Opt("TrayIconHide", 1)  

_AD_Open()
If FileExists(@ScriptDir & "\lastRun.log") Then FileDelete(@ScriptDir & "\lastRun.log")  
Local $hFile = FileOpen(@ScriptDir & "\Error.log", 1)  
Local $hFile2 = FileOpen(@ScriptDir & "\lastRun.log", 1)  
_SetPasswordsExpired()
FileClose($hFile)
FileClose($hFile2)
Func _SetPasswordsExpired($showDisabledUsers = 0)
	$aADUsers = _AD_GetObjectsInOU("", "(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))", 2, "distinguishedName")  
	If @error Then Return SetError(-1, @error, 0)
	For $i = 1 To $aADUsers
		$aPasswordInfo = _AD_GetPasswordInfo($aADUsers[$i])
		If Not @error Then
			If _DateDiff("D", $aPasswordInfo[9], _NowCalc()) > -1 Then  
				_AD_SetPasswordExpire($aADUsers[$i])
				If @error Then
					_FileWriteLog($hFile, $aADUsers[$i] & ": ErrorCode: " & @error)  
				Else
					_FileWriteLog($hFile2, $aADUsers[$i] & ": Kennwort läuft ab")  
				EndIf
			EndIf
		EndIf
	Next

EndFunc   ;==>_SetPasswordsExpired

Die AD UDF gibts hier: https://www.autoitscript.com/forum/topic/106163-active-directory-udf/
Member: DerWoWusste
Solution DerWoWusste May 13, 2016 updated at 11:56:20 (UTC)
Goto Top
Für's nächste Mal kürzer:

Get-ADUser -Filter * -SearchBase "OU=DeineUserOU,DC=DeineDom,DC=DeinDomsuffix_zB._local" | Set-ADUser -ChangePasswordAtLogon:$True  

Sorry, hätte ich es aus dem Kopf gewusst, hätte ich es früher geschrieben.