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 のデフォルト パラメーターを使用してコマンドの動作を変更する方法

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

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

成功を祈っています!

続きを見る:


Yahoo ツールバーと検索を完全に削除する方法。ヤフー。コム?

Yahoo ツールバーと検索を完全に削除する方法。ヤフー。コム?

Yahoo 検索は正規の検索エンジンです。ただし、ユーザーを検索にリダイレクトするブラウザ ハイジャッカーとも考えられます。ヤフー。コム。このブラウザ ハイジャッカーは、Web ブラウザのホームページと検索エンジンの設定をハイジャックして、以前に設定したホームページと検索エンジンの代わりに Yahoo 検索のホームページと検索エンジンを表示します。

Windows のタスクの終了機能について学習します。

Windows のタスクの終了機能について学習します。

タスクの終了は、Microsoft Windows タスク マネージャーの機能です。これは [アプリケーション] タブにあり、ユーザーは応答するプログラムまたは応答しないプログラムを閉じることができます。

Windows + V: 多くの Windows ユーザーが知らない便利なショートカット

Windows + V: 多くの Windows ユーザーが知らない便利なショートカット

他の多くのプラットフォームと同様に、Windows にも「クリップボード履歴」と呼ばれる特殊なクリップボード マネージャーがあります。

Windows 10 に macOS Big Sur/iOS 14 ウィジェットをインストールする方法

Windows 10 に macOS Big Sur/iOS 14 ウィジェットをインストールする方法

macOS Big Sur バージョンは、最近の WWDC カンファレンスで正式に発表されました。また、Rainmeter ツールを使用すると、macOS Big Sur のインターフェイスを Windows 10 に完全に持ち込むことができます。

RDStealer マルウェアからリモート デスクトップを保護する方法

RDStealer マルウェアからリモート デスクトップを保護する方法

RDStealer は、RDP サーバーに感染し、そのリモート接続を監視することで資格情報とデータを盗もうとするマルウェアです。

ファイルエクスプローラーに代わるWindows用の7つの最高のファイル管理ソフトウェア

ファイルエクスプローラーに代わるWindows用の7つの最高のファイル管理ソフトウェア

ファイル エクスプローラーに別れを告げ、サードパーティのファイル管理ソフトウェアを使用する時期が来たのかもしれません。ここでは、Windows ファイル エクスプローラーの代替となる 7 つの最良のツールを紹介します。

LoRaWAN はどのように機能しますか? IoT にとってなぜ重要なのでしょうか?

LoRaWAN はどのように機能しますか? IoT にとってなぜ重要なのでしょうか?

LoRaWAN (長距離ワイヤレス エリア ネットワーク) は、長距離にわたる低電力デバイス間の通信に役立ちます。

Windows 10 で詳細スタートアップ オプションを開く 8 つの方法

Windows 10 で詳細スタートアップ オプションを開く 8 つの方法

詳細スタートアップ オプションに移動すると、Windows 10 のリセット、Windows 10 の復元、以前に作成したイメージ ファイルからの Windows 10 の復元、起動エラーの修正、コマンド プロンプトを開いてオプションの実行、別のオプションの選択、UEFI 設定を開いて、スタートアップ設定の変更を行うことができます。 ..

ソーシャル ネットワーク アカウントでログインする前に慎重に検討する必要があるのはなぜですか?

ソーシャル ネットワーク アカウントでログインする前に慎重に検討する必要があるのはなぜですか?

新しいサービスにサインアップするたびに、ユーザー名とパスワードを選択するか、Facebook または Twitter でログインすることができます。しかし、それをすべきでしょうか?

Google DNS 8.8.8.8 および 8.8.4.4 の変更手順

Google DNS 8.8.8.8 および 8.8.4.4 の変更手順

DNS Google 8.8.8.8 8.8.4.4 は、特にネットワーク アクセスを高速化するため、またはブロックされた Facebook へのアクセスを目的として、多くのユーザーが使用することを選択する DNS の 1 つです。