【发布时间】:2019-11-12 17:00:18
【问题描述】:
为了好玩,我决定创建一个函数,该函数会根据用户决定他们想要的数量生成一些随机密码。我正在使用 Begin 和 Process 块来运行脚本。 Begin 块有一个 $characterPool 变量,其中字母数字和特殊字符作为潜在字符。 Process 块询问用户想要多少个密码并创建许多随机的 12 个字符的密码。当我第一次创建该函数时,它运行良好。现在,无论我请求多少密码,都只会创建两个密码,然后它会重新提出问题。之后,使用空字符串按回车键或添加另一个数字会导致打印出一个密码。
Begin
{
$characterPool = "!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray()
}
Process
{
[pscustomobject]@{
Password = -join ($characterPool | Get-Random -Count 12)
}
$counter = Read-Host -Prompt "How many passwords do ya want, buddy?"
1..$counter | New-RandomPassword
}
我希望这会生成我请求的密码数量。没有产生错误,它只是显示如下:
Begin
{
$characterPool = "!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray()
}
Process
{
[pscustomobject]@{
Password = -join ($characterPool | Get-Random -Count 12)
}
$counter = Read-Host -Prompt "How many passwords do ya want, buddy?"
1..$counter | New-RandomPassword
}
How many passwords do ya want, buddy?: 5
Password
--------
1z@p8Jgl52yU
1#K8z2@iA!&o
How many passwords do ya want, buddy?:
Pw!C#d2xTjMu
How many passwords do ya want, buddy?:
fo*Oca9HbRQr
How many passwords do ya want, buddy?:
omzCRpwqdOfM
How many passwords do ya want, buddy?:
u5lMN!kjhzfe
How many passwords do ya want, buddy?: 6
vLaxHq945K$D
How many passwords do ya want, buddy?:
【问题讨论】:
-
这个 PowerShell 对我不起作用,因为我收到“无法识别术语 'New-RandomPassword'”。您发布的脚本是否完整?
-
@UnhandledExcepSean:看起来
New-RandomPassword是正在定义的函数的名称(即使代码没有显示),并且您看到的是递归调用 - 这就是问题出在哪里。
标签: powershell