Skip to content

Instantly share code, notes, and snippets.

@mrik23
Created November 6, 2017 11:09
Show Gist options
  • Save mrik23/a023da71624cb15e4ff1c85a4a8184c8 to your computer and use it in GitHub Desktop.
Save mrik23/a023da71624cb15e4ff1c85a4a8184c8 to your computer and use it in GitHub Desktop.
A basic PowerShell script to generate in bulk random passwords with specific formulation.
#Number of passwords to generate
$numberOfPasswords = 10
#Password formulation
$passwordLength = 9
$minimumNumericCharacters = 2
$caps = $true
$specials = $false
#Password characters sets
$characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789"
$numbers = "0123456789"
$symbols = "!@#$%^&*()"
function Get-RandomCharacter {
$randomCharacter = (($characters + ($symbols * $specials)).ToCharArray() | Sort-Object {Get-Random})[(Get-Random -Maximum ($characters.Length - 1))]
return $randomCharacter
}
function Get-RandomNumber {
$randomNumber = ($numbers.ToCharArray() | Sort-Object {Get-Random})[(Get-Random -Maximum ($numbers.Length - 1))]
return $randomNumber
}
function Get-RandomPassword {
for ($i=0; $i -le ($passwordLength - $minimumNumericCharacters); $i++) {
$password += Get-RandomCharacter
}
for ($i=0; $i -le $minimumNumericCharacters; $i++) {
$password += Get-RandomNumber
}
$password = $password.ToCharArray() | Sort-Object {Get-Random}
for ($i=0; $i -le $passwordLength; $i++) {
$randomPassword += $password[$i]
}
if ($caps -eq $false) {
return $randomPassword.ToLower()
}
else {
return $randomPassword
}
}
function Get-Passwords ($n) {
for ($i=0; $i -le $n; $i++) {
Get-RandomPassword
}
}
Get-Passwords($numberOfPasswords) | clip
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment