第 2 章 - ヘルプ システム
PowerShell の熟練度を評価するために設計されたテストで、IT プロフェッショナルの 2 つのグループ (初心者とエキスパート) が、まずはコンピューターにアクセスできない状態で筆記テストを受けました。 驚いたことに、テスト スコアは両方のグループで同等のスキルを示しました。 その後、最初のテストとまったく同じテストが実施されましたが、1 つ重要な違いがありました。それは、参加者は PowerShell を搭載したオフライン コンピューターにアクセスできるということです。 その結果、今回は 2 つのグループ間に大きなスキルの差があることが明らかになりました。
2 つの評価間で観察されたこれらの結果にはどのような要因が寄与したのでしょうか?
エキスパートは必ずしも答えを知っているわけではありません。しかし、答えを導き出す手段がわかっているのです。
2 つのテストで観察された結果に違いが出た原因は、エキスパートが何千もの PowerShell コマンドを記憶しているわけではないからです。 代わりに、PowerShell 内のヘルプ システムを使用する能力が優れているため、必要に応じてコマンドを発見し、使い方を学習できます。
ヘルプ システムを使いこなすことが PowerShell で成功するための鍵となります。
PowerShell の作成者である Jeffrey Snover が同様の話を何度も語っているのを聞いたことがあります。
Discoverability (探索可能性)
PowerShell のコンパイルされたコマンドは cmdlet と呼ばれます ("CMD レット" ではなく "コマンドレット" と発音します)。 コマンドレットの名前付け規則は、単数形の動詞-名詞という形式に従っており、簡単に見つけられるようになっています。 たとえば、Get-Process
は実行中のプロセスを確認するコマンドレットであり、Get-Service
はサービスのリストを取得するコマンドレットです。 関数 (スクリプト コマンドレットとも呼ばれます) とエイリアスは、他の種類の PowerShell コマンドです (このドキュメントの後半で説明しています)。 "PowerShell コマンド" という用語は、コマンドレット、関数、エイリアスなど、PowerShell のあらゆるコマンドを表します。
ping.exe
や ipconfig.exe
などの従来のコマンドライン プログラムなど、オペレーティング システムのネイティブ コマンドを PowerShell から実行することもできます。
PowerShell の 3 つのコア コマンドレット
Get-Help
Get-Command
Get-Member
(第 3 章で説明)
よく聞かれるのが、"PowerShell のコマンドをどうやって調べるのですか?" ということです。 Get-Help
と Get-Command
はどちらも、PowerShell でコマンドを見つけて理解するための貴重なリソースです。
Get-Help
PowerShell のヘルプ システムでまず知っておく必要があるのが、Get-Help
コマンドレットを使用する方法です。
Get-Help
は、コマンドを見つけた後に、そのコマンドの使用方法を確認するうえで役立つ多目的コマンドです。
Get-Help
を使ってコマンドを検索することもできますが、Get-Command
とは異なり、このコマンドと比べるとより間接的です。
Get-Help
を使ってコマンドを検索する場合、、まず入力に基づいてコマンド名のワイルドカード検索が実行されます。 一致するものが見つからない場合は、システム上のすべての PowerShell ヘルプ記事に対して包括的なフルテキスト検索が実行されます。 それでも結果が見つからない場合は、エラーが返されます。
Get-Help
を使用して、Get-Help
コマンドレットのヘルプ コンテンツを表示する方法を次に示します。
Get-Help -Name Get-Help
PowerShell バージョン 3.0 以降、ヘルプ コンテンツはオペレーティング システムにプリインストールされません。 Get-Help
を初めて実行すると、PowerShell ヘルプ ファイルをコンピューターにダウンロードするかどうかを確認するメッセージが表示されます。
Y を押して [はい] と答えると、Update-Help
コマンドレットが実行され、ヘルプ コンテンツがダウンロードされます。
Do you want to run Update-Help?
The Update-Help cmdlet downloads the most current Help files for Windows
PowerShell modules, and installs them on your computer. For more information
about the Update-Help cmdlet, see
https:/go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
このメッセージが表示されない場合は、管理者として実行されている管理者特権の PowerShell セッションから Update-Help
を実行します。
更新が完了すると、ヘルプ記事が表示されます。
ここでコンピューターでこの例を実行し、出力を確認して、ヘルプ システムがどのように情報を整理しているかを確認します。
- 名前
- 概要
- SYNTAX
- 説明
- 関連リンク
- REMARKS
出力を確認する際には、ヘルプ記事にはしばしば大量の情報が含まれており、既定で表示されるのはヘルプ記事全体ではないことに留意してください。
パラメーター
PowerShell でコマンドを実行するときに、コマンドに追加情報または入力を指定する必要がある場合があります。 パラメーターを使用すると、コマンドの動作を変更するオプションと引数を指定できます。 各ヘルプ記事の「構文」セクションでは、コマンドに使用可能なパラメーターの概要が説明されています。
Get-Help
には、ヘルプ記事全体またはコマンドのサブセットを返すために指定できるいくつかのパラメーターがあります。 Get-Help
で使用可能なすべてのパラメーターを表示するには、次の例に示すように、ヘルプ記事の「構文」セクションを参照してください。
...
SYNTAX
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Full]
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] -Detailed
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] -Examples
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] -Online [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] -Parameter <System.String> [-Path <System.String>]
[-Role <System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] [-Path <System.String>] [-Role <System.String[]>]
-ShowWindow [<CommonParameters>]
...
パラメーター セット
Get-Help
の「構文」セクションを確認すると、情報が 6 回繰り返されていることがわかります。 これらの各ブロックは個々のパラメーター セットであり、Get-Help
コマンドレットには 6 つの異なるパラメーター セットがあることを示しています。 詳しく見ると、各パラメーター セットには少なくとも 1 つの固有のパラメーターが含まれており、他のパラメーター セットと異なることがわかります。
パラメーター セットを同時に使用することはできません。 1 つのパラメーター セットにのみ存在する一意のパラメーターを指定すると、PowerShell ではそのパラメーター セット内に含まれるパラメーターのみを使用するように制限されます。
たとえば、Get-Help
の Full パラメーターと Detailed パラメーターは異なるパラメーター セットに属しているため、一緒に使用することはできません。
次の各パラメーターは、Get-Help
コマンドレットの異なるパラメーター セットに属します。
- 完全
- 詳細
- 例
- オンライン
- パラメーター
- ShowWindow
コマンド構文
PowerShell を初めて使用する場合は、「構文」セクションの角かっこと山かっこで特徴付けられた難解な情報を理解するのが難しく感じられるかもしれません。 ただし、PowerShell を使いこなすには、これらの構文要素を学習することが不可欠です。 PowerShell ヘルプ システムを頻繁に使用するほど、すべてのニュアンスを覚えやすくなります。
Get-EventLog
コマンドレットの構文を表示します。
Get-Help Get-EventLog
次の出力は、ヘルプ記事の関連部分を示しています。
...
SYNTAX
Get-EventLog [-LogName] <System.String> [[-InstanceId]
<System.Int64[]>] [-After <System.DateTime>] [-AsBaseObject] [-Before
<System.DateTime>] [-ComputerName <System.String[]>] [-EntryType {Error
| Information | FailureAudit | SuccessAudit | Warning}] [-Index
<System.Int32[]>] [-Message <System.String>] [-Newest <System.Int32>]
[-Source <System.String[]>] [-UserName <System.String[]>]
[<CommonParameters>]
Get-EventLog [-AsString] [-ComputerName <System.String[]>] [-List]
[<CommonParameters>]
...
構文情報には、角かっこ ([]
) のペアが含まれています。 これらの角かっこは、使い方によって 2 つの異なる目的を果たしています。
- 角かっこで囲まれた要素は省略可能です。
<string[]>
など、データ型の後に続く空の角かっこは、パラメーターが配列またはコレクション オブジェクトとして渡される複数の値を受け取れることを示します。
位置指定パラメーター
一部のコマンドレットは、位置指定パラメーターを受け取れるように設計されています。 位置指定パラメーターを使用すると、パラメーターの名前を指定せずに値を指定できます。 位置を指定してパラメーターを使用する場合は、その値をコマンド ラインの正しい位置に指定する必要があります。 パラメーターの位置情報については、コマンドのヘルプ記事の「パラメーター」セクションで確認できます。 パラメーター名を明示的に指定する場合は、任意の順序でパラメーターを使用できます。
Get-EventLog
コマンドレットの場合、最初のパラメーター セットの最初のパラメーターは LogName です。
LogName は角っかこで囲まれており、位置してパラメーターであることが示されています。
Get-EventLog [-LogName] <System.String>
LogName は位置指定パラメーターなので、名前または位置のいずれかで指定できます。 パラメーター名の後の山かっこに従って、LogName の値は単一の文字列にする必要があります。 パラメーター名とデータ型の両方を囲む角かっこがない場合は、LogName がこの特定のパラメータ セット内の必須パラメーターであることを示しています。
そのパラメーター セットの 2 番目のパラメーターは InstanceId です。 パラメーター名とデータ型の両方が角かっこで囲まれており、InstanceId が省略可能なパラメーターであることを示しています。
[[-InstanceId] <System.Int64[]>]
さらに、InstanceId には、LogName パラメーターと同様の位置指定パラメーターであることを示す、独自の角かっこのペアがあります。 データ型に続く空の角かっこのセットは、InstanceId が複数の値を受け入れ可能であることを意味します。
スイッチ パラメーター
値を必要としないパラメーターが、スイッチ パラメーターと呼ばれます。 スイッチ パラメーターは、パラメーター名の後にデータ型がないため簡単に識別できます。 スイッチ パラメーターを指定した場合、その値は true
になります。 スイッチ パラメーターを指定しない場合、その値は false
になります。
2 番目のパラメーター セットには、スイッチ パラメーターである List パラメーターが含まれています。 List パラメーターを指定すると、ローカル コンピューター上のイベント ログの一覧が返されます。
[-List]
構文に対する簡略化されたアプローチ
一部のコマンドについては、平易な英語を除き、難解なコマンド構文と同じ情報を取得するための、よりユーザー フレンドリな方法があります。 PowerShell は、Full パラメーターを指定して Get-Help
を使用すると完全なヘルプ記事を返すため、コマンドの使用方法を理解しやすくなります。
Get-Help -Name Get-Help -Full
ここでコンピューターでこの例を実行し、出力を確認して、ヘルプ システムがどのように情報を整理しているかを確認します。
- 名前
- 概要
- SYNTAX
- 説明
- PARAMETERS
- 入力
- 出力
- 注
- 例
- 関連リンク
Get-Help
コマンドレットで Full パラメーターを指定すると、出力にいくつかのセクションが追加されます。 これらのセクションのうち、「パラメーター」では多くの場合、各パラメーターの詳細な説明が提供されます。 ただし、この情報の範囲は、調査する特定のコマンドによって異なります。
...
-Detailed <System.Management.Automation.SwitchParameter>
Adds parameter descriptions and examples to the basic help display.
This parameter is effective only when the help files are installed
on the computer. It has no effect on displays of conceptual ( About_
) help.
Required? true
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Examples <System.Management.Automation.SwitchParameter>
Displays only the name, synopsis, and examples. This parameter is
effective only when the help files are installed on the computer. It
has no effect on displays of conceptual ( About_ ) help.
Required? true
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Full <System.Management.Automation.SwitchParameter>
Displays the entire help article for a cmdlet. Full includes
parameter descriptions and attributes, examples, input and output
object types, and additional notes.
This parameter is effective only when the help files are installed
on the computer. It has no effect on displays of conceptual ( About_
) help.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
...
前のコマンドを実行して Get-Help
コマンドのヘルプを表示したとき、出力が速くスクロールしすぎて読みにくいことに気付いたかもしれません。
PowerShell コンソール、Windows ターミナル、または VS Code を使用していて、ヘルプ記事を表示する必要がある場合は、help
関数が役立ちます。 Get-Help
の出力を more.com
にパイプ処理し、一度に 1 ページずつヘルプ コンテンツを表示します。 ユーザー エクスペリエンスが向上し、入力も少なくて済むため、Get-Help
コマンドレットではなく help
関数を使用することをお勧めします。
Note
ISE は more.com
の使用をサポートしていないため、help
を実行すると Get-Help
と同じように動作します。
コンピューター上の PowerShell で次の各コマンドを実行します。
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
前のコマンドを実行したときに、出力に何か変化が見られましたか?
前の例において、最初の行では Get-Help
コマンドレットが使用され、2 行目では help
関数が使用され、3 行目では help
関数が使用され Name パラメーターが省略されています。 Name は位置指定パラメーターであるため、3 行目の例では、パラメーターの名前を明示的に指定する代わりに、その位置を利用します。
違いは、最後の 2 つのコマンドは出力を一度に 1 ページずつ表示することです。 help
機能を使用する場合、Space キーを押すと次のコンテンツ ページが表示され、Q を押すと終了します。 PowerShell で対話形式で実行されているコマンドを終了する必要がある場合は、Ctrl+C を押します。
特定のパラメーターに関する情報をすばやく見つけるには、Parameter パラメーターを使用します。 この方法では、ヘルプ記事全体ではなく、パラメーター固有の情報のみを含むコンテンツが返されます。 これは、特定のパラメーターに関する情報を見つける最も簡単な方法です。
次の例では、Parameter パラメーターを指定した help
関数を使用して、Get-Help
の Name パラメーターのヘルプ記事から情報を返します。
help Get-Help -Parameter Name
ヘルプ情報では、Name パラメーターは位置指定であり、位置指定で使用する場合は最初の位置 (位置 0) に指定する必要があることが示されます。
-Name <System.String>
Gets help about the specified command or concept. Enter the name of a
cmdlet, function, provider, script, or workflow, such as `Get-Member`,
a conceptual article name, such as `about_Objects`, or an alias, such
as `ls`. Wildcard characters are permitted in cmdlet and provider
names, but you can't use wildcard characters to find the names of
function help and script help articles.
To get help for a script that isn't located in a path that's listed in
the `$env:Path` environment variable, type the script's path and file
name.
If you enter the exact name of a help article, `Get-Help` displays the
article contents.
If you enter a word or word pattern that appears in several help
article titles, `Get-Help` displays a list of the matching titles.
If you enter any text that doesn't match any help article titles,
`Get-Help` displays a list of articles that include that text in their
contents.
The names of conceptual articles, such as `about_Objects`, must be
entered in English, even in non-English versions of PowerShell.
Required? false
Position? 0
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
Name パラメーターには、パラメーター名の横にある <String>
データ型で識別される文字列値が必要です。
ヘルプ記事のサブセットを返すために Get-Help
で指定可能な他のパラメーターがいくつかあります。 動作を確認するには、コンピューターで次のコマンドを実行します。
Get-Help -Name Get-Command -Full
Get-Help -Name Get-Command -Detailed
Get-Help -Name Get-Command -Examples
Get-Help -Name Get-Command -Online
Get-Help -Name Get-Command -Parameter Noun
Get-Help -Name Get-Command -ShowWindow
私はいつも、help <command name>
は、Full パラメーターまたは Online パラメーターと一緒に使用します。 例のみに関心がある場合は、Examples パラメーターを使用します。 特定のパラメーターにのみ関心がある場合は、Parameter パラメーターを使用します。
ShowWindow パラメーターを使用すると、ヘルプ コンテンツが別の検索可能ウィンドウに表示されます。 複数のモニターがある場合は、そのウィンドウを別のモニターに移動できます。 ただし、ShowWindow パラメーターには既知のバグがあり、ヘルプ記事全体を表示できない可能性があります。 ShowWindow パラメーターには、グラフィカル ユーザー インターフェイス (GUI) を備えたオペレーティング システムも必要です。 Windows Server Core で使用しようとすると、エラーが返されます。
インターネットにアクセスできる場合は、代わりに Online パラメーターを使用できます。 Online パラメーターを使用すると、既定の Web ブラウザーでヘルプ記事が開きます。 オンライン コンテンツは最新のコンテンツです。 ブラウザーを使用すると、ヘルプ コンテンツを検索したり、関連するその他のヘルプ記事を表示したりできます。
Note
Online パラメーターは、About 記事ではサポートされていません。
help Get-Command -Online
Get-Help を使用してコマンドを検索する
Get-Help
を使用してコマンドを検索するには、Name パラメーターの値として、アスタリスク (*
) ワイルドカード文字で囲まれた検索語句を指定します。 次の例では、位置を指定して Name パラメーターを使用します。
help *process*
Name Category Module Synops
---- -------- ------ ------
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Con...
Exit-PSHostProcess Cmdlet Microsoft.PowerShell.Core Clo...
Get-PSHostProcessInfo Cmdlet Microsoft.PowerShell.Core Get...
Debug-Process Cmdlet Microsoft.PowerShell.M... Deb...
Get-Process Cmdlet Microsoft.PowerShell.M... Get...
Start-Process Cmdlet Microsoft.PowerShell.M... Sta...
Stop-Process Cmdlet Microsoft.PowerShell.M... Sto...
Wait-Process Cmdlet Microsoft.PowerShell.M... Wai...
Invoke-LapsPolicyProcessing Cmdlet LAPS Inv...
ConvertTo-ProcessMitigationPolicy Cmdlet ProcessMitigations Con...
Get-ProcessMitigation Cmdlet ProcessMitigations Get...
Set-ProcessMitigation Cmdlet ProcessMitigations Set...
このシナリオでは、*
ワイルドカード文字を追加する必要はありません。 Get-Help
は、指定した値と一致するコマンドを見つけられなかった場合、その値のフルテキスト検索を実行します。 次の例では、process
の両端に *
ワイルドカード文字を指定した場合と同じ結果が生成されます。
help process
値内にワイルドカード文字を指定すると、Get-Help
は指定したパターンと一致するコマンドのみを検索します。 フルテキスト検索を実行する 次のコマンドは結果を返しません。
help pr*cess
PowerShell では、ダッシュで始まる値を引用符で囲まずに指定すると、その値がパラメーター名として解釈されるため、エラーが発生します。 Get-Help
コマンドレットにそのようなパラメーター名は存在しません。
help -process
-process
で終わるコマンドを検索する場合は、値の先頭に *
を追加する必要があります。
help *-process
Get-Help
を使用して PowerShell コマンドを検索する場合は、特定しすぎるのではなく、あいまいに検索することをお勧めします。
先ほど process
を検索したとき、名前に process
が含まれるコマンドのみが結果として返されました。 しかし、processes
を検索しても、一致したコマンド名は見つかりません。 前述のように、ヘルプで一致するものが見つからない場合は、システム上のすべてのヘルプ記事に対して包括的なフルテキスト検索が実行され、その結果が返されます。 この種類の検索では、多くの場合、ユーザーに関係のない情報を含め、予想よりも多くの結果が生成されます。
help processes
Name Category Module Synops
---- -------- ------ ------
Disconnect-PSSession Cmdlet Microsoft.PowerShell.Core Dis...
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Con...
ForEach-Object Cmdlet Microsoft.PowerShell.Core Per...
Get-PSHostProcessInfo Cmdlet Microsoft.PowerShell.Core Get...
Get-PSSessionConfiguration Cmdlet Microsoft.PowerShell.Core Get...
New-PSSessionOption Cmdlet Microsoft.PowerShell.Core Cre...
New-PSTransportOption Cmdlet Microsoft.PowerShell.Core Cre...
Out-Host Cmdlet Microsoft.PowerShell.Core Sen...
Start-Job Cmdlet Microsoft.PowerShell.Core Sta...
Where-Object Cmdlet Microsoft.PowerShell.Core Sel...
Debug-Process Cmdlet Microsoft.PowerShell.M... Deb...
Get-Process Cmdlet Microsoft.PowerShell.M... Get...
Get-WmiObject Cmdlet Microsoft.PowerShell.M... Get...
Start-Process Cmdlet Microsoft.PowerShell.M... Sta...
Stop-Process Cmdlet Microsoft.PowerShell.M... Sto...
Wait-Process Cmdlet Microsoft.PowerShell.M... Wai...
Clear-Variable Cmdlet Microsoft.PowerShell.U... Del...
Convert-String Cmdlet Microsoft.PowerShell.U... For...
ConvertFrom-Csv Cmdlet Microsoft.PowerShell.U... Con...
ConvertFrom-Json Cmdlet Microsoft.PowerShell.U... Con...
ConvertTo-Html Cmdlet Microsoft.PowerShell.U... Con...
ConvertTo-Xml Cmdlet Microsoft.PowerShell.U... Cre...
Debug-Runspace Cmdlet Microsoft.PowerShell.U... Sta...
Export-Csv Cmdlet Microsoft.PowerShell.U... Con...
Export-FormatData Cmdlet Microsoft.PowerShell.U... Sav...
Format-List Cmdlet Microsoft.PowerShell.U... For...
Format-Table Cmdlet Microsoft.PowerShell.U... For...
Get-Unique Cmdlet Microsoft.PowerShell.U... Ret...
Group-Object Cmdlet Microsoft.PowerShell.U... Gro...
Import-Clixml Cmdlet Microsoft.PowerShell.U... Imp...
Import-Csv Cmdlet Microsoft.PowerShell.U... Cre...
Measure-Object Cmdlet Microsoft.PowerShell.U... Cal...
Out-File Cmdlet Microsoft.PowerShell.U... Sen...
Out-GridView Cmdlet Microsoft.PowerShell.U... Sen...
Select-Object Cmdlet Microsoft.PowerShell.U... Sel...
Set-Variable Cmdlet Microsoft.PowerShell.U... Set...
Sort-Object Cmdlet Microsoft.PowerShell.U... Sor...
Tee-Object Cmdlet Microsoft.PowerShell.U... Sav...
Trace-Command Cmdlet Microsoft.PowerShell.U... Con...
Write-Information Cmdlet Microsoft.PowerShell.U... Spe...
Export-BinaryMiLog Cmdlet CimCmdlets Cre...
Get-CimAssociatedInstance Cmdlet CimCmdlets Ret...
Get-CimInstance Cmdlet CimCmdlets Get...
Import-BinaryMiLog Cmdlet CimCmdlets Use...
Invoke-CimMethod Cmdlet CimCmdlets Inv...
New-CimInstance Cmdlet CimCmdlets Cre...
Remove-CimInstance Cmdlet CimCmdlets Rem...
Set-CimInstance Cmdlet CimCmdlets Mod...
Compress-Archive Function Microsoft.PowerShell.A... Cre...
Get-Counter Cmdlet Microsoft.PowerShell.D... Get...
Invoke-WSManAction Cmdlet Microsoft.WSMan.Manage... Inv...
Remove-WSManInstance Cmdlet Microsoft.WSMan.Manage... Del...
Get-WSManInstance Cmdlet Microsoft.WSMan.Manage... Dis...
New-WSManInstance Cmdlet Microsoft.WSMan.Manage... Cre...
Set-WSManInstance Cmdlet Microsoft.WSMan.Manage... Mod...
about_Arithmetic_Operators HelpFile
about_Arrays HelpFile
about_Environment_Variables HelpFile
about_Execution_Policies HelpFile
about_Functions HelpFile
about_Jobs HelpFile
about_Logging HelpFile
about_Methods HelpFile
about_Objects HelpFile
about_Pipelines HelpFile
about_Preference_Variables HelpFile
about_Remote HelpFile
about_Remote_Jobs HelpFile
about_Session_Configuration_Files HelpFile
about_Simplified_Syntax HelpFile
about_Switch HelpFile
about_Variables HelpFile
about_Variable_Provider HelpFile
about_Windows_Powershell_5.1 HelpFile
about_WQL HelpFile
about_WS-Management_Cmdlets HelpFile
about_Foreach-Parallel HelpFile
about_Parallel HelpFile
about_Sequence HelpFile
process
を検索すると、12 件の結果が返されました。 しかし、processes
を検索すると、78 件の結果が返されました。 検索で一致するものが 1 件しか見つからなかった場合は、Get-Help
は検索結果を一覧表示するのではなく、ヘルプ コンテンツを表示します。
help *hotfix*
NAME
Get-HotFix
SYNOPSIS
Gets the hotfixes that are installed on local or remote computers.
SYNTAX
Get-HotFix [-ComputerName <System.String[]>] [-Credential
<System.Management.Automation.PSCredential>] [-Description
<System.String[]>] [<CommonParameters>]
Get-HotFix [[-Id] <System.String[]>] [-ComputerName <System.String[]>]
[-Credential <System.Management.Automation.PSCredential>]
[<CommonParameters>]
DESCRIPTION
> This cmdlet is only available on the Windows platform. The
`Get-Hotfix` cmdlet uses the Win32_QuickFixEngineering WMI class to
list hotfixes that are installed on the local computer or specified
remote computers.
RELATED LINKS
Online Version: https://video2.skills-academy.com/powershell/module/microsoft.
powershell.management/get-hotfix?view=powershell-5.1&WT.mc_id=ps-gethelp
about_Arrays
Add-Content
Get-ComputerRestorePoint
Get-Credential
Win32_QuickFixEngineering class
REMARKS
To see the examples, type: "get-help Get-HotFix -examples".
For more information, type: "get-help Get-HotFix -detailed".
For technical information, type: "get-help Get-HotFix -full".
For online help, type: "get-help Get-HotFix -online"
また、この機能は一般には知られていませんが、Get-Help
を使用するとヘルプ記事がないコマンドを見つけることもできます。 more
関数は、ヘルプ記事がないコマンドの 1 つです。 Get-Help
を使用してヘルプ記事がないコマンドが見つかるかどうかを確認するには、help
関数を使用して more
を見つけます。
help *more*
検索で一致が 1 件しか見つからなかったため、コマンドにヘルプ記事がない場合に表示される基本的な構文情報が返されました。
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
PowerShell ヘルプ システムには、概念的な About ヘルプ記事も含まれています。 About 記事を取得するには、システムのヘルプ コンテンツを更新する必要があります。 詳細については、この章の「ヘルプの更新」セクションを参照してください。
次のコマンドを使用して、システム上のすべての About ヘルプ記事の一覧を返します。
help About_*
結果を 1 件の About ヘルプ記事に制限すると、Get-Help
はその記事の内容を表示します。
help about_Updatable_Help
ヘルプの更新
この章の前半で、Get-Help
コマンドレットを初めて実行したときに、コンピューター上の PowerShell ヘルプ記事を更新しました。 ヘルプ コンテンツの更新を取得するために、Update-Help
コマンドレットをコンピューター上で定期的に実行する必要があります。
重要
Windows PowerShell 5.1 では、管理者特権の PowerShell セッションで Update-Help
を管理者として実行する必要があります。
次の例では、Update-Help
はコンピューターにインストールされているすべてのモジュールの PowerShell ヘルプ コンテンツをダウンロードします。 最新バージョンのヘルプ コンテンツを確実にダウンロードするには、Force パラメーターを使用する必要があります。
Update-Help -Force
次の結果に示すように、モジュールからエラーが返されました。 エラーは珍しいことではなく、通常はモジュールの作成者が更新可能なヘルプを正しく構成していない場合に発生します。
Update-Help : Failed to update Help for the module(s) 'BitsTransfer' with UI
culture(s) {en-US} : Unable to retrieve the HelpInfo XML file for UI culture
en-US. Make sure the HelpInfoUri property in the module manifest is valid or
check your network connection and then try the command again.
At line:1 char:1
+ Update-Help
+ ~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [Update-Help], Except
ion
+ FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShe
ll.Commands.UpdateHelpCommand
Update-Help
では、ヘルプ コンテンツをダウンロードするためのインターネット アクセスが必要です。 コンピューターがインターネットにアクセスできない場合は、インターネットにアクセスできるコンピューター上で Save-Help
コマンドレットを使用して、更新されたヘルプ コンテンツをダウンロードして保存します。 次に、Update-Help
の SourcePath パラメーターを使用して、更新されたヘルプ コンテンツの保存場所を指定します。
Get-Command
Get-Command
は、コマンドを見つけるのに役立つもう 1 つの多目的コマンドです。 パラメーターを指定せずに Get-Command
を実行すると、システム上の PowerShell コマンドの一覧が返されます。
Get-Command
を使用して、Get-Help
と似たコマンド構文を取得することもできます。
Get-Command
の構文はどのように決定すればよいのでしょうか? この章の「Get-Help」セクションに示されているように、Get-Help
を使用して Get-Command
のヘルプ記事を表示できます。 また、Get-Command
を Syntax パラメーターと共に使用して、任意のコマンドの構文を表示することもできます。 このショートカットを使用すると、ヘルプ コンテンツ内を移動せずにコマンドを使用する方法をすばやく判断できます。
Get-Command -Name Get-Command -Syntax
Get-Command
を Syntax パラメーターとともに使用すると、Get-Help
のように許容される特定の値を一覧表示せずに、パラメーターとその値の型を示す、より簡潔な構文が表示されます。
Get-Command [[-ArgumentList] <Object[]>] [-Verb <string[]>]
[-Noun <string[]>] [-Module <string[]>]
[-FullyQualifiedModule <ModuleSpecification[]>] [-TotalCount <int>]
[-Syntax] [-ShowCommandInfo] [-All] [-ListImported]
[-ParameterName <string[]>] [-ParameterType <PSTypeName[]>]
[<CommonParameters>]
Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]
[-Module <string[]>] [-FullyQualifiedModule <ModuleSpecification[]>]
[-CommandType <CommandTypes>] [-TotalCount <int>] [-Syntax]
[-ShowCommandInfo] [-All] [-ListImported] [-ParameterName <string[]>]
[-ParameterType <PSTypeName[]>] [<CommonParameters>]
コマンドの使用方法についてさらに詳しい情報が必要な場合は、Get-Help
を使用します。
help Get-Command -Full
Get-Help
の SYNTAX セクションは、パラメーターの列挙値を拡張することで、よりユーザー フレンドリな表示を提供します。 実際に使用できる値が表示されるので、利用可能なオプションを理解しやすくなります。
...
Get-Command [[-Name] <System.String[]>] [[-ArgumentList]
<System.Object[]>] [-All] [-CommandType {Alias | Function | Filter |
Cmdlet | ExternalScript | Application | Script | Workflow |
Configuration | All}] [-FullyQualifiedModule
<Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
[-Module <System.String[]>] [-ParameterName <System.String[]>]
[-ParameterType <System.Management.Automation.PSTypeName[]>]
[-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
[<CommonParameters>]
Get-Command [[-ArgumentList] <System.Object[]>] [-All]
[-FullyQualifiedModule
<Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
[-Module <System.String[]>] [-Noun <System.String[]>] [-ParameterName
<System.String[]>] [-ParameterType
<System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo]
[-Syntax] [-TotalCount <System.Int32>] [-Verb <System.String[]>]
[<CommonParameters>]
...
Get-Command
のヘルプの「パラメーター」セクションでは、Name、Noun、および Verb パラメーターがワイルドカード文字を受け取ることが示されています。
...
-Name <System.String[]>
Specifies an array of names. This cmdlet gets only commands that
have the specified name. Enter a name or name pattern. Wildcard
characters are permitted.
To get commands that have the same name, use the All parameter. When
two commands have the same name, by default, `Get-Command` gets the
command that runs when you type the command name.
Required? false
Position? 0
Default value None
Accept pipeline input? True (ByPropertyName, ByValue)
Accept wildcard characters? true
-Noun <System.String[]>
Specifies an array of command nouns. This cmdlet gets commands,
which include cmdlets, functions, and aliases, that have names that
include the specified noun. Enter one or more nouns or noun
patterns. Wildcard characters are permitted.
Required? false
Position? named
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
-Verb <System.String[]>
Specifies an array of command verbs. This cmdlet gets commands,
which include cmdlets, functions, and aliases, that have names that
include the specified verb. Enter one or more verbs or verb
patterns. Wildcard characters are permitted.
Required? false
Position? named
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
...
次の例では、Get-Command
の Name パラメーターの値にワイルドカード文字 *
を使用します。
Get-Command -Name *service*
Get-Command
の Name パラメーターでワイルドカード文字を使用すると、次の結果に示すように、PowerShell コマンドとネイティブ コマンドが返されます。
CommandType Name Version
----------- ---- -------
Function Get-NetFirewallServiceFilter 2.0.0.0
Function Set-NetFirewallServiceFilter 2.0.0.0
Cmdlet Get-Service 3.1.0.0
Cmdlet New-Service 3.1.0.0
Cmdlet New-WebServiceProxy 3.1.0.0
Cmdlet Restart-Service 3.1.0.0
Cmdlet Resume-Service 3.1.0.0
Cmdlet Set-Service 3.1.0.0
Cmdlet Start-Service 3.1.0.0
Cmdlet Stop-Service 3.1.0.0
Cmdlet Suspend-Service 3.1.0.0
Application SecurityHealthService.exe 10.0.2...
Application SensorDataService.exe 10.0.2...
Application services.exe 10.0.2...
Application services.msc 0.0.0.0
Application TieringEngineService.exe 10.0.2...
Application Windows.WARP.JITService.exe 10.0.2...
CommandType パラメーターを使用して、Get-Command
の結果を PowerShell コマンドに制限できます。
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias, Script
PowerShell コマンドにのみ動詞と名詞が含まれるため、別のオプションとしては、Verb または Noun パラメーターのいずれか、または両方を使用することもできます。
次の例では、Get-Command
を使用して、コンピューター上でプロセスを操作するコマンドを見つけます。
Noun パラメーターを使用し、その値として Process
を指定します。
Get-Command -Noun Process
CommandType Name Version
----------- ---- -------
Cmdlet Debug-Process 3.1.0.0
Cmdlet Get-Process 3.1.0.0
Cmdlet Start-Process 3.1.0.0
Cmdlet Stop-Process 3.1.0.0
Cmdlet Wait-Process 3.1.0.0
まとめ
この章では、Get-Help
と Get-Command
を使用してコマンドを見つける方法について説明しました。 また、コマンドを見つけてから、ヘルプ システムを使用して、そのコマンドの使用方法を理解する方法についても説明しました。 さらに、新しいヘルプ コンテンツが利用可能になったときに、コンピューター上のヘルプ システムを更新する方法についても説明しました。
確認
Get-Service
の DisplayName パラメーターは、位置指定のパラメーターですか。Get-Process
コマンドレットにはパラメーター セットの数がいくつありますか。- イベント ログを操作するための PowerShell コマンドは何ですか。
- コンピューターで実行されている PowerShell プロセスのリストを返すための PowerShell コマンドは何ですか。
- コンピューターに保存されている PowerShell ヘルプ コンテンツを更新するにはどうすればよいですか。
関連情報
この章で説明する概念の詳細については、次の PowerShell ヘルプ記事を参照してください。
次のステップ
次の章では、オブジェクト、プロパティ、メソッド、Get-Member
コマンドレットについて説明します。
PowerShell