【问题标题】:Creating a password with random number in powershell在PowerShell中使用随机数创建密码
【发布时间】:2018-04-12 13:16:51
【问题描述】:

我是PowerShell的新手。我遇到了一个问题,你能帮帮我吗?

我有以下几点:

   $firstname = @("Harris", "Robin", "Jack", "Ryan")
   $lastname = @("Brown", "Amber", "Layton", "Hatvani")

从这 2 个数组中,我必须创建一个密码,标准是取 first 和 lastname 的第一个字母,然后是 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。你们能告诉我为什么我在它们之间有空格吗?在这种情况下,我只使用名字而不是姓氏

【问题讨论】:

    标签: powershell powershell-4.0


    【解决方案1】:

    当您将数组转换为字符串时(例如 $p$n),PowerShell 使用输出字段分隔符 - 由 $OFS 自动变量表示 - 作为分隔符。 $OFS 默认为空格。

    您可以在一个循环中生成密码,如下所示:

    $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 个新密码的数组

    【讨论】:

      猜你喜欢
      • 2021-03-16
      • 2015-06-27
      • 2011-06-02
      • 2013-01-20
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 2011-04-30
      • 2018-12-20
      相关资源
      最近更新 更多