Can Powershell check passwords against a dictionary?

Hi Guys,

We all know that user passwords are vulnerable, simply because they arent complex enough. What I am attempting to do is write a simple enough script to have a password as an input and then give it points to see if its strong enough. I call it my lucky six game and the idea is to score all 7 points. One last check that I want to do is to have the entered password validate against a dictionary to see if any common words are entered. I am not sure how I should go about this… Does anyone have ideas? Below is my script so far…

Import-Module ActiveDirectory
$password = read-host "Please enter the password you want to test"
$passlen = 8
$score = 0
if ($password.Length  -ge $passlen){
if ($password -match "[!,@,#,$,%,^,&,*,?,_,~,-,£,(,)]"){


} #1

if($password -cmatch "[A-Z]"){


} #2

if($password -cmatch "[a-z]"){


} #3

if($password -match "[0-9]"){


} #4

if($password[0] -match "[!,@,#,$,%,^,&,*,?,_,~,-,£,(,)]"){


} #5

if($password[-1] -match "[!,@,#,$,%,^,&,*,?,_,~,-,£,(,)]"){


} #6

if($password.Length -le 15){



if($password.ToCharArray() | Group | Select Count | Where -Property Count -ne 1)


} # end for password.length loop


write-output "The minimum length of the password is $passlen "


write-output "Your password score is $score out of 6!"

The stright solution would be to use an array
something like this

$pwds = Get-Content d:\passwords

$found = $false
foreach ($p in $pwds) {
  if ($password -match $p) { $found = $true; break }
if (! $found) {

Thank you so much!!