[忘備録]PowerShell 承認された動詞(Verbs)

以下の記事の内容を忘れないようにメモしたものです。

https://learn.microsoft.com/ja-jp/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands?view=powershell-7.4

## 動詞(Verbs)の推奨事項

次の推奨事項は、一貫性を確保するのに役立ちます。

1. PowerShell によって提供される定義済みの動詞名のいずれかを使用します
2. 動詞を使用してアクションの一般的な範囲を説明し、パラメーターを使用してコマンドレットのアクションをさらに調整します
3. 承認された動詞の同義語を使用しはならない。 たとえば、常に `Remove` を使用し、`Delete` や `Eliminate` は決して使用してはならない
4. このトピックにリストされている各動詞の形式のみを使用しなければならない。 たとえば、`Get` を使用しますが、Getting や Gets は使用してはならない
5. 次の予約動詞またはエイリアスは使用しないでください。 PowerShell 言語とまれないくつかのコマンドレットは、例外的な状況でこれらの動詞を使用します。
    - ForEach (foreach)
    - Ping (pi)
    - Sort (sr)
    - Tee (te)
    - Where (wh)


## 異なるアクションを表す似たような動詞

以下の似たような動詞は異なるアクションを表します。

### New と Add
新しいリソースを作成する際には New 動詞を使用します。既存のコンテナやリソースに何かを追加する際には Add を使用します。たとえば、Add-Content は既存のファイルに出力を追加します。

### New と Set
新しいリソースを作成する際には New 動詞を使用します。既存のリソースを修正する場合には Set 動詞を使用し、オプションで存在しない場合には作成します。例えば、Set-Variable コマンドレットです。

### Find と Search
オブジェクトを検索する際には Find 動詞を使用します。コンテナ内のリソースへの参照を作成する際には Search 動詞を使用します。

### Get と Read
リソース（ファイルなど）に関する情報を取得する場合や、将来そのリソースにアクセスするためのオブジェクトを取得する場合には Get 動詞を使用します。リソースを開き、その中に含まれる情報を抽出する場合には Read 動詞を使用します。

### Invoke と Start
コマンドの実行など同期的な操作を行う場合には Invoke 動詞を使用します。コマンドの実行を開始し、終了を待機しないときは Start 動詞を使用します。

### Ping と Test
"Test" を使用してください。

## 一般的な動詞(Verb)

