New-RandomPassword関数が突然機能しなくなりました

m_lloyd

楽しみのために、ユーザーが希望する数に基づいてランダムなパスワードを生成する関数を作成することにしました。スクリプトを実行するためにBeginブロックとProcessブロックを使用しています。Beginブロックには、潜在的な文字として英数字と特殊文字を含む$ characterPool変数があります。Processブロックは、ユーザーが必要とするパスワードの数を尋ね、その数のランダムな12文字のパスワードを作成します。私が最初に関数を作成したとき、それはうまく機能しました。これで、要求するパスワードの数に関係なく、2つだけが作成され、質問が再度行われます。その後、空の文字列でEnterキーを押すか、別の番号を追加すると、1つのパスワードが出力されます。

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?:
マティアスR.ジェッセン

移動Read-Host開始までのプロンプト機能をし、ループにパスワード生成ロジックを移動します。

function New-RandomPassword {
    param()

    [int]$counter = Read-Host -Prompt "How many passwords do ya want, buddy?"
    $characterPool = "!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray()
    $i = 0;
    while($i++ -lt $counter)
    {
        [pscustomobject]@{
            Password = -join ($characterPool | Get-Random -Count 12)
        }
    }
}

このようにして、関数を再帰的に呼び出す必要はありません。


個人的に$counter変数をパラメーターに変換してから、内部呼び出す スクリプトでユーザーにプロンプ​​トを表示しますNew-RandomPassword

function New-RandomPassword {
    param(
        [ValidateRange(1,500)]
        [int]$Count
    )

    $characterPool = "!@#$%^&*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".ToCharArray()
    $i = 0;
    while($i++ -lt $count)
    {
        [pscustomobject]@{
            Password = -join ($characterPool | Get-Random -Count 12)
        }
    }
}

以下のようmklement0が指摘し、あなたも持つ式に割り当てることができRead-Host、パラメータのデフォルト値として呼び出しを:

param(
    [ValidateRange(1,500)]
    [int]$Count = $(Read-Host 'How many passwords do ya want, buddy?')
)

私は個人的にこれをアンチパターンと考えており、デフォルトで1パラメータを設定するか、パラメータをマークすることを主張したいと思いますMandatory

# If the caller omits the argument, 1 password is returned
param(
    [ValidateRange(1,500)]
    [int]$Count = 1
)

または

# Caller _must_ supply a parameter argument (the default console host will prompt the user if not, but depends on the host application)
param(
    [Parameter(Mandatory = $true)]
    [ValidateRange(1,500)]
    [int]$Count
)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

突然xkbcompが機能しなくなりました

分類Dev

Wifiが突然機能しなくなりました!! Ubuntu 16.04

分類Dev

Appium :: TouchAction.new.tapが正しく機能しない

分類Dev

New-PSDrive--Persistが機能しない

分類Dev

ChromeでJavaスクリプト関数が突然機能しなくなった

分類Dev

FaceBook PHP API SDK:突然引数 'link'が公開されず、/ me / feedが機能しなくなりました

分類Dev

GoogleMarketplaceのライセンスAPIが突然機能しなくなりました

分類Dev

Instagramの最新の投稿APIが突然機能しなくなりました

分類Dev

Sublime TextのTypescriptが突然機能しなくなりましたか?

分類Dev

突然$ this-> request-> dataがcakephpで機能しなくなりました

分類Dev

すべてのJavascriptが突然機能しなくなりました

分類Dev

divを追加した後、jquery関数が機能しなくなります

分類Dev

localStorageを取得した後、関数が機能しなくなります

分類Dev

関数が機能していません 'name.exeが機能しなくなりました'

分類Dev

ELANタッチパッドが突然機能しなくなり、前日に機能しました

分類Dev

Firebaseデプロイクラウド機能が突然機能しなくなりました

分類Dev

「ORDERBY」を使用したAzureDocumentDBクエリが突然機能しなくなりました

分類Dev

関数が機能し、RangeErrorになりました

分類Dev

MagentoAdminが突然遅くなりました

分類Dev

疑問符charで名前が付けられたBash関数は機能しなくなりました

分類Dev

AWSCognitoとGoogle属性マッピングが突然機能しなくなりました

分類Dev

Google PlayIABが突然私の携帯電話で機能しなくなりました

分類Dev

Steam In-Home Streamingでハードウェアデコードが突然機能しなくなりましたか?

分類Dev

単純なJavaScriptが突然機能しなくなった

分類Dev

Heroku。New RelicProcfileコマンドが機能しない

分類Dev

New-PSSessionがローカルで機能しない

分類Dev

Array.from(new Set)がReactjsxで機能しない理由

分類Dev

PowerShellのtry / catch / finallyがNew-EventLogで機能しない

分類Dev

New Relicが機能しない(gradle + android studio)

Related 関連記事

  1. 1

    突然xkbcompが機能しなくなりました

  2. 2

    Wifiが突然機能しなくなりました!! Ubuntu 16.04

  3. 3

    Appium :: TouchAction.new.tapが正しく機能しない

  4. 4

    New-PSDrive--Persistが機能しない

  5. 5

    ChromeでJavaスクリプト関数が突然機能しなくなった

  6. 6

    FaceBook PHP API SDK:突然引数 'link'が公開されず、/ me / feedが機能しなくなりました

  7. 7

    GoogleMarketplaceのライセンスAPIが突然機能しなくなりました

  8. 8

    Instagramの最新の投稿APIが突然機能しなくなりました

  9. 9

    Sublime TextのTypescriptが突然機能しなくなりましたか?

  10. 10

    突然$ this-> request-> dataがcakephpで機能しなくなりました

  11. 11

    すべてのJavascriptが突然機能しなくなりました

  12. 12

    divを追加した後、jquery関数が機能しなくなります

  13. 13

    localStorageを取得した後、関数が機能しなくなります

  14. 14

    関数が機能していません 'name.exeが機能しなくなりました'

  15. 15

    ELANタッチパッドが突然機能しなくなり、前日に機能しました

  16. 16

    Firebaseデプロイクラウド機能が突然機能しなくなりました

  17. 17

    「ORDERBY」を使用したAzureDocumentDBクエリが突然機能しなくなりました

  18. 18

    関数が機能し、RangeErrorになりました

  19. 19

    MagentoAdminが突然遅くなりました

  20. 20

    疑問符charで名前が付けられたBash関数は機能しなくなりました

  21. 21

    AWSCognitoとGoogle属性マッピングが突然機能しなくなりました

  22. 22

    Google PlayIABが突然私の携帯電話で機能しなくなりました

  23. 23

    Steam In-Home Streamingでハードウェアデコードが突然機能しなくなりましたか?

  24. 24

    単純なJavaScriptが突然機能しなくなった

  25. 25

    Heroku。New RelicProcfileコマンドが機能しない

  26. 26

    New-PSSessionがローカルで機能しない

  27. 27

    Array.from(new Set)がReactjsxで機能しない理由

  28. 28

    PowerShellのtry / catch / finallyがNew-EventLogで機能しない

  29. 29

    New Relicが機能しない(gradle + android studio)

ホットタグ

アーカイブ