PowerShell

【PowerShell】Read-Hostコマンドレットを使ってみる

こんにちは!

 

PowerShell の Read-Host コマンドレットを使って、ユーザー名や社員番号といったユーザーアカウント情報を変数に代入し、表示してみましょう。

 

 

Read-Host コマンドの説明

 

 

対話的に、ユーザーに入力を求める事ができます。

例えば、以下のようにユーザー名を入力するようにプロンプトを表示し、入力した値を、変数の $Name に代入する事ができます。

 

ここで $Name に代入する値は、文字列型としますので、明示的に [string] と書いておきます。

 

 

 

今度は、社員番号を入力するようにし、入力した値を、変数の $staff_id に代入します。

$staff_id に代入する値は整数型とし、文字列型は不可としますので、明示的に [int] と書いておきます。

 

 

 

今度は、入社年月日を入力するようにし、入力した値を、変数の $date に代入します。

年月日を表示したいので、明示的に [datetime] と書いておきます。

 

 

 

こんな感じで、文字列や数値を変数に格納し、変数から値を表示する事ができます。

それでは、パスワードのようにセキュリティー的に見えてはいけないような値はどう扱えば良いでしょうか。

 

こういう場合は、-AsSecureString パラメーターを使います。

 

 

 

さて、今度は入力する値の文字数や桁数を制限するにはどうしたらよいでしょうか。

例えば、上の方法ではユーザー名に aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbccccccccccccc とか入力できてしまいます。

ユーザー名は企業では文字数が限られていますので、文字数を制限するようにしてみます。

ここでは以下の構文を使い、6 ~ 8 文字までの制限とします。

 

構文: [ValidateLength(int 最小値, int 最大値)]

 

 

 

では、社員番号のように番号を制限したい場合はどうすればよいでしょうか。

ここでは以下の構文を使い、1 から 9999 までとします。

 

構文: [ValidateRange(object 最小値, object 最大値)]

 

 

 

今度は、入力に選択肢を持ちたい場合、A, B, C や Yes, No など選んでもらいます。

例えば、PC の種類はノートパソコンかどうか聞きたい場合、以下のように書いてみます。

 

構文: [ValidateSet(params string[])]

 

 

 

とりあえず、Read-Host コマンドレットはここまでとします。

 

いかがでしょうか。

このようにユーザーと対話的にできるので、入力した値に合わせた処理ができるようになります。

 

 

それでは最後までお読みいただきありがとうございました!

  • この記事を書いた人

そーまん

セキュリティエンジニアやってます。
ブログ歴3年。PVは月15万PV程度。
趣味はボクシング、筋トレ、登山です。
穏やかで人見知りな性格です。

人気記事

1

こんにちは!そーまんです。 今回は、PC に適用されている GPO を確認する方法について書きました。 本題に入る前に、一応参考までにGPOの適用タイミングについての記事をここに貼りましたので、必要に ...

2

こんにちは!そーまんです。 今回は sysprep について、全体的に PC をセットアップする観点から書いてみました。長々と書いてあります。まずは前置きからです。 まずはじめに 組織では PC のラ ...

3

こんにちは!そーまんです。 今回は、グループポリシー (GPO) を使って、特定のコンピューターに対して、ドメインユーザーに ローカル管理者権限 (以下は特権と記載) を付与する方法について書きました ...

4

こんにちは!そーまんです。 今回は、Windows サインイン後に一時ユーザープロファイルが読み込まれてしまった場合の解決方法について書きました。 Windows 10 の検証環境をいじってたらサイン ...

5

こんにちは!そーまんです。 今回は、ユーザープロファイルを削除する方法について書いてみました。 企業の場合よくあることですが、1 台の PC を共有 PC として複数人で使ったり、また余り無いかもしれ ...

6

こんにちは!SE ブログの相馬です。       今回は、繰り返し文について書いてみました。PowerShell では他のプログラミング言語同様、繰り返し処理を行うことが ...

7

コマンドを使って CPU とメモリの使用率をデータで取得してみましたので、例えば PC のトラブルシューティングで問題を再現させる際にデータを取得しておくと、原因の特定に役立つ場合があるかと思います。

8

既存の PC と同じ構成で別のメーカーの PC でマスターイメージを作る際、インストールされているアプリを同一にする為に必要になるかと思います。

9

企業で多くの GPO が適用されている環境では、PC に GPO が適用されなかったりする問題が発生する場合があるかと思います。その中でも、コンピューターの構成またはユーザーの構成のどちらかで、...

10

こんにちは!そーまんです。 今回は、Windows Server 2019 で NTP サーバーと同期する方法について書きました。 NTP サーバーの必要性や時刻同期の重要性を理解することは社内のシス ...

-PowerShell
-