|Verb (alias)|内容|避けるべき類義語|
|:----|:----|:----|
|Add (a)|リソースをコンテナに追加するか、アイテムを別のアイテムにアタッチします。 たとえば、Add-Content コマンドレットはコンテンツをファイルに追加します。 この動詞は Remove  と対です。|Append, Attach, Concatenate, Insert|
|Clear (cl)|コンテナからすべてのリソースを削除しますが、コンテナは削除されません。 たとえば、Clear-Content コマンドレットはファイルの内容を削除しますが、ファイルは削除しません。|Flush, Erase, Release, Unmark, Unset, Nullify|
|Close (cs)|リソースの状態を変更して、アクセス不可、使用不可、または使用不能にします。 この動詞は Open  と対です。| |
|Copy (cp)|リソースを別の名前または別のコンテナにコピーします。 たとえば、Copy-Item コマンドレットは、データ ストアのある場所から別の場所にアイテム (ファイルなど) をコピーします。|Duplicate, Clone, Replicate, Sync|
|Enter (et)|ユーザーがリソースに移動できるようにするアクションを指定します。 たとえば、Enter-PSSession コマンドレットは、ユーザーを対話型セッションに切り替えます。 この動詞は Exit  と対です。|Push, Into|
|Exit (ex)|現在の環境またはコンテキストを、最後に使用したコンテキストに設定します。 たとえば、Exit-PSSession コマンドレットは、対話型セッションの開始に使用されたセッションにユーザーを配置します。 この動詞は Enter  と対です。|Pop, Out|
|Find (fd)|コンテナ内で不明、暗黙的、オプション、または指定されたオブジェクトを探します。|Search|
|Format (f)|オブジェクトを指定された形式またはレイアウトに配置します。| |
|Get (g)|リソースを取得するアクションを指定します。 この動詞は Set  と対です。|Read, Open, Cat, Type, Dir, Obtain, Dump, Acquire, Examine, Find, Search|
|Hide (h)|リソースを検出不能にします。 たとえば、名前に Hide 動詞が含まれるコマンドレットは、サービスをユーザーから隠す可能性があります。 この動詞は Show  と対です。|Block|
|Join (j)|リソースを 1 つのリソースに結合します。 たとえば、Join-Path コマンドレットは、パスとその子パスの 1 つを組み合わせて、単一のパスを作成します。 この動詞は Split  と対です。|Combine, Unite, Connect, Associate|
|Lock (lk)|リソースを確保します。 この動詞は Unlock  と対です。|Restrict, Secure|
|Move (m)|リソースをある場所から別の場所に移動します。 たとえば、Move-Item コマンドレットは、データ ストア内のある場所から別の場所にアイテムを移動します。|Transfer, Name, Migrate|
|New (n)|リソースを作成します。 （Set 動詞は、Set-Variable コマンドレットなど、データを含むリソースを作成するときにも使用できます。）|Create, Generate, Build, Make, Allocate|
|Open (op)|リソースの状態を変更して、アクセス可能、使用可能、または使用可能にします。 この動詞は Close  と対です。| |
|Optimize (om)|リソースの有効性を高めます。| |
|Pop (pop)|スタックの一番上から項目を削除します。 たとえば、Pop-Location コマンドレットは、現在の場所をスタックに最後にプッシュされた場所に変更します。| |
|Push (pu)|アイテムをスタックの一番上に追加します。 たとえば、Push-Location コマンドレットは、現在の場所をスタックにプッシュします。| |
|Redo (re)|リソースを元に戻された状態にリセットします。| |
|Remove (r)|コンテナからリソースを削除します。 たとえば、Remove-Variable コマンドレットは変数とその値を削除します。 この動詞は Add  と対です。|Clear, Cut, Dispose, Discard, Erase|
|Rename (rn)|リソースの名前を変更します。 たとえば、保存されたデータにアクセスするために使用される Rename-Item コマンドレットは、データ ストア内のアイテムの名前を変更します。|Change|
|Reset (rs)|リソースを元の状態に戻します。| |
|Resize(rz)|リソースのサイズを変更します。| |
|Search (sr)|コンテナ内のリソースへの参照を作成します。|Find, Locate|
|Select (sc)|コンテナ内のリソースを見つけます。 たとえば、Select-String コマンドレットは、文字列およびファイル内のテキストを検索します。|Find, Locate|
|Set (s)|既存のリソースのデータを置き換えるか、データを含むリソースを作成します。 たとえば、Set-Date コマンドレットは、ローカル コンピュータのシステム時刻を変更します。 （New 動詞はリソースの作成にも使用できます。）この動詞は Get  と対です。|Write, Reset, Assign, Configure|
|Show (sh)|リソースをユーザーに表示します。 この動詞は Hide  と対です。|Display, Produce|
|Skip (sk)|シーケンス内の 1 つ以上のリソースまたはポイントをバイパスします。|Bypass, Jump|
|Split (sl)|リソースの一部を分離します。 たとえば、Split-Path コマンドレットはパスのさまざまな部分を返します。 この動詞は結合とペアです。|Separate|
|Step (st)|シーケンス内の次のポイントまたはリソースに移動します。| |
|Switch (sw)|2 つの場所、責任、または状態の間で変更するなど、2 つのリソースを交互に切り替えるアクションを指定します。| |
|Undo (un)|リソースを以前の状態に設定します。| |
|Unlock (uk)|ロックされていたリソースを解放します。 この動詞は Lock  と対です。|Release, Unrestrict, Unsecure|
|Watch (wc)|リソースの変更を継続的に検査または監視します。| |


## 通信に使用する動詞

|Verb (alias)|内容|避けるべき類義語|
|:----|:----|:----|
|Connect (cc)|ソースと宛先の間にリンクを作成します。 この動詞は Disconnect  と対です。|Join, Telnet, Login|
|Disconnect (dc)|送信元と宛先の間のリンクを切断します。 この動詞は Connect  と対です。|Break, Logoff|
|Read (rd)|情報源から情報を取得します。 この動詞は Write  と対です。|Acquire, Prompt, Get|
|Receive (rc)|ソースから送信された情報を受け入れます。 この動詞は Send とペアです。|Read, Accept, Peek|
|Send (sd)|目的地に情報を届けます。 この動詞は Receive  と対です。|Put, Broadcast, Mail, Fax|
|Write (wr)|ターゲットに情報を追加します。 この動詞は Read  と対です。|Put, Print|

## データ動詞

