Update-Help
下載最新的說明檔並安裝於電腦上。
Syntax
Update-Help
[[-Module] <String[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[[-SourcePath] <String[]>]
[-Recurse]
[[-UICulture] <CultureInfo[]>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Update-Help
[[-Module] <String[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[-LiteralPath <String[]>]
[-Recurse]
[[-UICulture] <CultureInfo[]>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdlet Update-Help
會下載 PowerShell 模組的最新說明檔,並將其安裝在您的電腦上。 您不需要重新啟動 PowerShell,才能使變更生效。 您可以使用 Get-Help
Cmdlet 立即檢視新的說明檔。
Update-Help
會檢查電腦上的說明檔版本。 如果您沒有模組的說明檔,或您的說明檔已過期,請 Update-Help
下載最新的說明檔。 您可以從因特網或檔案共享下載並安裝說明檔。
如果沒有參數, Update-Help
請更新會話中模組的說明檔,以及支援可更新說明的所有已安裝模組。 包含已安裝但未載入目前會話中的模組。 PowerShell 模組會儲存在環境變數中列出的 $env:PSModulePath
位置。
如需詳細資訊,請參閱 about_Updatable_Help。
您可以使用 Module 參數來更新特定模組的說明檔。 使用 UICulture 參數,以多種語言和地區設定下載說明檔。
您可以在未連線到因特網的電腦上使用 Update-Help
。 Save-Help
使用 Cmdlet 從因特網下載說明檔,並將其儲存在文件系統位置,例如共用資料夾或檔案系統目錄。 然後使用的 Update-Help
SourcePath參數,從檔案系統位置下載更新的說明檔,並將其安裝在電腦上。
您可以將 Cmdlet 新增 Update-Help
至 PowerShell 配置檔,以自動化協助更新。 根據預設, Update-Help
每部計算機上每天只會執行一次。 若要覆寫每天一次的限制,請使用 Force 參數。
Cmdlet Update-Help
是在 Windows PowerShell 3.0 中引進。
重要
Update-Help
需要系統管理許可權。
您必須是計算機上的 Administrators 群組成員,才能更新 PowerShell Core 模組的說明檔。
若要下載或更新 PowerShell 安裝目錄中模組的說明檔, $PSHOME\Modules
() ,包括 PowerShell Core 模組,請使用 [以系統管理員身分執行] 選項啟動 PowerShell。
例如:Start-Process powershell.exe -Verb RunAs
。
您也可以使用 [Windows PowerShell 整合式腳本環境] (ISE) 的 [說明] 功能表中的 [更新 Windows PowerShell 說明] 功能表項來更新說明檔。
更新 Windows PowerShell 說明專案會執行Update-Help
沒有參數的 Cmdlet。
若要更新目錄中模組$PSHOME
的說明,請使用 [以系統管理員身分執行] 選項啟動 Windows PowerShell ISE。
範例
範例 1:更新所有模組的說明檔
Cmdlet Update-Help
會更新支援可更新說明之已安裝模組的說明檔。 使用者介面 (UI) 文化特性語言是在操作系統中設定。
Update-Help
範例 2:更新指定模組的說明檔
Cmdlet Update-Help
只會針對以 Microsoft.PowerShell 開頭的模組名稱更新說明檔。
Update-Help -Module Microsoft.PowerShell*
範例 3:更新不同語言的說明檔
此 Update-Help
Cmdlet 會更新所有模組的日文 (ja-JP) 和英文 (en-US) 說明檔。
如果模組未提供指定UI文化特性的說明檔,模組和UI文化特性會顯示錯誤訊息。 在此範例中,錯誤訊息指出模組 Microsoft.PowerShell.Utility 找不到 ja-JP 說明檔。
Update-Help -UICulture ja-JP, en-US
Update-Help : Failed to update Help for the module(s) 'Microsoft.PowerShell.Utility' with UI culture(s) {ja-JP}
No UI culture was found that matches the following pattern: ja-JP.
範例 4:自動更新說明檔
此範例會建立排程工作,以在上午 3:00 更新所有模組的說明。
$jobParams = @{
Name = 'UpdateHelpJob'
Credential = 'Domain01\User01'
ScriptBlock = '{Update-Help}'
Trigger = (New-JobTrigger -Daily -At "3 AM")
}
Register-ScheduledJob @jobParams
Id Name JobTriggers Command Enabled
-- ---- ----------- ------- -------
1 UpdateHelpJob 1 Update-Help True
Cmdlet Register-ScheduledJob
會建立執行命令的 Update-Help
排程工作。 命令會使用 Credential 參數 Update-Help
,在電腦上使用 Administrators 群組成員的認證來執行。 Trigger 參數的值是一個New-JobTrigger
命令,會建立作業觸發程式,每天上午 3:00 啟動作業。
若要執行 Register-ScheduledJob
命令,請使用 [ 以系統管理員身分 執行] 選項啟動 PowerShell。 PowerShell 會提示您輸入 Credential 參數中指定的用戶密碼。 認證會與排程工作一起儲存。 當作業執行時,系統不會提示您。
您可以使用 Get-ScheduledJob
Cmdlet 來檢視排程的工作、使用 Set-ScheduledJob
Cmdlet 來變更它,並使用 Unregister-ScheduledJob
Cmdlet 將其刪除。 您也可以在下列路徑,利用 [工作排程器] 檢視與管理排程工作:
Task Scheduler Library\Microsoft\Windows\PowerShell\ScheduledJobs
.
範例 5:從檔案共用更新多部計算機上的說明檔案
在此範例中,更新的說明檔會從因特網下載,並儲存在檔案共用中。 需要使用者認證,才能存取檔案共享並安裝更新。 使用檔案共享時,可以更新防火牆後方或未連線到因特網的計算機。
PS> Save-Help -DestinationPath \\Server01\Share\PSHelp -Credential Domain01\Admin01
PS> Invoke-Command -ComputerName (Get-Content Servers.txt) -ScriptBlock {
Update-Help -SourcePath \\Server01\Share\PSHelp -Credential Domain01\Admin01
}
此命令 Save-Help
會下載所有支援可更新說明之模組的最新說明檔。
DestinationPath 參數會將檔案儲存在檔案共用中\\Server01\Share\PSHelp
。 Credential 參數會指定有權存取檔案共享的使用者。
Cmdlet Invoke-Command
會在多部計算機上執行遠端 Update-Help
命令。 ComputerName 參數會從 Servers.txt 檔案取得遠端電腦的清單。 ScriptBlock 參數會Update-Help
執行 命令,並使用 SourcePath 參數來指定包含更新說明檔的檔案共用。 Credential 參數會指定可存取檔案共享並執行遠端Update-Help
命令的使用者。
範例 6:取得更新的說明檔清單
Cmdlet Update-Help
會更新指定模組的說明。 Cmdlet 會使用 Verbose 通用參數來顯示已更新的說明檔清單。 您可以使用 詳細資訊 來檢視特定模組之所有說明檔或說明檔的輸出。
如果沒有 Verbose 參數, Update-Help
就不會顯示命令的結果。 Verbose 參數輸出有助於確認說明檔是否已更新,或是否已安裝最新版本。
Update-Help -Module Microsoft.PowerShell.Utility -Verbose
範例 7:尋找支援可更新說明的模組
此範例會列出支援可更新說明的模組。 此命令會使用模組的 HelpInfoUri 屬性來識別支援可更新說明的模組。 HelpInfoUri 屬性包含執行 Cmdlet 時重新導向的Update-Help
位址。
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, ... }
範例 8:清查更新的說明檔
在此範例中,腳本 Get-UpdateHelpVersion.ps1
會針對每個模組及其版本號碼建立可更新說明檔案的清查。
腳本會使用模組的 HelpInfoUri 屬性來識別支援可更新說明的模組。 對於支援可更新說明的模組,腳本會尋找並剖析說明資訊檔, (*helpinfo.xml) 尋找最新版本號碼。
腳本會使用 PSCustomObject 類別和哈希表來建立自定義輸出物件。
# Get-UpdateHelpVersion.ps1
Param(
[parameter(Mandatory=$False)]
[String[]]
$Module
)
$HelpInfoNamespace = @{helpInfo='https://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所指定檔案系統位置之用戶的認證。 只有當命令中使用 SourcePath 或 LiteralPath 參數時,此參數才有效。
Credential 參數可讓您在遠端電腦上使用 SourcePath 參數執行Update-Help
命令。 藉由提供明確的認證,您可以在遠端計算機上執行 命令,並在第三部計算機上存取檔案共用,而不會發生拒絕存取錯誤或使用 CredSSP 驗證來委派認證。
Type: | PSCredential |
Position: | Named |
Default value: | None |
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
指定以 ModuleSpecification 物件形式指定之名稱的模組。 這些模組會在 ModuleSpecification 建構 函式的一節中描述, (Hashtable) 。
例如, FullyQualifiedModule 參數接受格式所指定的模組名稱:
@{ModuleName = "modulename"; ModuleVersion = "version_number"}
或
@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}.
ModuleName 和 ModuleVersion 是必要參數,但 Guid 是選擇性參數。
您無法在與 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-Item
或 Get-ChildItem
Cmdlet 傳送至 Update-Help
。
與 SourcePath 的值不同, LiteralPath 的值會完全依照其類型使用。 沒有字元會被視為萬用字元。 如果路徑包含逸出字元,請將它括在單引號中。 單引號會告訴PowerShell不要將任何字元解譯為逸出序列。
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Module
更新指定模組的說明。 在逗號分隔清單中輸入一或多個模組名稱或名稱模式,或指定在每個行列出一個模組名稱的檔案。 允許使用萬用字元。 您可以從 Cmdlet 管線模組 Get-Module
到 Update-Help
Cmdlet。
您指定的模組必須安裝在計算機上,但不需要將它們匯入目前的會話。 您可以在工作階段中指定任何模組,或安裝在環境變數所列位置的任何 $env:PSModulePath
模組。
(所有) 嘗試更新電腦上安裝之所有模組的說明的值 *
。
包含不支援可更新說明的模組。 當命令遇到不支援可更新說明的模組時,此值可能會產生錯誤。 相反地,請執行 Update-Help
而不使用參數。
Cmdlet 的 Update-Help
Module 參數不接受模組檔案或模組指令清單檔的完整路徑。 若要更新不在位置的 $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 |
-SourcePath
指定取得更新說明檔的檔案系統資料夾 Update-Help
,而不是從因特網下載。 輸入資料夾的路徑。 請勿指定檔名或擴展名。 您可以將資料夾管線,例如從 Get-Item
或 Get-ChildItem
Cmdlet 傳送至 Update-Help
。
根據預設, Update-Help
會從因特網下載更新的說明檔。 當您使用 Cmdlet 將更新的說明檔下載至目錄時,Save-Help
請使用 SourcePath。
若要指定SourcePath的預設值,請移至 [群組原則]、[計算機設定] 和 [設定Update-Help的預設來源路徑]。 此 群組原則 設定可防止使用者使用 Update-Help
從因特網下載說明檔。
如需詳細資訊,請參閱 about_Group_Policy_Settings。
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UICulture
指定用來取得更新說明檔的UI文化特性值 Update-Help
。 輸入一或多個語言代碼,例如 es-ES、包含文化特性物件的變數,或取得文化特性對象的命令,例如 Get-Culture
或 Get-UICulture
命令。 不允許通配符,您無法提交部分語言代碼,例如 de。
根據預設, Update-Help
取得作業系統UI文化特性集中的說明檔。 如果您指定 UICulture 參數, Update-Help
請只尋找指定 UI 文化特性的說明。
只有當模組有提供所指定 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 |
輸入
您可以使用管線將目錄路徑傳送至 Update-Help
。
您可以使用管線將模組物件從 Get-Module
Cmdlet 傳送至 Update-Help
。
輸出
None
Update-Help
不會產生任何輸出。
備註
若要更新 PowerShell Core 模組的說明,其中包含隨 PowerShell 一起安裝的命令,或目錄中的任何模組 $PSHOME\Modules
,請使用以 系統管理員身分執行的選項啟動 PowerShell。
只有電腦上的 Administrators 群組成員可以更新 PowerShell Core 模組的說明、與 PowerShell 一起安裝的命令,以及資料夾中的 $PSHOME\Modules
模組。 如果您沒有更新說明檔的許可權,您可以在線上閱讀說明檔。 例如: Get-Help Update-Help -Online
。
模組是可更新的說明之最小單位。 您無法更新特定 Cmdlet 的說明。 若要尋找包含特定 Cmdlet 的模組,請使用 Cmdlet 的 Get-Command
ModuleName 屬性,例如 (Get-Command Update-Help).ModuleName
。
因為說明檔安裝在模組目錄中, Update-Help
所以 Cmdlet 只能針對計算機上安裝的模組安裝更新的說明檔。 不過, Save-Help
Cmdlet 可以為未安裝在電腦上的模組儲存說明。
如果 Update-Help
找不到模組的更新說明檔,或找不到指定語言的更新說明,它會以無訊息方式繼續,而不會顯示錯誤訊息。 若要查看狀態和進度的詳細資訊,請使用 Verbose 參數。
Cmdlet Update-Help
是在 Windows PowerShell 3.0 中引進。 它不適用於舊版的 Windows 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-Help
和 Save-Help
Cmdlet 會使用下列埠來下載說明檔:HTTP 的埠 80 和 HTTPS 的埠 443。
Update-Help
支援所有模組和 PowerShell Core 嵌入式管理單元。它不支援任何其他嵌入式管理單元。
若要更新環境變數中未列出的 $env:PSModulePath
模組說明,請將模組匯入目前的會話,然後執行 Update-Help
命令。 在沒有參數的情況下執行 Update-Help
,或使用 Module 參數來指定模組名稱。 和 Save-Help
Cmdlet 的 Update-Help
Module 參數不接受模組檔案或模組指令清單檔的完整路徑。
任何模組都能支援「可更新的說明」。 如需在您所撰寫模組中支援可更新說明的指示,請參閱 支援可更新的說明。
Update-Help
Windows 預安裝環境不支援 和 Save-Help
Cmdlet (Windows PE) 。