PowerShell のデフォルト パラメーターを使用してコマンドの動作を変更する方法

PowerShell のデフォルト パラメーターを使用してコマンドの動作を変更する方法

PowerShell を使用すると、Windows GUI では実行できない操作が可能になるため、多くの人が使用することを好みます。それでも、一部のPowerShell コマンドレットが少し退屈または複雑になる可能性があることは否定できません。しかし、これらのコマンドレットを編集して、希望どおりに「動作」させる方法があったとしたらどうでしょうか?信じられないかもしれませんが、それを行う簡単な方法があります。 PowerShell のデフォルト パラメーターの値を変更することで、コマンドレットの動作を変更できます。この記事では、PowerShell の既定のパラメーターを使用してコマンドレット コマンドの動作を変更する方法を説明します。

警告

始める前に、留意する必要があることがいくつかあります。 PowerShell のデフォルト パラメーターと cmdelt の動作を変更すると便利ですが、問題が発生する可能性があります。スクリプトを実行し、そのスクリプトが変更されたコマンドレットが特定の方法で動作すると想定している場合、予期しない結果が発生する可能性があります。したがって、PowerShell のデフォルト パラメーターを慎重に変更する必要があります。

簡単なレビュー

デフォルトのパラメーターを使用するには、PowerShell の概念を 2 つ理解しておく必要があります。最初の概念は可変です。 PowerShell では、変数名は常にドル記号で始まり、変数名を入力することで変数の内容を書き込むことができます。

2 番目の概念はよく知られているかもしれませんが、ハッシュ テーブルです。ハッシュ テーブルは本質的に、キーと値のペアで構成されるリストです。たとえば、米国の州の名前とその略語を含むハッシュ テーブルを作成するとします。以下はコードです:

$StateList = @{}
$StateList.add('フロリダ','FL')
$StateList.add('サウスカロライナ','SC')
$StateList.add('ジョージア','GA')
$StateList

コードの最初の行は、 $StateListという空のハッシュ テーブルを作成します。次の 3 行はテーブルにエントリを追加します。各エントリはキー (州名) と値 (州の略語) で構成されます。最後の行にはテーブルの内容がリストされます。以下の画像で、実際に動作しているコードを確認できます。

これは非常に単純な例にすぎず、ハッシュ テーブルを使用する方法は他にもたくさんあります。

PowerShell のデフォルト パラメーターを操作する

PowerShell には、コマンドレットで使用される既定のパラメーターを保存するために使用される組み込み変数があります。この変数は$PSDefaultParameterValuesと呼ばれます。最初の説明と変数の名前からお気づきかと思いますが、これは通常の変数ではなく、ハッシュ テーブルです。ただし、PowerShell に変数名を入力すると、以下に示すように、テーブルが空であることがすぐにわかります。

PowerShell のデフォルト パラメーターを使用してコマンドの動作を変更する方法

では、この$PSDefaultParameterValues変数を使って何ができるのでしょうか。前述したように、PowerShell コマンドレットの動作を制御できます。唯一のポイントは、コマンドレット コマンドの固有の機能を克服できないということです。それでは例を見てみましょう。

この例は、実際には使用したくないものかもしれませんが、コマンドレットの動作を根本的に変更することがいかに簡単であるかを示します。 PowerShell でGet-TimeZoneコマンドレットを入力すると、PC が現在使用するように構成されているタイム ゾーンの名前が表示されます。この例は下の画像で見ることができます。

PowerShell のデフォルト パラメーターを使用してコマンドの動作を変更する方法

ここで、システムが使用するように構成されているタイム ゾーンではなく、使用可能なタイム ゾーンを表示するようにこのコマンドレットを変更します。これを行うには、 Get-Helpコマンドレットに続いてGet-TimeZoneコマンドレットを使用するコマンドレット構文が必要です。コマンドレットの構文は以下で確認できます。

PowerShell のデフォルト パラメーターを使用してコマンドの動作を変更する方法

この構文にはListAvailableというパラメータが含まれています。以下のコマンドを入力します。

$PSDefaultParameterValues.Add(“Get-TimeZone:ListAvailable”,$True)

このコマンドの最初の部分は、前のセクションの米国州の略称の例で行ったのと同様に、ハッシュ テーブルに値を追加することを PowerShell に伝えるだけです。このハッシュ テーブルにはキーと値のペアが含まれています。この場合、キーはコマンドレット名 (Get-TimeZone) の後にカンマと設定するパラメーターの名前が続きます。この場合、パラメータ名は ListAvailable です。このコマンドレットの 2 番目の部分は、パラメーターに割り当てる値です。ここでは$Trueです。通常、ListAvailable パラメーターには値は必要ないため、$Trueを指定すると、値を割り当てずにこのパラメーターを使用するように PowerShell に指示できます。

