Jump to content

Passwort verlängern bei allen aktiven AD Usern - Skript


Recommended Posts

Hi,

 

ich würde gerne bei allen aktiven AD Usern das Passwort verlängern.

 

Wie kann ich die Schleifen machen - er gibt mir folgende Fehlermeldung zurück

 

Danke! Q

 

Skriptversuch:

$Username = (get-aduser -ldapfilter "(&(&(objectCategory=user)(userAccountControl=512)))" | where-object -property enabled -eq truepowershell-ad-infos-01)
$User = Get-ADUser $Username -Properties pwdlastset
$User.pwdlastset = 0
Set-ADUser -Instance $User
$User.pwdlastset = -1
Set-ADUser -Instance $User





Fehlermeldung:



Get-ADUser : "System.Object[]" kann nicht in den Typ "Microsoft.ActiveDirectory.Management.ADUser" konvertiert werden, der 
für den Parameter "Identity" erforderlich ist. Die angegebene Methode wird nicht unterstützt.
In Zeile:2 Zeichen:20
+ $User = Get-ADUser $Username -Properties pwdlastset
+                    ~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-ADUser], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.GetADUser
 
Die Eigenschaft "pwdlastset" wurde für dieses Objekt nicht gefunden. Vergewissern Sie sich, dass die Eigenschaft vorhanden 
ist und festgelegt werden kann.
In Zeile:3 Zeichen:1
+ $User.pwdlastset = 0
+ ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound
 
Set-ADUser : Das Argument für den Parameter "Instance" kann nicht überprüft werden. Das Argument ist NULL. Geben Sie einen 
gültigen Wert für das Argument an, und führen Sie den Befehl erneut aus.
In Zeile:4 Zeichen:22
+ Set-ADUser -Instance $User
+                      ~~~~~
    + CategoryInfo          : InvalidData: (:) [Set-ADUser], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADUser
 
Die Eigenschaft "pwdlastset" wurde für dieses Objekt nicht gefunden. Vergewissern Sie sich, dass die Eigenschaft vorhanden 
ist und festgelegt werden kann.
In Zeile:5 Zeichen:1
+ $User.pwdlastset = -1
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyNotFound
 
Set-ADUser : Das Argument für den Parameter "Instance" kann nicht überprüft werden. Das Argument ist NULL. Geben Sie einen 
gültigen Wert für das Argument an, und führen Sie den Befehl erneut aus.
In Zeile:6 Zeichen:22
+ Set-ADUser -Instance $User
+                      ~~~~~
    + CategoryInfo          : InvalidData: (:) [Set-ADUser], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADUser

 

Link to comment

Das wirst du nur über „User muss Kennwort bei nächster Anmeldung ändern“ aktivieren = Passwort ist 0h alt und wieder deaktivieren regeln können. Geht sicher auch per Skript, aber afaik  nicht mit dem Attribut, welches du da oben nutzt.

 

achso: Code bitte auch so formatieren. Liest sich besser.

Grad mal nachgeschaut:

 

Set-Aduser -ChangePasswordAtLogon $true


und danach nochmal auf $false

 

bye

norbert

Edited by NorbertFe
Link to comment

wo ich gerade so mit dir rum philosophiere, kann ich nicht einfach auch die Tage zum Passwort ändern hochsetzen? Das hat doch den selben Effekt, oder?

 

Aktuell laufen über die Feiertage die Passwörter aus, das würden wir gerne vermeiden, da a nicht alle User da sind und b auch nicht alle in der "Lage" sind dies ohne Hilfestellung zu ändern 

 

Danke für den Nachtsupport! 

Edited by Quirk18231
Link to comment

Moin,

 

vielleicht auch einfach darüber nachdenken, die Kennwort nicht mehr regelmäßig ablaufen bzw. ändern zu lassen. Der Artikel ist jetzt auch fast schon fünf Jahre alt: Passwörter: BSI verabschiedet sich vom präventiven, regelmäßigen Passwort-Wechsel | heise online

 

Wenn es um Sicherheit geht, wäre eine MFA wohl zu bevorzugen. Möglicherweise zusätzlich auch eine "Überwachung" der Kennwörter mit Tools wie bspw. "Microsoft Entra Password Protection" oder auch "Specops Password Policy" .

 

Gruß

Jan

  • Like 1
Link to comment

Wenn Pass-the-Hash in der Umgebung möglich ist, vielleicht lieber nicht darüber nachdenken. Diese Guidance, der sich inzwischen auch NIST angeschlossen hat, scheint nur eine Welt zu kennen, wo ein potentieller Angreifer vor einer Maske sitzt und da Passwörter im Klartext eingibt... Da würde ich sogar mitgehen :-) 

Edited by cj_berlin
Link to comment

Dann sind wir aber "fast" an dem Punkt, dass auch der regelmäßige Kennwortwechsel nicht hilft, sofern im "nicht Idealfall" SMB signing nicht erzwungen wird und mDNS / LLMNR, etc. zutrifft. (Was in der Praxis leider immer wieder zu sehen ist. :/ Manchmal bin ich doch froh, Umgebungen zu finden, wo es mehr als die DDP + DDCP gibt. :))

 

Aber: Verstanden. Danke! :-)

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...