|Verb (alias)|内容|避けるべき類義語|
|:----|:----|:----|
|Backup (ba)|データを複製して保存します。|Save, Burn, Replicate, Sync|
|Checkpoint (ch)|データまたはその構成の現在の状態のスナップショットを作成します。|Diff|
|Compare (cr)|あるリソースのデータを別のリソースのデータと比較して評価します。|Diff|
|Compress (cm)|リソースのデータを圧縮します。 拡張と組み合わせます。|Compact|
|Convert (cv)|コマンドレットが双方向変換をサポートしている場合、またはコマンドレットが複数のデータ型間の変換をサポートしている場合、データをある表現から別の表現に変更します。|Change, Resize, Resample|
|ConvertFrom (cf)|1 つの主な入力 (コマンドレットの名詞は入力を示します) を 1 つ以上のサポートされている出力の種類に変換します。|Export, Output, Out|
|ConvertTo (ct)|1 つ以上の入力の種類からプライマリ出力の種類に変換します (コマンドレットの名詞は出力の種類を示します)。|Import, Input, In|
|Dismount (dm)|名前付きエンティティを場所から切り離します。 この動詞は Mount とペアです。|Unmount, Unlink|
|Edit (ed)|コンテンツを追加または削除して、既存のデータを変更します。|Change, Update, Modify|
|Expand (en)|圧縮されたリソースのデータを元の状態に復元します。 この動詞は Compress  と対です。|Explode, Uncompress|
|Export (ep)|プライマリ入力をファイルなどの永続データ ストア、または交換形式にカプセル化します。 この動詞は Import と組み合わされます。|Extract, Backup|
|Group (gp)|1 つ以上のリソースを配置または関連付けます| |
|Import (ip)|永続データ ストア (ファイルなど) または交換形式で保存されているデータからリソースを作成します。 たとえば、Import-CSV コマンドレットは、カンマ区切り値 (CSV) ファイルから他のコマンドレットで使用できるオブジェクトにデータをインポートします。 この動詞はエクスポートと組み合わされます。|BulkLoad, Load|
|Initialize (in)|リソースを使用できるように準備し、デフォルトの状態に設定します。|Erase, Init, Renew, Rebuild, Reinitialize, Setup|
|Limit (l)|リソースに制約を適用します。|Quota|
|Merge (mg)|複数のリソースから 1 つのリソースを作成します。|Combine, Join|
|Mount (mt)|名前付きエンティティを場所にアタッチします。 この動詞は Dismount  と対です。|Connect|
|Out (o)|データを環境外に送信します。 たとえば、Out-Printer コマンドレットはデータをプリンターに送信します。| |
|Publish (pb)|リソースを他の人が利用できるようにします。 この動詞は Unpublish  と対です。|Deploy, Release, Install|
|Restore (rr)|リソースを事前定義された状態（Checkpoint によって設定された状態など）に設定します。 たとえば、Restore-Computer コマンドレットは、ローカル コンピューターでシステムの復元を開始します。|Repair, Return, Undo, Fix|
|Save (sv)|損失を避けるためにデータを保存します。| |
|Sync (sy)|2 つ以上のリソースが同じ状態であることを保証します。|Replicate, Coerce, Match|
|Unpublish (ub)|リソースを他の人が利用できないようにします。 この動詞は Publish  と対です。|Uninstall, Revert, Hide|
|Update (ud)|リソースを最新の状態にして、その状態、精度、適合性、またはコンプライアンスを維持します。 たとえば、Update-FormatData コマンドレットは、書式設定ファイルを更新し、現在の PowerShell コンソールに追加します。|Refresh, Renew, Recalculate, Re-index|

## 診断・トラブルシューティング に関する動詞

|Verb (alias)|内容|避けるべき類義語|
|:----|:----|:----|
|Debug (db)|リソースを調べて運用上の問題を診断します。|Diagnose|
|Measure (ms)|指定された操作によって消費されるリソースを識別するか、リソースに関する統計を取得します。|Calculate, Determine, Analyze|
|Ping (pi)|**非推奨** - 代わりに `Test` 動詞を使用してください。| |
|Repair (rp)|リソースを使用可能な状態に復元します|Fix, Restore|
|Resolve (rv)|リソースの簡略表現をより完全な表現にマップします。|Expand, Determine|
|Test (t)|リソースの動作または一貫性を検証します。|Diagnose, Analyze, Salvage, Verify|
|Trace (tr)|リソースのアクティビティを追跡します。|Track, Follow, Inspect, Dig|