下の画像を見ると、Get-TimeZone コマンドレットを実行すると何が起こるかがわかります。

PowerShell のデフォルト パラメーターを使用してコマンドの動作を変更する方法

留意すべき事項

理解する必要がある最も重要な点は、PowerShell の既定のパラメーターに新しい値を追加することは、コマンドレットの既定の動作を変更することであり、コマンドレットの機能を削除することではないということです。現在のタイム ゾーンを表示するのではなく、利用可能なタイム ゾーンを表示するように Get-TimeZone コマンドレットを変更した場合でも同様です。さらに表示すると、現在のタイムゾーン情報を表示できます。

もう 1 つ知っておく必要があるのは、カスタムのデフォルト パラメータは削除できることです。単一の項目を削除するには、コマンド$PSDefaultParameterValues.Removeに続けて、削除する項目の名前を使用します。例えば:

$PSDefaultParameterValues.Remove(“Get-TimeZone:ListAvailable”)

代わりに、次のコマンドを使用してハッシュ テーブルの内容全体を削除できます。

$PSDefaultParameterValues.Clear();

両方のテクニックの例を以下に示します。

PowerShell のデフォルト パラメーターを使用してコマンドの動作を変更する方法

ハッシュ テーブル全体を削除することも、単一のエントリを削除することもできます。

コマンドレット コマンドの既定の動作を変更することは、あまり行わないことですが、必要な場合には、その変更方法をすでに知っています。

成功を祈っています!

続きを見る:


究極のパフォーマンスを有効にして Windows 10/11 のパフォーマンスを最適化する方法

究極のパフォーマンスを有効にして Windows 10/11 のパフォーマンスを最適化する方法

Microsoft は、2018 年 4 月に Windows 10 Update に Ultimate Performance と呼ばれる機能を追加しました。これは、システムを高パフォーマンス動作モードに切り替えるのに役立つ機能であることがわかります。

Windows 10 Sun Valley のような新しいファイル エクスプローラー アイコン セットをインストールする方法

Windows 10 Sun Valley のような新しいファイル エクスプローラー アイコン セットをインストールする方法

Windows 10 Sun Valley のようなファイル エクスプローラーの新しいアイコンが気に入った場合は、以下の記事に従ってファイル エクスプローラーのまったく新しいインターフェイスを変更してください。

Windows 10 Webカメラをテストする方法

Windows 10 Webカメラをテストする方法

Web カメラが Windows コンピューターで適切に動作するかどうかを確認するのは、迅速かつ簡単です。以下は、カメラを確認するための手順です。

Windows 10 でマイクをテストする方法

Windows 10 でマイクをテストする方法

おそらく高品質のヘッドフォンが接続されているのに、何らかの理由で Wi​​ndows ラップトップがひどい内蔵マイクを使用して録音しようとし続けます。次の記事では、Windows 10 マイクをテストする方法について説明します。

右クリックメニューから「Malwarebytesでスキャン」を削除する方法

右クリックメニューから「Malwarebytesでスキャン」を削除する方法

不要になった場合は、右クリックのコンテキスト メニューから [Malwarebytes でスキャン] オプションを削除できます。その方法は次のとおりです。

ボーダー ゲートウェイ プロトコル (BGP) について学ぶ

ボーダー ゲートウェイ プロトコル (BGP) について学ぶ

ボーダー ゲートウェイ プロトコル (BGP) は、インターネットのルーティング情報を交換するために使用され、ISP (異なる AS) 間で使用されるプロトコルです。

独自の Windows レジストリ ハック ファイルを作成する方法

独自の Windows レジストリ ハック ファイルを作成する方法

ヒントを読んでいると、レジストリ ハック ファイルを使用して Windows コンピュータをカスタマイズしたり微調整したりする人がよく見かけますが、その作成方法を疑問に思っています。この記事では、独自のレジストリ ハック ファイルを作成する基本的な手順を説明します。

Windows 10で自動レジストリバックアップを有効にする方法

Windows 10で自動レジストリバックアップを有効にする方法

Microsoft は以前はレジストリを自動的にバックアップしていましたが、この機能は Windows 10 では密かに無効になっています。この記事では、Quantrimang.com がレジストリをフォルダーに自動的にバックアップする手順を説明します。 RegBack (Windows\System32\config \RegBack) Windows 10 では。

Windows PCでアクションを元に戻す方法

Windows PCでアクションを元に戻す方法

コンピューターを使用していると、間違いを犯すのはごく普通のことです。

Windows 10/11 でイーサネット接続が切断され続ける場合はどうすればよいですか?

Windows 10/11 でイーサネット接続が切断され続ける場合はどうすればよいですか?

Windows 10 または 11 PC では、イーサネット接続が理由もなく切断されてイライラすることがあります。