This one-liner picks a random character from a pool of upper and lowercase letters, numbers and special characters twenty times and join them together.
# 20 char long randomized password generator -join ((48..57) + (65..90) + (97..122) + 33 + (36..38) | Get-Random -Count 20 | ForEach-Object {[char]$_})
The Script - For Longer Passwords and Multiple at a Time
The following script allows you to specify the length of the generated strings, also the number of strings generated in case you needed multiple lines of password material.
Function GeneratePasswords { Param ( [int]$Length = 20, [int]$Count = 1 ) $CharPool = @() # Add the ASCII codes of numbers to the character pool $CharPool += (48..57) # Add the ASCII codes of uppercase letters to the character pool $CharPool += (65..90) # Add the ASCII codes of lowercase letters to the character pool $CharPool += (97..122) # Add the ASCII codes of characters: !$%& to the character pool $CharPool += 33 $CharPool += (36..38) For ($i = 0; $i -lt $Count; $i++) { # Generate password -join ($CharPool | Get-Random -Count $Length | ForEach-Object {[char]$_}) } }
Example
# Single password GeneratePasswords -Length 50 # Generate a 50 character long single password GeneratePasswords -Length 50 # Generate 10 of 50 character long single passwords GeneratePasswords -Length 50 -Count 10
Comments