## ライフサイクル 動詞

|Verb (alias)|内容|避けるべき類義語|
|:----|:----|:----|
|Approve (ap)|リソースまたはプロセスのステータスを確認または同意します。| |
|Assert (as)|リソースの状態を確認します。|Certify|
|Build (bd)|入力ファイルのセット (通常はソース コードまたは宣言ドキュメント) からアーティファクト (通常はバイナリまたはドキュメント) を作成します。この動詞は PowerShell 6 で追加されました。| |
|Complete (cp)|操作を終了します。| |
|Confirm (cn)|リソースまたはプロセスの状態を確認、検証、または検証します。|Acknowledge, Agree, Certify, Validate, Verify|
|Deny (dn)|リソースまたはプロセスの状態を拒否、反対、ブロック、または反対します。|Block, Object, Refuse, Reject|
|Deploy (dp)|アプリケーション、Web サイト、またはソリューションをリモート ターゲットに送信し、展開の完了後にそのソリューションの利用者がアクセスできるようにします。 この動詞は PowerShell 6 で追加されました。| |
|Disable (d)|リソースを使用不可または非アクティブな状態に構成します。 たとえば、Disable-PSBreakpoint コマンドレットはブレークポイントを非アクティブにします。 この動詞は Enable と対です。|Halt, Hide|
|Enable (e)|リソースを使用可能な状態またはアクティブな状態に設定します。 たとえば、Enable-PSBreakpoint コマンドレットを使用すると、ブレークポイントがアクティブになります。 この動詞は Disable  と対です。|Start, Begin|
|Install (is)|リソースを場所に配置し、必要に応じて初期化します。 この動詞は Uninstall  と対です。|Setup|
|Invoke (i)|コマンドやメソッドの実行などのアクションを実行します。|Run, Start|
|Register (rg)|データベースなどのリポジトリにリソースのエントリを作成します。 この動詞は Unregister  と対です。| |
|Request (rq)|リソースを要求するか、権限を要求します。| |
|Restart (rt)|操作を停止し、再度開始します。 たとえば、Restart-Service コマンドレットはサービスを停止してから開始します。|Recycle|
|Resume (ru)|一時停止されていた操作を開始します。 たとえば、Resume-Service コマンドレットは、一時停止されているサービスを開始します。 この動詞は Suspend  と対です。| |
|Start (sa)|操作を開始します。 たとえば、Start-Service コマンドレットはサービスを開始します。 この動詞は Stop  と対です。|Launch, Initiate, Boot|
|Stop (sp)|活動を中止します。 この動詞は Start  と対です。|End, Kill, Terminate, Cancel|
|Submit (sb)|承認のためにリソースを提示します。|Post|
|Suspend (ss)|アクティビティを一時停止します。 たとえば、Suspend-Service コマンドレットはサービスを一時停止します。 この動詞は Resume  と対です。|Pause|
|Uninstall (us)|指定された場所からリソースを削除します。 この動詞は Install  と対です。| |
|Unregister (ur)|リポジトリからリソースのエントリを削除します。 この動詞は Register  と対です。|Remove|
|Wait (w)|指定されたイベントが発生するまで操作を一時停止します。 たとえば、Wait-Job コマンドレットは、1 つ以上のバックグラウンド ジョブが完了するまで操作を一時停止します。|Sleep, Pause|

## セキュリティ 動詞

|Verb (alias)|内容|避けるべき類義語|
|:----|:----|:----|
|Block (bl)|リソースへのアクセスを制限します。 この動詞は Unblock  と対です。|Prevent, Limit, Deny|
|Grant (gr)|リソースへのアクセスを許可します。 この動詞は Revoke  と対です。|Allow, Enable|
|Protect (pt)|リソースを攻撃や損失から守ります。 この動詞は Unprotect と組み合わされます。|Encrypt, Safeguard, Seal|
|Revoke (rk)|リソースへのアクセスを許可しないアクションを指定します。 この動詞は Grant  と対です。|Remove, Disable|
|Unblock (ul)|リソースに対する制限を削除します。 この動詞は Block  と対です。|Clear, Allow|
|Unprotect (up)|攻撃や損失を防ぐために追加されたリソースから保護機能を削除します。 この動詞は Protect  と対です。|Decrypt, Unseal|

## そのほか

`Use` 何かをするために資源を使う、あるいは資源を含む。