第 2 章 - 說明系統
在專為評估PowerShell熟練程度而設計的實驗中,第一次獲得沒有計算機存取權的兩組不同IT專業人員,即初學者和專家。 令人驚訝的是,測試分數指出了兩組的可比技能。 接著會管理後續的測試,並鏡像第一個但有一個主要差異:參與者可以存取配備 PowerShell 的離線電腦。 結果顯示,這次兩組之間的技能差距很大。
哪些因素促成了兩項評估之間觀察到的結果?
專家並不總是知道答案,但他們知道如何找出答案。
兩項測試結果中觀察到的結果是因為專家不會記住數千個 PowerShell 命令。 相反地,他們擅長在PowerShell中使用說明系統,讓他們能夠探索並瞭解如何在必要時使用命令。
熟悉說明系統是PowerShell成功的關鍵。
我聽到 PowerShell 的建立者 Jeffrey Snover 多次分享類似的故事。
發現性
PowerShell 中編譯的命令稱為 Cmdlet,發音為 “command-let”,而不是 “CMD-let”。 Cmdlet 的命名慣例會遵循單一 Verb-Noun 格式,使其易於探索。 例如, Get-Process
是判斷哪些進程正在執行的 Cmdlet,而 Get-Service
是擷取服務清單的 Cmdlet。 函式也稱為腳本 Cmdlet 和別名,是本文稍後討論的其他類型的 PowerShell 命令。 「PowerShell 命令」一詞描述 PowerShell 中的任何命令,不論它是 Cmdlet、函式或別名。
您也可以從 PowerShell 執行作業系統原生命令,例如和 ipconfig.exe
等ping.exe
傳統命令行程式。
PowerShell 中的三個核心 Cmdlet
Get-Help
Get-Command
Get-Member
(第3章涵蓋)
我經常被問及:「 您如何找出 PowerShell 中的命令為何?」。 和 Get-Command
都是Get-Help
在PowerShell中探索和瞭解命令的寶貴資源。
Get-Help
您需要瞭解 PowerShell 中說明系統的第一件事,就是如何使用 Get-Help
Cmdlet。
Get-Help
是多用途命令,可協助您瞭解如何在找到命令之後使用命令。
您也可以使用 Get-Help
來尋找命令,但相較於 Get-Command
,則以不同且更間接的方式尋找命令。
使用 Get-Help
來尋找命令時,它一開始會根據您的輸入執行命令名稱的通配符搜尋。 如果找不到任何相符專案,它會針對您系統上的所有 PowerShell 說明文章進行完整的全文搜索。 如果這也找不到任何結果,則會傳回錯誤。
以下說明如何使用 Get-Help
來檢視 Cmdlet 的說明 Get-Help
內容。
Get-Help -Name Get-Help
從 PowerShell 3.0 版開始,說明內容不會隨操作系統預安裝。 當您第一次執行 Get-Help
時,訊息會詢問您是否要將PowerShell說明檔案下載到您的電腦。
按 Y 回答 [是] 會執行 Update-Help
Cmdlet,下載說明內容。
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"):
如果您沒有收到此訊息, Update-Help
請從以系統管理員身分執行的已提升許可權的 PowerShell 會話執行。
更新完成後,會顯示說明文章。
請花點時間在計算機上執行範例、檢閱輸出,並觀察說明系統如何組織資訊。
- NAME
- 概要
- 語法
- 描述
- 相關連結
- 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
SYNTAX區段時,請注意資訊似乎重複了六次。 每個區塊都是個別的參數集,指出 Get-Help
Cmdlet 具有六組不同的參數。 仔細查看會顯示每個參數集至少包含一個唯一參數,使其與其他參數不同。
參數集互斥。 一旦指定唯一的參數只存在於一個參數集中,PowerShell 就會限制您使用該參數集內所包含的參數。
例如,您無法同時使用 的 Full 和 Detailed 參數 Get-Help
,因為它們屬於不同的參數集。
下列每個參數都屬於 Cmdlet 的不同參數集 Get-Help
。
- 完整
- 詳細
- 範例
- 線上
- 參數
- ShowWindow
命令語法
如果您不熟悉 PowerShell,請在 SYNTAX 區段中理解以方括弧和角括弧為特徵的神秘信息,看起來可能壓倒性。 不過,了解這些語法元素對於熟悉PowerShell至關重要。 使用 PowerShell 說明系統的頻率愈高,就更容易記住所有細微差別。
檢視 Cmdlet 的 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>]
...
語法資訊包括方括弧配對 ([]
)。 根據它們的使用方式,這些方括弧有兩個不同的用途。
- 以方括弧括住的項目是選擇性的。
- 數據類型後面的空白方括弧集合,例如
<string[]>
,表示參數可以接受做為陣列或集合物件傳遞的多個值。
位置參數
某些 Cmdlet 的設計目的是要接受位置參數。 位置參數可讓您提供值,而不指定參數的名稱。 在位置上使用參數時,您必須在命令行的正確位置中指定其值。 您可以在命令說明文章的 PARAMETERS 區段中找到參數的位置資訊。 當您明確指定參數名稱時,可以使用任何順序的參數。
Get-EventLog
對於 Cmdlet,第一個參數集中的第一個參數是 LogName。
LogName 會以方括弧括住,表示它是位置參數。
Get-EventLog [-LogName] <System.String>
由於 LogName 是位置參數,因此您可以透過名稱或位置來指定它。 根據參數名稱後面的角括號,LogName 的值必須是單一字串。 沒有括住參數名稱和數據類型的方括弧, 表示LogName 是這個特定參數集內的必要參數。
該參數集中的第二個參數是 InstanceId。 參數名稱和數據類型全都以方括弧括住,表示 InstanceId 是選擇性參數。
[[-InstanceId] <System.Int64[]>]
此外, InstanceId 有自己的一對方括弧,表示它是類似於 LogName 參數的位置參數。 在數據類型之後,一組空的方括弧表示 InstanceId 可以接受多個值。
參數參數
不需要值的參數稱為 switch 參數。 您可以輕鬆地識別參數參數,因為參數名稱之後沒有數據類型。 當您指定 switch 參數時,其值為 true
。 當您未指定 switch 參數時, 值為 false
。
第二個 參數集包含 List 參數,這是 switch 參數。 當您指定 List 參數時,它會傳回本機電腦上的事件記錄清單。
[-List]
語法的簡化方法
除了純英文以外,還有更方便使用的方法可取得與某些命令的神秘命令語法相同的資訊。 使用 Full 參數時Get-Help
,PowerShell 會傳回完整的說明文章,讓您更容易瞭解命令的使用方式。
Get-Help -Name Get-Help -Full
請花點時間在計算機上執行範例、檢閱輸出,並觀察說明系統如何組織資訊。
- NAME
- 概要
- 語法
- 描述
- PARAMETERS
- 輸入
- 輸出
- 注意
- 例子
- 相關連結
藉由使用 Get-Help
Cmdlet 指定 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
,一次顯示一頁的說明內容。 我建議使用 函 help
式, Get-Help
而不是 Cmdlet,因為它可提供較佳的用戶體驗,而且類型比較少。
注意
ISE 不支援使用 more.com
,因此執行 help
的運作方式與 Get-Help
相同。
在電腦上的PowerShell中執行下列每個命令。
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
當您執行先前的命令時,是否觀察到輸出中的任何變化?
在上一個範例中,第一行使用 Get-Help
Cmdlet,第二help
行會使用 help
函式,而第三行則使用 函式時省略 Name 參數。 由於 Name 是位置參數,因此第三個範例會利用其位置,而不是明確指出參數的名稱。
差異在於最後兩個命令一次顯示其輸出一頁。 使用 函 help
式時,請按 空格鍵 以顯示下一頁的內容或 Q 以結束。 如果您需要終止在 PowerShell 中以互動方式執行的任何命令,請按 Ctrl+C。
若要快速尋找特定參數的相關信息,請使用 Parameter 參數。 此方法只會傳回包含參數特定信息的內容,而不是整個說明文章。 這是尋找特定參數相關信息的最簡單方式。
下列範例會 help
使用 函式搭配 Parameter 參數,從說明文章 中傳回的Name 參數 Get-Help
資訊。
help Get-Help -Parameter Name
說明信息顯示 Name 參數是位置,且必須在位置上指定在第一個位置 (位置零) 中。
-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
我通常會搭配 Full 或 Online 參數使用help <command name>
。 如果您只對範例感興趣,請使用 Examples 參數。 如果您只對特定參數感興趣,請使用 Parameter 參數。
當您使用 ShowWindow 參數時,它會在不同的可搜尋視窗中顯示說明內容。 如果您有多個監視器,您可以將該視窗移至不同的監視器。 不過, ShowWindow 參數有已知的 Bug,可能會防止它顯示整個說明文章。 ShowWindow 參數也需要具有圖形使用者介面 (GUI) 的作業系統。 當您嘗試在 Windows Server Core 上使用時,它會傳回錯誤。
如果您有因特網存取權,您可以改用 Online 參數。 Online 參數會在預設網頁瀏覽器中開啟說明文章。 在線內容是最新的內容。 瀏覽器可讓您搜尋說明內容,並檢視其他相關的說明文章。
注意
About 文章不支援 Online 參數。
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 會產生錯誤。 Cmdlet 沒有這類參數名稱 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個結果。 如果您的搜尋只找到一個相符專案, 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
式是其中一個沒有說明文章的命令。 若要確認您可以使用 不包含說明文章的命令 Get-Help
,請使用 函 help
式來尋找 more
。
help *more*
搜尋只找到一個相符專案,因此它會傳回命令沒有說明文章時看到的基本語法資訊。
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
PowerShell 說明系統也包含概念 性關於 說明文章。 您必須更新系統上的說明內容,才能取得 關於 文章。 如需詳細資訊,請參閱 本章的更新說明 一節。
使用下列命令傳回系統上所有 About 說明文章的清單。
help About_*
當您將結果限制為 [ 關於 說明] 文章時, Get-Help
會顯示該文章的內容。
help about_Updatable_Help
更新說明
本章稍早,您會第一次執行 Get-Help
Cmdlet 時,更新電腦上的 PowerShell 說明文章。 您應該定期在計算機上執行 Update-Help
Cmdlet,以取得說明內容的任何更新。
重要
在 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
具有因特網存取權的計算機上的 Cmdlet 來下載並儲存更新的說明內容。 然後,使用的 Update-Help
SourcePath參數來指定已儲存更新說明內容的位置。
Get-Command
Get-Command
是另一個多用途命令,可協助您尋找命令。 當您在沒有任何參數的情況下執行 Get-Command
時,它會傳回系統上所有PowerShell命令的清單。
您也可以使用 Get-Command
來取得類似 Get-Help
的命令語法。
如何判斷的 Get-Command
語法? 您可以使用 Get-Help
來顯示 的說明文章Get-Command
,如本章的 Get-Help 一節所示。 您也可以搭配 Syntax 參數來Get-Command
檢視任何命令的語法。 此快捷方式可協助您快速判斷如何使用命令,而不流覽其說明內容。
Get-Command -Name Get-Command -Syntax
搭配語法參數使用 Get-Command
可提供更簡潔的語法檢視,以顯示參數及其實值類型,而不列出特定的允許值,例如 Get-Help
shows。
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、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
...
下列範例使用*
通配符搭配的 Name 參數Get-Command
值。
Get-Command -Name *service*
當您搭配 Name 參數Get-Command
使用通配符時,它會傳回 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
另一個選項可能是使用 Verb 或 Noun 參數或兩者,因為只有 PowerShell 命令有動詞和名詞。
下列範例會使用 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
尋找命令。 您也瞭解如何使用說明系統,瞭解如何在找到命令之後使用命令。 此外,您已瞭解如何在有新的說明內容可用時更新電腦上的說明系統。
檢閱
- Positional 的
Get-Service
DisplayName 參數嗎? - Cmdlet 有多少
Get-Process
個參數集? - 使用事件記錄檔時有哪些 PowerShell 命令?
- 傳回電腦上執行的PowerShell進程清單的PowerShell命令為何?
- 如何更新儲存在電腦上的PowerShell說明內容?
參考資料
若要深入瞭解本章所涵蓋的概念,請閱讀下列 PowerShell 說明文章。
下一步
在下一章中,您將了解對象、屬性、方法和 Get-Member
Cmdlet。