在powershell中创建一个带有随机数的密码
Creating a password with random number in powershell
我是 Powershell 的新手。我遇到了一个问题,你能帮帮我吗?
我有以下内容:
$firstname = @("Harris", "Robin", "Jack", "Ryan")
$lastname = @("Brown", "Amber", "Layton", "Hatvani")
我必须从这 2 个数组中创建一个密码,标准是取名字和姓氏的第一个字母,然后是 5 个随机数。示例:hb69248(在本例中 h 是 Harris 的第一个字母,b 是 Brown 的第一个字母)。必须为每个名称执行此操作。我尝试了以下方法:
[string]$p = for ($i=0; $i -lt $firstname.count; $i++)
{ $firstname[$i].substring(0,1)}
[string]$n = for ($r=0; $r -lt 4; $r++)
{ get-random -minimum 0 -maximum 9)
$password = "$p", "$n" -join ""
输出应该类似于 HRJR2876(数字是随机创建的)。但是我得到 H R J R2 8 7 6。你们能告诉我为什么我在它们之间有 space 吗?在这种情况下,我只是使用名字而不是姓氏
当您将数组转换为字符串时(就像您所做的 $p
和 $n
),PowerShell 使用输出字段分隔符 - 由 $OFS
自动变量表示 - 作为定界符。 $OFS
默认为 space.
您可以在一个循环中生成密码,如下所示:
$passwords = for($i = 0; $i -lt $firstname.Length; $i++){
$first = $firstname[$i].Substring(0,1)
$last = $lastname[$i].Substring(0,1)
$number = Get-Random -Min 10000 -Max 100000
$first,$last,$number -join ''
}
$passwords
现在是所有 4 个新密码的数组
我是 Powershell 的新手。我遇到了一个问题,你能帮帮我吗?
我有以下内容:
$firstname = @("Harris", "Robin", "Jack", "Ryan")
$lastname = @("Brown", "Amber", "Layton", "Hatvani")
我必须从这 2 个数组中创建一个密码,标准是取名字和姓氏的第一个字母,然后是 5 个随机数。示例:hb69248(在本例中 h 是 Harris 的第一个字母,b 是 Brown 的第一个字母)。必须为每个名称执行此操作。我尝试了以下方法:
[string]$p = for ($i=0; $i -lt $firstname.count; $i++)
{ $firstname[$i].substring(0,1)}
[string]$n = for ($r=0; $r -lt 4; $r++)
{ get-random -minimum 0 -maximum 9)
$password = "$p", "$n" -join ""
输出应该类似于 HRJR2876(数字是随机创建的)。但是我得到 H R J R2 8 7 6。你们能告诉我为什么我在它们之间有 space 吗?在这种情况下,我只是使用名字而不是姓氏
当您将数组转换为字符串时(就像您所做的 $p
和 $n
),PowerShell 使用输出字段分隔符 - 由 $OFS
自动变量表示 - 作为定界符。 $OFS
默认为 space.
您可以在一个循环中生成密码,如下所示:
$passwords = for($i = 0; $i -lt $firstname.Length; $i++){
$first = $firstname[$i].Substring(0,1)
$last = $lastname[$i].Substring(0,1)
$number = Get-Random -Min 10000 -Max 100000
$first,$last,$number -join ''
}
$passwords
现在是所有 4 个新密码的数组