PowerShellスクリプティングに関して、一貫した命名規則は堅牢なソリューションを構築する作業を容易にします。良いニュースは、スクリプトやコマンドを書く際に使用できるPowerShellの承認された動詞があるということです。
このチュートリアルでは、PowerShellで使用する承認された動詞を一連の例を通じて学びます。
早速始めて、PowerShellスクリプティングのレベルアップを図りましょう!
前提条件
このチュートリアルは実演を含みます。実演に従いたい場合は、PowerShell 5.1以降が実行されているシステムを確認してください。このチュートリアルではWindows 11とPowerShell 7を使用しています。
PowerShellで承認された動詞のリストを取得する
PowerShellでは、cmdletはPowerShell環境で特定のアクションを実行する小さな単機能のコマンドです。
PowerShellの各cmdletには、動詞と名詞のペア形式に従ったユニークな名前があります。
- 名前の動詞部分は、cmdletが実行するアクションを説明します。PowerShellでよく使用される一般的な動詞は次のとおりです。
Verb | Function |
---|---|
Get |
Retrieves information. |
Set |
Changes or updates settings. |
New |
Creates something new. |
Remove |
Deletes or removes something. |
- 名前の名詞部分は、アクションが実行されるエンティティまたはオブジェクト、アクションを実行する対象を識別します。名詞は通常、cmdletが対話するオブジェクトのカテゴリやタイプ(コマンド、プロセス、サービス、ファイルなど)を表します。
スクリプトで使用できるすべての承認された動詞を表示するには:
以下のGet-Verb
コマンドレットを実行して、PowerShellで承認された動詞の完全なリストを取得します。
以下の出力は、スクリプトで使用できるいくつかの動詞を表示しています。

次に、同じコマンドを以下のように実行しますが、今度はワイルドカード検索を使用してre
で始まるすべての承認された動詞をリストします。これにより、リセット、リサイズ、やり直しなどの動詞に関連付けられた動詞のリストが絞り込まれます。
以下の例では、動詞のリストを絞り込むことが特定のアクションを考えて動詞を見つける際に役立つことが示されています。

New
動詞を使用して新しいリソースを作成する
PowerShellで承認された動詞のリストを取得しましたが、スクリプトやコマンドを実行する際にこれらの動詞をどのように使用するのでしょうか?作成したいリソースの種類を表す名詞の前にNew
動詞を付けます(例:ユーザー、ファイル、サービス)。
ただし、この例では、次のように新しいリソース、具体的には新しいユーザーを作成します:
New-LocalUser
コマンドを実行して、John Smith
という名前の新しいユーザーを作成し、パスワード(Password123
)を設定し、アカウントが期限切れにならないようにします(-AccountNeverExpires
)。

Get
動詞を使用してリソース情報を取得する
PowerShellでは、新しいリソースを作成するだけでなく、既存のリソースに関する情報を取得するための動詞があります。PowerShellでは、オペレーティングシステム、サービス、ファイル、その他のオブジェクトなど、特定のリソースに関する情報を取得またはフェッチするために、一般的に Get
動詞が使用されます。
Get
動詞を使用してリソース情報を取得するには、以下の手順に従ってください。
指定したローカルユーザー(John Smith
)に関する情報を取得するために、以下の Get-LocalUser
コマンドを実行します。
下の出力では、ユーザーアカウント John Smith が 有効(アクティブ)であることが表示されます。

Get
verbSet
動詞を使用して既存のリソースを変更する
リソースの情報を見て何か問題があることに気づいた場合、既存のリソースをどのように変更できますか?心配しないでください!PowerShellに承認された動詞である Set
動詞を使用すると、既存のリソースを変更することができます。
リソースを再作成するのではなく、Set
動詞を使用してプロパティや設定を調整することができます。
Set
動詞を使用して既存のリソースを変更するには、以下の手順に従ってください。
以下のコマンドを実行して、$myVariable
の値をHello
に設定し、$myVariable
の値をHello, World!
に変更します。これらのコマンドは出力を提供しませんが、次のステップで変更内容を確認します。
次に、以下のGet-Variable
コマンドを実行して、リソース($myVariable
)の情報を取得してください。
以下に示すように、出力には変数の名前と値が表示されます。

