Update-Help
在计算机上下载并安装最新的帮助文件。
语法
Path (默认值)
Update-Help
[[-Module] <String[]>]
[[-SourcePath] <String[]>]
[[-UICulture] <CultureInfo[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[-Recurse]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
LiteralPath
Update-Help
[[-Module] <String[]>]
[[-UICulture] <CultureInfo[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[-LiteralPath <String[]>]
[-Recurse]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
Update-Help cmdlet 下载 PowerShell 模块的最新帮助文件,并将其安装在计算机上。 无需重启 PowerShell 才能使更改生效。 可以使用 Get-Help cmdlet 立即查看新的帮助文件。
Update-Help 检查计算机上的帮助文件版本。 如果没有模块的帮助文件或帮助文件已过时,Update-Help 下载最新的帮助文件。 可以从 Internet 或文件共享下载和安装帮助文件。
如果没有参数,Update-Help 更新会话中模块和支持可更新帮助的所有已安装模块的帮助文件。 包括已安装但未加载到当前会话中的模块。 PowerShell 模块存储在 $env:PSModulePath 环境变量中列出的位置。
有关详细信息,请参阅 about_Updatable_Help。
可以使用 Module 参数更新特定模块的帮助文件。 使用 UICulture 参数下载多种语言和区域设置的帮助文件。
可以在未连接到 Internet 的计算机上使用 Update-Help。 使用 Save-Help cmdlet 从 Internet 下载帮助文件,并将其保存在文件系统位置,例如共享文件夹或文件系统目录。 然后使用 的 Update-Help 参数从文件系统位置下载更新的帮助文件,并将其安装在计算机上。
可以通过将 Update-Help cmdlet 添加到 PowerShell 配置文件来自动执行帮助更新。 默认情况下,Update-Help 每台计算机上每天只运行一次。 若要替代每天限制一次,请使用 Force 参数。
Update-Help cmdlet 是在 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:更新所有模块的帮助文件
Update-Help cmdlet 更新支持可更新帮助的已安装模块的帮助文件。 用户界面(UI)区域性语言在操作系统中设置。
Update-Help
示例 2:更新指定模块的帮助文件
Update-Help cmdlet 仅针对以 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
Register-ScheduledJob cmdlet 创建运行 Update-Help 命令的计划作业。 该命令使用 Credential 参数通过计算机上的 Administrators 组成员的凭据来运行 Update-Help。
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:从文件共享更新多个计算机上的帮助文件
在此示例中,已更新的帮助文件将从 Internet 下载并保存在文件共享中。 需要具有访问文件共享和安装更新的权限的用户凭据。 使用文件共享时,可以更新防火墙后或未连接到 Internet 的计算机。
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 参数指定有权访问文件共享的用户。
Invoke-Command cmdlet 在多台计算机上运行远程 Update-Help 命令。
ComputerName 参数从 Servers.txt 文件中获取远程计算机的列表。
ScriptBlock 参数运行 Update-Help 命令,并使用 SourcePath 参数指定包含更新的帮助文件的文件共享。
Credential 参数指定可以访问文件共享并运行远程 Update-Help 命令的用户。
示例 6:获取更新的帮助文件列表
Update-Help cmdlet 更新指定模块的帮助。 该 cmdlet 使用 Verbose 常见参数来显示已更新的帮助文件列表。 可以使用 详细 查看特定模块的所有帮助文件或帮助文件的输出。
如果没有 详细 参数,Update-Help 不显示命令的结果。
详细 参数输出可用于验证是否已更新帮助文件,或者是否安装了最新版本。
Update-Help -Module Microsoft.PowerShell.Utility -Verbose
示例 7:查找支持可更新帮助的模块
此示例列出了支持可更新帮助的模块。 该命令使用模块的 HelpInfoUri 属性来标识支持可更新帮助的模块。
HelpInfoUri 属性包含运行 Update-Help cmdlet 时重定向的地址。
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 之前,提示你进行确认。
参数属性
| 类型: | SwitchParameter |
| 默认值: | False |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | cf |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Credential
指定有权访问 SourcePath指定的文件系统位置的用户的凭据。 仅当命令中使用 SourcePath 或 LiteralPath 参数时,此参数才有效。
使用 Credential 参数可以在远程计算机上使用 Update-Help 参数运行 命令。 通过提供显式凭据,可以在远程计算机上运行该命令,并在第三台计算机上访问文件共享,而不会遇到访问被拒绝错误或使用 CredSSP 身份验证委托凭据。
参数属性
| 类型: | PSCredential |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | 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
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-FullyQualifiedModule
指定名称以 ModuleSpecification 对象形式指定的模块。 这些模块在 ModuleSpecification 构造函数(哈希表)的“备注”部分中介绍。
例如,FullyQualifiedModule 参数接受采用以下格式指定的模块名称:
@{ModuleName = "modulename"; ModuleVersion = "version_number"}
或
@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}.
ModuleName 和 ModuleVersion 是必需的,但 Guid 是可选的。
不能在与 Module 参数相同的命令中指定 FullyQualifiedModule 参数。
参数属性
| 类型: | ModuleSpecification[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-LiteralPath
指定更新的帮助文件的文件夹,而不是从 Internet 下载它们。 如果使用 cmdlet 将帮助文件下载到目录,请使用此参数或 Save-Help。
可以将目录对象(例如从 Get-Item 或 Get-ChildItem cmdlet)管道到 Update-Help。
与 SourcePath的值不同,LiteralPath 的值与类型化完全相同。 不会将任何字符解释为通配字符。 如果路径包含转义字符,请将它括在单引号中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | PSPath |
参数集
LiteralPath
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-Module
更新指定模块的帮助。 在逗号分隔的列表中输入一个或多个模块名称或名称模式,或指定一个文件,该文件在每行中列出一个模块名称。 允许使用通配符。 可以将 Get-Module cmdlet 中的模块管道到 Update-Help cmdlet。
指定的模块必须安装在计算机上,但它们不必导入到当前会话中。 可以在会话中指定任何模块,也可以指定安装在 $env:PSModulePath 环境变量中列出的位置的任何模块。
*(所有)的值尝试更新计算机上安装的所有模块的帮助。
包含不支持可更新帮助的模块。 当命令遇到不支持可更新帮助的模块时,此值可能会生成错误。 而是在没有参数的情况下运行 Update-Help。
cmdlet 的 Update-Help 参数不接受模块文件或模块清单文件的完整路径。 若要更新不在 $env:PSModulePath 位置的模块的帮助,请在运行 Update-Help 命令之前将模块导入当前会话。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | True |
| 不显示: | False |
| 别名: | 名称 |
参数集
(All)
| Position: | 0 |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-Recurse
对指定目录中的帮助文件执行递归搜索。 仅当命令使用 SourcePath 参数时,此参数才有效。
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-SourcePath
指定 Update-Help 更新帮助文件的文件系统文件夹,而不是从 Internet 下载它们。 输入文件夹的路径。 不要指定文件名或文件扩展名。 可以将文件夹(如 Get-Item 或 Get-ChildItem cmdlet 中的文件夹)管道到 Update-Help。
默认情况下,Update-Help 从 Internet 下载更新的帮助文件。 使用 cmdlet 将更新的帮助文件下载到目录时,请使用 Save-Help。
若要指定 SourcePath的默认值,请转到 组策略、计算机配置,设置 Update-Help的默认源路径。 此组策略设置可防止用户使用 Update-Help 从 Internet 下载帮助文件。
有关详细信息,请参阅 about_Group_Policy_Settings。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
Path
| Position: | 1 |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-UICulture
指定 Update-Help 用于获取更新帮助文件的 UI 区域性值。 输入一个或多个语言代码,例如 es-ES、包含区域性对象的变量或获取区域性对象的命令,例如 Get-Culture 或 Get-UICulture 命令。 不允许通配符,不能提交部分语言代码,例如 de。
默认情况下,Update-Help 获取操作系统的 UI 区域性集中的帮助文件。 如果指定 UICulture 参数,Update-Help 仅查找指定 UI 区域性的帮助。
仅当模块为指定的 UI 区域性提供帮助文件时,才成功使用 UICulture 参数的命令。 如果命令失败,因为不支持指定的 UI 区域性,则会显示一条错误消息。
参数属性
| 类型: | CultureInfo[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | 2 |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-UseDefaultCredentials
指示 Update-Help 使用当前用户的凭据运行命令(包括 Internet 下载)。 默认情况下,该命令在没有显式凭据的情况下运行。
仅当 Web 下载使用 NT LAN 管理器(NTLM)、协商或基于 Kerberos 的身份验证时,此参数才有效。
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-WhatIf
显示 cmdlet 运行时会发生什么情况。 cmdlet 未能运行。
参数属性
| 类型: | SwitchParameter |
| 默认值: | False |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | 无线 |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
DirectoryInfo
可以通过管道将目录路径传递给 Update-Help。
PSModuleInfo
可以通过管道将模块对象从 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 属性,例如 (Get-Command Update-Help).ModuleName。
由于帮助文件安装在模块目录中,Update-Help cmdlet 只能为计算机上安装的模块安装更新的帮助文件。 但是,Save-Help cmdlet 可以为计算机上未安装的模块保存帮助。
如果 Update-Help 找不到模块的更新帮助文件,或者找不到指定语言的更新帮助,则它将继续以无提示方式继续,而不会显示错误消息。 若要查看状态和进度详细信息,请使用 详细 参数。
Update-Help cmdlet 是在 Windows PowerShell 3.0 中引入的。 它不适用于早期版本的 Windows PowerShell。 在同时具有 Windows PowerShell 2.0 和 Windows PowerShell 3.0 的计算机上,使用 Windows PowerShell 3.0 会话中的 Update-Help 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 参数指定模块名称。
和 Update-Help cmdlet 的 Save-Help 参数不接受模块文件或模块清单文件的完整路径。
任何模块都可以支持可更新的帮助。 有关在创作的模块中支持可更新帮助的说明,请参阅 支持可更新帮助。
Windows 预安装环境(Windows PE)不支持 Update-Help 和 Save-Help cmdlet。