Jump to content

Passwort verlängern bei allen aktiven AD Usern - Skript


Empfohlene Beiträge

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 zu diesem Kommentar

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

bearbeitet von NorbertFe
Link zu diesem Kommentar

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! 

bearbeitet von Quirk18231
Link zu diesem Kommentar

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

Link zu diesem Kommentar

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 :-) 

bearbeitet von cj_berlin
Link zu diesem Kommentar

Evtl. etwas zu vereinfacht: Bei PtH gibt es einen Man in the Middle und die Kommunikation ist unverschlüsselt und/oder unsigniert oder der Angreifer ist bereits auf einem Device authentifiziert und sammelten die lokal liegenden Hashes, die es im Idealfall nicht gibt. Oder bin ich hier zu blauäugig / unwissend / realitätsfern?

Link zu diesem Kommentar

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 zu diesem Kommentar

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...