Function Generate-Complex-Domain-Password ([Parameter(Mandatory=$true)][int]$PassLenght)
{
Add-Type -AssemblyName System.Web
$requirementsPassed = $false
do {
$newPassword=[System.Web.Security.Membership]::GeneratePassword($PassLenght,1)
If (($newPassword -match '[a-z]') `
-and ($newPassword -match '[A-Z]') `
-and ($newPassword -match '[1-9]') `
-and ($newPassword -match '[!@#$%\^&*]') `
-and ($newPassword -notmatch '[0oO\{\}\(\)\;\:\\\/\*\+\<\>l\^_\?\[\]\|\.\-\=]')
)
{
$requirementsPassed=$True
}
} While ($requirementsPassed -eq $false)
return $newPassword
}
Generate-Complex-Domain-Password (16)