Исключить определенные слова в Powershell Password Generator - PullRequest
0 голосов
/ 18 июня 2019

Я создал скрипт для создания случайных паролей в том же формате, который Microsoft использует в O365 при сбросе пароля. Если случайно сгенерированный пароль содержит любое из указанных значений, которые могут обидеть, то я хочу, чтобы скрипт игнорировал их и перезапускал цикл.

Я пытался использовать операторы -contains и -like, но выходные данные все еще содержат некоторые из этих значений.

write-host "Enter number of passwords you require generating" - 
ForegroundColor Green
$Run = read-host
foreach($i in 1..$Run)
 {
    If($i=$Run){                           
    $result = ""
    $set1 = "bcdfghjklmnpqrstvwxyz".ToCharArray()
    $set2 = "aeiou".ToCharArray()
    $result += $set1 | Get-Random
    $result += $set2 | Get-Random
    $result += $set1 | Get-Random

$DisabledPass=$result.Substring(0,1).ToUpper(1)+$result.Substring(1,2)+(Get-Random -Minimum 10000 -Maximum 99999)

$valuesToLookFor = @(
'*Sex*',
'*Bum*',
'*Cow*',
'*Fuc*',
'*Wog*',
'*Cum*',
'*God*',
'*Gob*',
'*Fuk*')

if ($DisabledPass -contains $valuesToLookFor) {continue}
$disabledpass |Out-File c:\admin\passwords.csv -Append
Write-Host "$DisabledPass" -ForegroundColor Green
}
 }

Сценарий выполняется успешно, но выходные данные содержат пароли, содержащие значения, которые я хочу игнорировать.

1 Ответ

1 голос
/ 18 июня 2019

Примерно так:

$set1 = "bcdfghjklmnpqrstvwxyz".ToCharArray()
$set2 = "aeiou".ToCharArray()
$badWords = "(Sex|Bum|Cow|Fuc|Wog|Cum|God|Gob|Fuk)"

$count = Read-Host -Prompt "Enter number of passwords you require generating"

1..$count | ForEach-Object {
    do
    {
        $result = ""
        $result += $set1 | Get-Random
        $result += $set2 | Get-Random
        $result += $set1 | Get-Random

        $password = (Get-Culture).TextInfo.ToTitleCase($result) + (Get-Random -Minimum 10000 -Maximum 99999)
    } while ($password -match $badWords)

    Write-Host "Generated password: $password" -ForegroundColor Green
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...