共用方式為


Update-Help

下載最新的說明檔並安裝於電腦上。

Syntax

Update-Help
      [[-Module] <String[]>]
      [-FullyQualifiedModule <ModuleSpecification[]>]
      [[-SourcePath] <String[]>]
      [-Recurse]
      [[-UICulture] <CultureInfo[]>]
      [-Credential <PSCredential>]
      [-UseDefaultCredentials]
      [-Force]
      [-Scope <UpdateHelpScope>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Update-Help
      [[-Module] <String[]>]
      [-FullyQualifiedModule <ModuleSpecification[]>]
      [-LiteralPath <String[]>]
      [-Recurse]
      [[-UICulture] <CultureInfo[]>]
      [-Credential <PSCredential>]
      [-UseDefaultCredentials]
      [-Force]
      [-Scope <UpdateHelpScope>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

Cmdlet 會 Update-Help 下載 PowerShell 模組的最新說明檔,並將其安裝在您的電腦上。 您不需要重新啟動 PowerShell,才能使變更生效。 您可以使用 Get-Help Cmdlet 立即檢視新的說明檔。

Update-Help 會檢查您電腦上的說明檔版本。 如果您沒有模組的說明檔,或說明檔已過期,請 Update-Help 下載最新的說明檔。 您可以從因特網或檔案共享下載並安裝說明檔。

如果沒有參數,請 Update-Help 更新支援可更新說明的模組說明檔,並在會話中載入,或安裝在 中包含的 $env:PSModulePath位置。 如需詳細資訊,請參閱 about_Updatable_Help

Update-Help 會檢查已安裝的說明版本。 如果 Update-Help 找不到模組的更新說明檔,它會以無訊息方式繼續,而不會顯示錯誤訊息。 使用 Force 參數略過版本檢查。 使用 Verbose 參數來查看狀態和進度詳細數據。 使用 Module 參數來更新特定模組的說明檔。

您也可以在未連線到因特網的電腦上使用 Update-Help 。 首先,使用 Save-HelpCmdlet 從因特網下載說明檔案,並將其儲存在無法連線到因特網之系統的共享資料夾中。 然後使用的 Update-HelpSourcePath參數,從共用下載更新的說明檔,並將其安裝在電腦上。

Cmdlet Update-Help 是在 Windows PowerShell 3.0 中引進。

重要

Update-Help PowerShell 6.0 和以下版本需要系統管理許可權。 PowerShell 6.1 和更新版本會將預設 範圍 設定為 CurrentUser。 在 PowerShell 6.1 之前,無法使用 Scope 參數。

您必須是計算機上的 Administrators 群組成員,才能更新核心 PowerShell 模組的說明檔。

若要下載或更新 PowerShell 安裝目錄中模組的說明檔, ($PSHOME\Modules) ,包括 PowerShell Core 模組,請使用 [ 以系統管理員身分執行 ] 選項啟動 PowerShell。 例如:Start-Process pwsh.exe -Verb RunAs

範例

範例 1:更新所有模組的說明檔

Cmdlet 會 Update-Help 更新支援可更新說明之已安裝模組的說明檔。 使用者介面 (UI) 文化特性語言是在操作系統中設定。

Update-Help

範例 2:更新指定模組的說明檔

Cmdlet Update-Help 只會針對以 Microsoft.PowerShell 開頭的模組名稱更新說明檔。

Update-Help -Module Microsoft.PowerShell*

範例 3:更新未設定為 en-US 地區設定之系統上的說明

Cmdlet Update-Help 的設計目的是下載多種語言的說明。 不過,當系統使用的語言沒有可用的說明時,除非您使用 UICulture 參數,Update-Help否則會以無訊息方式失敗。

在此範例中, Update-Help 正在設定為地區設定的 en-GB 系統上執行。

Update-Help Microsoft.PowerShell.Utility -Force
Update-Help Microsoft.PowerShell.Utility -Force -UICulture en-GB

Update-Help: Failed to update Help for the module(s) 'Microsoft.PowerShell.Utility' with
UI culture(s) {en-GB} : The specified culture is not supported: en-GB. Specify a culture
from the following list: {en-US}..
English-US help content is available and can be installed using: Update-Help -UICulture en-US.

說明檔一律會針對 en-US 地區設定發佈。 若要下載英文說明, Update-Help 請使用 UICulture 參數執行並指定 en-US 地區設定。

範例 4:從檔案共用更新多部計算機上的說明檔

在此範例中,更新的說明檔會從因特網下載並儲存在檔案共用中。 需要使用者認證,才能存取檔案共享並安裝更新。 使用檔案共享時,可以更新防火牆後方或未連線到因特網的計算機。

Save-Help -DestinationPath \\Server01\Share\PSHelp -Credential Domain01\Admin01
Invoke-Command -ComputerName (Get-Content Servers.txt) -ScriptBlock {
     Update-Help -SourcePath \\Server01\Share\PSHelp -Credential Domain01\Admin01
}

Save-Help此命令會下載所有支援可更新說明之模組的最新說明檔。 DestinationPath 參數會將檔案儲存在檔案共用中\\Server01\Share\PSHelpCredential 參數會指定有權存取檔案共享的使用者。

Cmdlet Invoke-Command 會在多部計算機上執行遠端 Update-Help 命令。 ComputerName 參數會從 Servers.txt 檔案取得遠端電腦的清單。 ScriptBlock 參數會執行 命令,Update-Help並使用 SourcePath 參數來指定包含更新說明檔的檔案共用。 Credential 參數會指定可存取檔案共享並執行遠端Update-Help命令的使用者。

範例 5:取得更新的說明檔清單

Cmdlet 會 Update-Help 更新指定模組的說明。 Cmdlet 會使用 Verbose 通用參數來顯示已更新的說明檔清單。 您可以使用 詳細資訊 來檢視特定模組之所有說明檔或說明檔的輸出。

如果沒有 Verbose 參數, Update-Help 就不會顯示命令的結果。 Verbose 參數輸出有助於確認說明檔是否已更新,或是否已安裝最新版本。

Update-Help -Module Microsoft.PowerShell.Utility -Verbose

範例 6:尋找支援可更新說明的模組

此範例會列出支援可更新說明的模組。 此命令會使用模組的 HelpInfoUri 屬性來識別支援可更新說明的模組。 HelpInfoUri 屬性包含執行 Cmdlet 時重新導向的 Update-Help URL。

Get-Module -ListAvailable | Where-Object -Property HelpInfoUri

Directory: C:\program files\powershell\6\Modules

ModuleType Version    Name                                PSEdition ExportedCommands
---------- -------    ----                                --------- ----------------
Manifest   6.1.0.0    CimCmdlets                          Core      {Get-CimAssociatedInstance... }
Manifest   1.2.2.0    Microsoft.PowerShell.Archive        Desk      {Compress-Archive... }
Manifest   6.1.0.0    Microsoft.PowerShell.Diagnostics    Core      {Get-WinEvent, New-WinEvent}

    Directory: C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

ModuleType Version    Name                                PSEdition ExportedCommands
---------- -------    ----                                --------- ----------------
Manifest   2.0.1.0    Appx                                Core,Desk {Add-AppxPackage, ... }
Script     1.0.0.0    AssignedAccess                      Core,Desk {Clear-AssignedAccess, ... }
Manifest   1.0.0.0    BitLocker                           Core,Desk {Unlock-BitLocker, ... }

範例 7:清查更新的說明檔

在此範例中,腳本 Get-UpdateHelpVersion.ps1 會為每個模組及其版本號碼建立可更新說明檔的清查。

腳本會使用模組的 HelpInfoUri 屬性來識別支援可更新說明的模組。 對於支援可更新說明的模組,腳本會尋找並剖析說明資訊檔案 (*helpinfo.xml) ,以尋找最新的版本號碼。

腳本會使用 PSCustomObject 類別和哈希表來建立自定義輸出物件。

# Get-UpdateHelpVersion.ps1
Param(
    [parameter(Mandatory=$False)]
    [String[]]
    $Module
)
$HelpInfoNamespace = @{helpInfo='http://schemas.microsoft.com/powershell/help/2010/05'}

if ($Module) { $Modules = Get-Module $Module -ListAvailable | where {$_.HelpInfoUri} }
else { $Modules = Get-Module -ListAvailable | where {$_.HelpInfoUri} }

foreach ($mModule in $Modules)
{
    $mDir = $mModule.ModuleBase

    if (Test-Path $mdir\*helpinfo.xml)
    {
        $mName=$mModule.Name
        $mNodes = dir $mdir\*helpinfo.xml -ErrorAction SilentlyContinue |
            Select-Xml -Namespace $HelpInfoNamespace -XPath "//helpInfo:UICulture"
        foreach ($mNode in $mNodes)
        {
            $mCulture=$mNode.Node.UICultureName
            $mVer=$mNode.Node.UICultureVersion

            [PSCustomObject]@{"ModuleName"=$mName; "Culture"=$mCulture; "Version"=$mVer}
        }
    }
}

ModuleName                              Culture                                 Version
----------                              -------                                 -------
ActiveDirectory                         en-US                                   3.0.0.0
ADCSAdministration                      en-US                                   3.0.0.0
ADCSDeployment                          en-US                                   3.0.0.0
ADDSDeployment                          en-US                                   3.0.0.0
ADFS                                    en-US                                   3.0.0.0

參數

-Confirm

在執行 Cmdlet 前提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

指定有權存取 SourcePath所指定檔案系統位置之用戶的認證。 只有當命令中使用 SourcePathLiteralPath 參數時,此參數才有效。

Credential 參數可讓您在遠端電腦上使用 SourcePath 參數執行Update-Help命令。 藉由提供明確的認證,您可以在遠端計算機上執行 命令,並在第三部計算機上存取檔案共用,而不會發生拒絕存取錯誤或使用 CredSSP 驗證來委派認證。

輸入用戶名稱,例如User01Domain01\User01,或輸入 Cmdlet 所產生的 Get-CredentialPSCredential 物件。 如果您輸入使用者名稱,系統會提示您輸入密碼。

認證會儲存在 PSCredential 物件中,密碼會儲存為 SecureString

注意

如需 SecureString 數據保護的詳細資訊,請參閱 SecureString 有多安全?

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

表示此 Cmdlet 不會遵循每天一次的限制、略過版本檢查,以及下載超過 1 GB 限制的檔案。

如果沒有此參數, Update-Help 則每 24 小時期間只會執行一次。 每個模組的下載限制為 1 GB 的未壓縮內容,且說明檔案只有在比計算機上的現有檔案還新時才會安裝。

每日一次限制可保護裝載說明檔的伺服器,並讓您將命令新增 Update-Help 至 PowerShell 配置檔,而不會產生重複連線或下載的資源成本。

若要不使用 Force 參數來更新多重 UI 文化特性中的模組說明,請在同一個命令中包含所有 UI 文化特性,例如:

Update-Help -Module PSScheduledJobs -UICulture en-US, fr-FR, pt-BR

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedModule

此值可以是模組名稱、完整模組規格或模組檔案的路徑。

當值為路徑時,路徑可以是完整或相對路徑。 相對於包含 using 語句的腳本,會解析相對路徑。

當值為名稱或模組規格時,PowerShell 會搜尋 PSModulePath 中的指定模組。

模組規格是具有下列索引鍵的哈希表。

  • ModuleName - 必填 指定模組名稱。
  • GUID - 指定模組的 GUID。
  • 另外,至少需要指定下列三個索引鍵的其中一個。
    • ModuleVersion - 指定模組的最低可接受版本。
    • MaximumVersion - 指定模組可接受的最大版本。
    • RequiredVersion - 指定模組的確切必要版本。 這無法與其他版本金鑰搭配使用。

您無法在與 Module 參數相同的命令中指定 FullyQualifiedModule 參數。

Type:ModuleSpecification[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

指定更新說明檔的資料夾,而不是從因特網下載。 如果您使用 Cmdlet 將說明檔下載至目錄,Save-Help請使用此參數或 SourcePath

您可以將目錄物件管線,例如從 Get-ItemGet-ChildItem Cmdlet 傳送至 Update-Help

SourcePath 的值不同, LiteralPath 的值會完全依照其類型使用。 沒有字元會被視為萬用字元。 如果路徑包含逸出字元,請將它括在單引號中。 單引號會告訴PowerShell不要將任何字元解譯為逸出序列。

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Module

更新指定模組的說明。 在逗號分隔清單中輸入一或多個模組名稱或名稱模式,或指定在每個行列出一個模組名稱的檔案。 允許使用萬用字元。 您可以從 Cmdlet 管線模組 Get-ModuleUpdate-Help Cmdlet。

您指定的模組必須安裝在計算機上,但不需要將它們匯入目前的會話。 您可以在工作階段中指定任何模組,或安裝在環境變數所列位置的任何 $env:PSModulePath 模組。

(所有) 嘗試更新電腦上安裝之所有模組的說明的值 * 。 包含不支援可更新說明的模組。 當命令遇到不支援可更新說明的模組時,此值可能會產生錯誤。 相反地,請執行 Update-Help 而不使用參數。

Cmdlet 的 Update-HelpModule 參數不接受模組檔案或模組指令清單檔的完整路徑。 若要更新不在位置的 $env:PSModulePath 模組說明,請先將模組匯入目前的會話,再執行 Update-Help 命令。

Type:String[]
Aliases:Name
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-Recurse

針對指定目錄中的說明檔執行遞歸搜尋。 只有當命令使用 SourcePath 參數時,這個參數才有效。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

指定更新說明的系統範圍。 在 AllUsers 範圍 匯報 需要 Windows 系統上的系統管理許可權。 參數 -Scope 是在 PowerShell Core 6.1 版中引進。

CurrentUser 是 PowerShell 6.1 和更新版本中說明檔的預設範圍。 您可以指定 AllUsers 來安裝或更新所有使用者的說明。 需要 Unix 系統上 sudo 的許可權,才能更新所有用戶的說明。 例如:sudo pwsh -c Update-Help

可接受的值如下:

  • CurrentUser
  • AllUsers
Type:UpdateHelpScope
Position:Named
Default value:CurrentUser
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SourcePath

指定取得更新說明檔的檔案系統資料夾 Update-Help ,而不是從因特網下載。 輸入資料夾的路徑。 請勿指定檔名或擴展名。 您可以將資料夾管線,例如從 Get-ItemGet-ChildItem Cmdlet 傳送至 Update-Help

根據預設, Update-Help 會從因特網下載更新的說明檔。 當您使用 Cmdlet 將更新的說明檔下載至目錄時,Save-Help請使用 SourcePath

若要指定SourcePath的預設值,請移至 [群組原則]、[計算機設定] 和 [設定Update-Help的預設來源路徑]。 此 群組原則 設定可防止使用者使用 Update-Help 從因特網下載說明檔。 如需詳細資訊,請參閱 about_Group_Policy_Settings

Type:String[]
Aliases:Path
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UICulture

指定用來取得更新說明檔的UI文化特性值 Update-Help 。 輸入一或多個語言代碼,例如 es-ES、包含文化特性物件的變數,或取得文化特性對象的命令,例如 Get-CultureGet-UICulture 命令。 不允許通配符,您無法提交部分語言代碼,例如 de

根據預設, Update-Help 取得作業系統UI文化特性集中的說明檔。 如果您指定 UICulture 參數, Update-Help 請只尋找指定 UI 文化特性的說明。

注意

Ubuntu 18.04 將預設地區設定變更為 C.UTF.8,這不是辨識的 UI 文化特性。 Update-Help 除非您搭配支援的地區設定使用此參數,否則以無訊息方式下載說明,例如 en-US。 這可能會發生在使用不支援值的任何平臺上。

只有當模組有提供所指定 UI 文化特性的說明檔時,使用 UICulture 參數的命令才會成功。 如果命令失敗,因為不支援指定的UI文化特性,則會顯示錯誤訊息。

Type:CultureInfo[]
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseDefaultCredentials

指出使用 Update-Help 目前使用者的認證來執行命令,包括因特網下載。 根據預設,該命令執行時不會使用明確宣告的認證。

只有當網頁下載使用NT LAN Manager (NTLM) 、交涉或 Kerberos 型驗證時,此參數才有效。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 不會執行此 Cmdlet。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

DirectoryInfo

您可以使用管線將目錄路徑物件傳送至此 Cmdlet。

PSModuleInfo

您可以使用管線將模組物件傳送至此 Cmdlet。

輸出

None

此 Cmdlet 不會傳回任何輸出。

備註

若要更新核心 PowerShell 模組的說明,其中包含隨 PowerShell 一起安裝的命令,或目錄中的任何模組 $PSHOME\Modules ,請使用以 系統管理員身分執行的選項來啟動 PowerShell。

只有電腦上的 Administrators 群組成員可以更新核心 PowerShell 模組的說明、與 PowerShell 一起安裝的命令,以及資料夾中的 $PSHOME\Modules 模組。 如果您沒有更新說明檔的許可權,您可以在線上閱讀說明檔。 例如: Get-Help Update-Help -Online

模組是可更新的說明之最小單位。 您無法更新特定 Cmdlet 的說明。 若要尋找包含特定 Cmdlet 的模組,請使用 Cmdlet 的 Get-CommandModuleName 屬性,例如 (Get-Command Update-Help).ModuleName

因為說明檔是安裝在模組目錄中,所以 Update-Help Cmdlet 只能針對電腦上安裝的模組安裝更新的說明檔。 不過, Save-Help Cmdlet 可以為未安裝在電腦上的模組儲存說明。

Cmdlet Update-Help 是在 Windows PowerShell 3.0 中引進。 在舊版 PowerShell 中無法運作。 在 Windows PowerShell 2.0 和 Windows PowerShell 3.0 的計算機上,使用 Update-Help Windows PowerShell 3.0 會話中的 Cmdlet 來下載並更新說明檔。 說明檔適用於 Windows PowerShell 2.0 和 Windows PowerShell 3.0。

Update-HelpSave-Help Cmdlet 會使用下列埠來下載說明檔:HTTP 的埠 80 和 HTTPS 的埠 443。

Update-Help 支援所有模組和核心 PowerShell 嵌入式管理單元。它不支援任何其他嵌入式管理單元。

若要更新環境變數中 $env:PSModulePath 未列出之位置的模組說明,請將模組匯入目前的會話,然後執行 Update-Help 命令。 在沒有參數的情況下執行 Update-Help ,或使用 Module 參數來指定模組名稱。 和 Save-Help Cmdlet 的 Update-HelpModule 參數不接受模組檔案或模組指令清單檔的完整路徑。

任何模組都能支援「可更新的說明」。 如需支援您所撰寫模組中可更新說明的指示,請參閱 支援可更新的說明

Windows Update-Help 預安裝環境 (Windows PE) 不支援 和 Save-Help Cmdlet。