Invoke
動詞を使用してアクションをトリガーする
前の例で手動でコマンドを実行する代わりに、PowerShellスクリプトで自動化する方法はありませんか? Invoke
動詞を使用すると、アクションを開始したり、コマンドをプログラムで呼び出すことができます。
PowerShellスクリプトとInvoke
動詞を使用すると、コンソールにすべて入力することなく、複数のPowerShellコマンドを一度に実行できます。
Invoke
動詞を使用したアクションのトリガリング方法を確認するには:
1. 次のInvoke-Expression
コマンドを実行して、現在の日時を取得するGet-Date
コマンドを呼び出してください。
以下の出力は、Invoke
動詞を使用してGet-Date
コマンドが正常に実行されたことを示しています。

Invoke
verb2. 次に、お好みのコードエディタを使用してPowerShellスクリプトファイル(例:InvokeVerbDemo.ps1)を作成し、次のコードを記述します。
このコードは、ウェルカムメッセージを表示し(Write-Host
)、Get-Service
コマンドレットを呼び出してシステムのすべてのサービスをリストします。
3. 以下のコマンドを実行して、PowerShellスクリプト(InvokeVerbDemo.ps1
)を呼び出します。 $scriptPath
変数の値をスクリプトファイルのパスに置き換えてください。
以下の出力は、ウェルカムメッセージとシステムのすべてのサービスのリストが表示され、スクリプトが正常に実行されたことを確認しています。

Invoke
verb4. コマンドだけでなく、いつでも呼び出せる再利用可能な関数(Invoke-MyTask
)を作成します。基本的に、関数はPowerShellスクリプトの保守性と再利用性を向上させます。
この例では、Invoke-MyTask
関数が以下の操作を実行するようにコマンドをカプセル化しています。
- コンソールに文字列
Executing MyTask...
を表示(Write-Host
)。 - すべてのプロセスのリストを取得(
Get-Process
)し、各プロセスのName
とCPU
のプロパティのみを選択(Select-Object
)。

5. 最後に、以下のコマンドを実行して関数を呼び出します(Invoke-MyTask
)。
以下に、システム上で実行中のすべてのプロセスの名前とCPU使用率が表示されます。

Test
動詞を使用してリソースを検証する
頑丈でエラーに強いPowerShellスクリプトを作成する際には、入力値と条件の正確性を確保することが非常に重要です。この目的のために、使用できる強力なツールの1つが Test
動詞です。
Test
動詞を使用すると、与えられた条件が true または false の値を保持しているかどうかを素早く確認し、その結果に基づいて異なるアクションを実行することができます。この例では、Test
動詞を使用してファイルが存在するかどうかを検証します。
以下のコードを実行して、指定された $filePath
にあるファイル(C:\MyFolder\example.txt
)が存在するかどうかをテスト (Test-Path
) し、結果に応じてメッセージを表示します。

Test
verb結論
PowerShell で承認された動詞の基本的な理解と、それらをスクリプトやコマンドで効果的に使用する方法を学びました。これらの動詞を活用することで、さまざまなタスクやシナリオに対して堅牢で効率的かつ一貫性のある PowerShell ソリューションを作成することができます。
このチュートリアルは、熟練したPowerShellユーザーになるための旅の始まりに過ぎません。なぜ他の承認された動詞を学ばないのでしょうか?例えば、データ操作の動詞(Export
、Import
、Sort
)やライフサイクルの動詞(Start
、Stop
)を学びませんか?今日からPowerShellのスキルをさらに向上させましょう!
Source:
https://adamtheautomator.com/powershell-approved-verbs/