第 2 章 - ヘルプ システム
PowerShell の能力を評価するために設計された実験では、IT プロフェッショナルの 2 つの異なるグループ (初心者と専門家) が最初に、コンピューターにアクセスせずに筆記試験を受けた。 驚いたことに、テストスコアは両方のグループで同等のスキルを示しました。 その後のテストが管理され、最初のテストがミラーリングされましたが、1 つの重要な違いがあります。参加者は PowerShell を搭載したオフライン コンピューターにアクセスできます。 その結果、今回は2つのグループ間に大きなスキルギャップが見られた。
2つの評価の間に観察された結果にはどのような要因が寄与しましたか?
専門家は答えを常に知っているわけではありませんが、答えを把握する方法を知っています。
2 つのテストの結果で観察された結果は、専門家が何千もの PowerShell コマンドを記憶しないためでした。 代わりに、PowerShell 内のヘルプ システムの使用に優れているため、必要に応じてコマンドを検出して使用方法を学習できます。
ヘルプ システムに習熟することが、PowerShell で成功を収める鍵となります。
PowerShell の作成者である Jeffrey Snover が、何度か同じような話を共有しているのを聞きました。
発見可能性
PowerShell でコンパイルされたコマンドはコマンドレットと呼ばれ、"cmd-let" ではなく、"command-let"と発音されます。 コマンドレットの命名規則は、単数の 動詞-名詞 形式に従っており、簡単に見つけられるようにしています。 たとえば、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
- Description
- 関連リンク
- REMARKS
出力を確認するときは、多くの場合、ヘルプ記事には膨大な量の情報が含まれていることに注意してください。既定で表示される内容はヘルプ記事全体ではありません。
パラメーター
PowerShell でコマンドを実行するときに、コマンドに追加情報または入力を入力することが必要になる場合があります。 パラメーターを使用すると、コマンドの動作を変更するオプションと引数を指定できます。 各ヘルプ記事の「SYNTAX」セクションでは、コマンドに使用できるパラメーターの概要を示します。
Get-Help
には、ヘルプ記事全体またはコマンドのサブセットを返すために指定できるいくつかのパラメーターがあります。 Get-Help
で使用可能なすべてのパラメーターを表示するには、次の例に示すように、ヘルプ記事の「SYNTAX」セクションを参照してください。
...
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
コマンドレットの異なるパラメーター セットに属しています。
- 完全
- 詳細
- 例示
- オンライン
- パラメーター
- ショーウィンドウ
コマンド構文
PowerShell を初めて使用する場合、「SYNTAX」セクションにある、角かっこと山かっこを使用した暗号のような情報を理解するのは、難しく思えるかもしれません。 ただし、これらの構文要素を学習することは、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[]>
など、データ型の後に続く空の角かっこのセットは、パラメーターが配列またはコレクション オブジェクトとして渡された複数の値を受け取ることができることを示します。
位置指定パラメーター
一部のコマンドレットは、位置パラメーターを受け入れるように設計されています。 位置指定パラメーターを使用すると、パラメーターの名前を指定せずに値を指定できます。 パラメーターを位置指定して使用する場合は、その値をコマンド ラインの正しい位置に指定する必要があります。 パラメーターの位置情報は、コマンドのヘルプ記事の「PARAMETERS」セクションにあります。 パラメーター名を明示的に指定する場合は、任意の順序でパラメーターを使用できます。
Get-EventLog
コマンドレットの場合、最初のパラメーター セットの最初のパラメーターは LogNameです。
LogName は、位置指定パラメーターであることを示す角かっこで囲まれています。
Get-EventLog [-LogName] <System.String>
LogName は位置指定パラメーターであるため、名前または位置で指定できます。 パラメーター名の後にある山かっこによれば、LogName の値は単一の文字列でなければなりません。 パラメーター名とデータ型の両方を角かっこで囲まないことは、logName がこの特定のパラメーター セット内で必要なパラメーターであることを示します。
そのパラメーター セットの 2 番目のパラメーターは、InstanceId です。 パラメーター名とデータ型はどちらも角かっこで囲まれており、InstanceId は省略可能なパラメーターであることを示します。
[[-InstanceId] <System.Int64[]>]
さらに、InstanceId には、LogName パラメーターと同様の位置指定パラメーターであることを示す、独自の角かっこのペアがあります。 データ型に続いて、角かっこの空のセットは、InstanceId が複数の値を受け入れることを意味します。
パラメーターの切り替え
値を必要としないパラメーターを switch パラメーターと呼ばれます。 パラメーター名の後にデータ型がないため、スイッチ パラメーターを簡単に識別できます。 switch パラメーターを指定すると、その値は true
。 switch パラメーターを指定しない場合、その値は false
です。
2 番目のパラメーター セットには、スイッチ パラメーターである List パラメーターが含まれています。 List パラメーターを指定すると、ローカル コンピューター上のイベント ログの一覧が返されます。
[-List]
構文に対する簡略化されたアプローチ
よりユーザーフレンドリーな方法で、一部のコマンドの難解なコマンド構文と同じ情報を、分かりやすい英語で取得することができます。 PowerShell は、Full パラメーターで Get-Help
を使用する場合に、コマンドの使用方法を理解しやすくする完全なヘルプ記事を返します。
Get-Help -Name Get-Help -Full
少し時間を取って、コンピューターで例を実行し、出力を確認し、ヘルプ システムで情報がどのように整理されているかを確認します。
- 名前
- 概要
- SYNTAX
- Description
- PARAMETERS
- 入力
- 出力
- ノート
- 例の数々
- 関連リンク
Get-Help
コマンドレットで Full パラメーターを指定すると、出力にいくつかのセクションが追加されます。 これらのセクションの中で、PARAMETERS はしばしば各パラメーターについて詳しく説明します。 ただし、この情報の範囲は、調査している特定のコマンドによって異なります。
...
-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
関数を使用することをお勧めします。これは、ユーザー エクスペリエンスが向上し、入力が少ないためです。
注
ISE は more.com
の使用をサポートしていないため、help
の実行は Get-Help
と同じように動作します。
コンピューター上の PowerShell で次の各コマンドを実行します。
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
前のコマンドを実行したときに、出力のバリエーションを確認しましたか?
前の例では、1 行目は Get-Help
コマンドレットを使用し、2 行目は help
関数を使用し、3 行目では help
関数の使用中に Name パラメーターを省略しています。 名前 は位置指定パラメーターであるため、3 番目の例では、パラメーターの名前を明示的に指定するのではなく、その位置を利用します。
違いは、最後の 2 つのコマンドで出力が一度に 1 ページずつ表示される点です。 help
機能を使用する場合は、スペースバー を押して内容の次のページを表示するか、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>
を使用します。 この例にのみ関心がある場合は、Examples パラメーターを使用します。 特定のパラメーターにのみ関心がある場合は、Parameter パラメーターを使用します。
ShowWindow パラメーターを使用すると、ヘルプ コンテンツが別の検索可能ウィンドウに表示されます。 複数のモニターがある場合は、そのウィンドウを別のモニターに移動できます。 ただし、ShowWindow パラメーターには、ヘルプ記事全体が表示されない可能性がある既知のバグがあります。 ShowWindow パラメーターには、グラフィカル ユーザー インターフェイス (GUI) を備えたオペレーティング システムも必要です。 Windows Server Core で使用しようとすると、エラーが返されます。
インターネットにアクセスできる場合は、代わりに Online パラメーターを使用できます。 Online パラメーターを使用すると、既定の Web ブラウザーでヘルプ記事が開きます。 オンライン コンテンツは最新のコンテンツです。 ブラウザーを使用すると、ヘルプ コンテンツを検索したり、関連するその他のヘルプ記事を表示したりできます。
注
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://learn.microsoft.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 ヘルプ記事の一覧を返します。
help About_*
結果を 1 つの概念ヘルプ記事に制限すると、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
のヘルプ記事を表示できます。 Syntax パラメーターで Get-Command
を使用して、任意のコマンドの構文を表示することもできます。 このショートカットを使用すると、ヘルプ コンテンツ内を移動せずにコマンドを使用する方法をすばやく判断できます。
Get-Command -Name Get-Command -Syntax
Syntax パラメーターで Get-Command
を使用すると、パラメーターとその値の型を示す構文のより簡潔なビューが提供されます。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
のヘルプの PARAMETERS セクションでは、名、名詞、および 動詞の パラメーターがワイルドカード文字を受け入れることが明らかになります。
...
-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
もう 1 つのオプションは、powerShell コマンドにのみ動詞と名詞があるため、動詞 または 名詞 パラメーター、またはその両方を使用することです。
次の例では、Get-Command
を使用して、プロセスを操作するコンピューター上のコマンドを検索します。
名詞 パラメーターを使用し、その値として 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
を使用してコマンドを検索する方法について説明しました。 また、ヘルプ システムを使用して、コマンドを見つけたらその使用方法を理解する方法についても学習しました。 さらに、新しいヘルプ コンテンツが利用可能になったときに、コンピューター上のヘルプ システムを更新する方法について学習しました。
レビュー
- DisplayName の
Get-Service
パラメーターは位置指定ですか? Get-Process
コマンドレットにはいくつのパラメーター セットがありますか?- イベント ログを操作するための PowerShell コマンドは何ですか?
- コンピューターで実行されている PowerShell プロセスの一覧を返す PowerShell コマンドは何ですか?
- コンピューターに保存されている PowerShell ヘルプ コンテンツを更新するにはどうすればよいですか?
参考資料
この章で説明する概念の詳細については、次の PowerShell ヘルプ記事を参照してください。
次のステップ
次の章では、オブジェクト、プロパティ、メソッド、および Get-Member
コマンドレットについて説明します。
PowerShell