4
Size: a a a
4
4
RV
4
4
C
4
4
RV
4
4
4
RV
A
function Get-Password {
<#
.Parameter Complexity
The parameter specifies the character sets used to generate the password, where:
'L' is lowerCase
'N' is numbers
'S' is symbols
'U' is upperCase
#>
[CmdletBinding()]
param (
[Int]$Size = 8,
[Char[]]$Complexity = "LNSU",
[Char[]]$Exclude
)
$Result = @();
$Tokens = @();
$Series = @{
LowerCase = [Char[]]'abcdefghijklmnopqrstuvwxyz'
Numbers = [Char[]]'0123456789'
Symbols = [Char[]]'!@#$%^&*()_+'
UpperCase = [Char[]]'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
}
foreach ( $Token in $Series.Keys | Where-Object { $Complexity -Contains $_[0] }) {
$Choice = $Series.$Token | Where-Object { $Exclude -cNotContains $_ }
$Result += $Choice | Get-Random
$Tokens += $Choice
}
while ( $Result.Count -lt $Size ) { $Result += $Tokens | Get-Random }
return ( $Result | Sort-Object { Get-Random }) -Join ""
}
C
4
4
4