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-ID: 304417

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

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

emeriks
Lösung emeriks 13.05.2016 um 08:36:57 Uhr
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.
Mahagon
Mahagon 13.05.2016 um 08:57:23 Uhr
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
emeriks
emeriks 13.05.2016 um 09:01:31 Uhr
Goto Top
Oder meinst Du vielleicht das Konto-Ablaufdatum?
Mahagon
Mahagon 13.05.2016 um 09:05:02 Uhr
Goto Top
Nein das Passwort soll Nachts ablaufen, damit man es bei der Anmeldung und nicht während des Arbeitens ändern muss
TlBERlUS
TlBERlUS 13.05.2016 um 10:58:03 Uhr
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.
DerWoWusste
DerWoWusste 13.05.2016 aktualisiert um 11:50:17 Uhr
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.
Mahagon
Mahagon 13.05.2016 um 13:04:00 Uhr
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/
DerWoWusste
Lösung DerWoWusste 13.05.2016 aktualisiert um 13:56:20 Uhr
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.