Wie überprüfe ich alle AD-Benutzer auf ein "leeres" Passwort?

7

Wie kann ich alle Benutzer in der AD auf ein leeres Kennwort überprüfen? UND filtern sie ....

Ich weiß, wie man alle Benutzer überprüft, aber ich kann sie nicht filtern ...

Folgendes habe ich:

Get-ADUser -Filter * -SearchBase "OU=SomeOU,DC=mydomain,DC=forest,DC=local" | ForEach {
   $_.SamAccountName
   (new-object directoryservices.directoryentry "", ("domain\" + $_.SamAccountName), "").psbase.name -ne $null
   Write-Host ""
}

Jetzt möchte ich wissen, wie man die Ausgabe filtert ...

Max Havelareas
quelle

Antworten:

6

Sie können Benutzer finden, bei denen PasswordLastSet null ist:

Get-ADUser -Filter * -SearchBase "OU=SomeOU,DC=mydomain,DC=forest,DC=local" -Properties PasswordLastSet | where { $_.PasswordLastSet -eq $null}
Swisstone
quelle
Schließt dies Benutzer aus, bei deren Erstellung ein ursprüngliches Kennwort festgelegt, dieses jedoch nie geändert wurde (z. B. weil sie sich noch nicht angemeldet haben)?
Maz
Ja, wenn Sie einen Benutzer erstellen und ein anfängliches Kennwort festlegen, wird das PasswordLastSet-Attribut aktualisiert und nicht null. Wenn der Benutzer jedoch bei der nächsten Anmeldung sein Passwort ändern muss, ist auch dieses Attribut null!
Swisstone
Gut, danke!
Maz
1

Sie können Folgendes verwenden, um die Ergebnisse mit "Richtig" oder "Falsch" abzurufen und anzugeben, ob der Benutzer ein leeres Kennwort hat oder nicht:

Get-ADUser -Filter * -SearchBase "OU=someOU,DC=your,DC=domain" | ForEach {    $_.SamAccountName    (new-object directoryservices.directoryentry "", ("domain\" + $_.SamAccountName), "").psbase.name -ne $null    Write-Host "" }
Gn0m3
quelle