当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Update-Help (Microsoft.PowerShell.Core)

作者:精品下载站 日期:2024-12-14 02:13:45 浏览:14 分类:玩电脑

Update-Help (Microsoft.PowerShell.Core)


Update-Help

模块 :Microsoft.PowerShell.Core

在您的计算机上下载并安装最新的帮助文件。

句法

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>]

描述

Update-Help cmdlet 下载 PowerShell 模块的最新帮助文件并将其安装在您的计算机上。您无需重新启动 PowerShell 即可使更改生效。您可以使用 Get-Help cmdlet 立即查看新的帮助文件。

Update-Help 检查计算机上帮助文件的版本。如果您没有模块的帮助文件或者您的帮助文件已过时,Update-Help 将下载最新的帮助文件。可以从 Internet 或文件共享下载并安装帮助文件。

如果没有参数,Update-Help 会更新支持可更新帮助的模块的帮助文件,并在会话中加载或安装在 $env:PSModulePath 中包含的位置。有关详细信息,请参阅 about_Updatable_Help。

Update-Help 检查已安装帮助的版本。如果 Update-Help 无法找到模块的更新帮助文件,它将继续静默而不显示错误消息。使用Force参数跳过版本检查。使用Verbose参数查看状态和进度详细信息。使用模块参数更新特定模块的帮助文件。

您还可以在未连接到互联网的计算机上使用Update-Help。首先,使用 Save-Helpcmdlet 从 Internet 下载帮助文件并将其保存在未连接到 Internet 的系统可以访问的共享文件夹中。然后使用Update-HelpSourcePath参数从共享下载更新的帮助文件并将其安装在计算机上。

Update-Help cmdlet 是在 Windows PowerShell 3.0 中引入的。

这很重要

Update-Help 需要 PowerShell 6.0 及更低版本的管理权限。 PowerShell 6.1 及更高版本将默认范围设置为CurrentUser。在 PowerShell 6.1 之前,Scope 参数不可用。

您必须是计算机上管理员组的成员才能更新核心 PowerShell 模块的帮助文件。

要下载或更新 PowerShell 安装目录 ($PSHOME\Modules) 中的模块(包括 PowerShell Core 模块)的帮助文件,请使用以管理员身份运行选项启动 PowerShell。例如:Start-Process pwsh.exe -Verb RunAs

示例

示例 1:更新所有模块的帮助文件

Update-Help cmdlet 更新支持可更新帮助的已安装模块的帮助文件。用户界面 (UI) 文化语言在操作系统中设置。

Update-Help

示例 2:更新指定模块的帮助文件

Update-Help cmdlet 仅更新以 Microsoft.PowerShell 开头的模块名称的帮助文件。

Update-Help -Module Microsoft.PowerShell*

示例 3:更新未设置为 en-US 区域设置的系统上的帮助

Update-Help cmdlet 旨在下载多种语言的帮助。但是,当系统使用的语言没有可用的帮助时,会显示模块和 UI 区域性的错误消息。

在此示例中,Update-Help 正在设置为 en-GB 区域设置的系统上运行。

Update-Help Microsoft.PowerShell.Utility -Force

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 语言环境发布。要下载英文帮助,请使用 UICulture 参数运行 Update-Help 并指定 en-US 区域设置。

示例 4:从文件共享更新多台计算机上的帮助文件

在此示例中,从 Internet 下载更新的帮助文件并将其保存在文件共享中。需要有权访问文件共享和安装更新的用户凭据。使用文件共享时,可以更新位于防火墙后面或未连接到 Internet 的计算机。

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\PSHelp 文件共享中。 Credential 参数指定有权访问文件共享的用户。

Invoke-Command cmdlet 在多台计算机上运行远程 Update-Help 命令。 ComputerName 参数从Servers.txt 文件获取远程计算机的列表。 ScriptBlock 参数运行 Update-Help 命令并使用 SourcePath 参数指定包含更新的帮助文件的文件共享。 Credential 参数指定可以访问文件共享并运行远程 Update-Help 命令的用户。

示例 5:获取更新的帮助文件列表

Update-Help cmdlet 更新指定模块的帮助。该 cmdlet 使用 Verbose 通用参数来显示已更新的帮助文件列表。您可以使用详细查看所有帮助文件或特定模块的帮助文件的输出。

如果没有 Verbose 参数,Update-Help 不会显示命令的结果。 Verbose 参数输出对于验证帮助文件是否已更新或是否安装了最新版本非常有用。

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

示例 6:查找支持可更新帮助的模块

此示例列出了支持可更新帮助的模块。该命令使用模块的 HelpInfoUri 属性来标识支持可更新帮助的模块。 HelpInfoUri 属性包含运行 Update-Help cmdlet 时重定向的 URL。

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

Directory: C:\program files\powershell\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 之前提示您进行确认。

类型 :

SwitchParameter

别名:

cf

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Credential

指定有权访问由 SourcePath 指定的文件系统位置的用户的凭据。仅当命令中使用SourcePathLiteralPath参数时,该参数才有效。

Credential 参数使您能够在远程计算机上运行带有 SourcePath 参数的 Update-Help 命令。通过提供显式凭据,您可以在远程计算机上运行该命令并访问第三台计算机上的文件共享,而不会遇到访问被拒绝错误或使用 CredSSP 身份验证来委派凭据。

输入用户名,例如 User01Domain01\User01,或输入由 Get-Credential cmdlet。如果您键入用户名,系统会提示您输入密码。

凭证存储在 PSCredential 对象中,密码存储为 SecureString。

笔记

有关 SecureString 数据保护的更多信息,请参阅 SecureString 的安全性如何?。

类型 :

PS凭证

位置:

命名

默认值:

当前用户

必需的:

False

接受管道输入:

False

接受通配符:

False

-Force

指示此 cmdlet 不遵循每天一次的限制、跳过版本检查并下载超过 1 GB 限制的文件。

如果没有此参数,Update-Help 在每个 24 小时内仅运行一次。每个模块的下载限制为 1 GB 的未压缩内容,并且仅当帮助文件比计算机上的现有文件新时才会安装帮助文件。

每天一次的限制可以保护托管帮助文件的服务器,并使您可以向 PowerShell 配置文件添加 Update-Help 命令,而不会产生重复连接或下载的资源成本。

要在不使用 Force 参数的情况下更新多个 UI 区域性中的模块的帮助,请在同一命令中包含所有 UI 区域性,例如:

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

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-FullyQualifiedModule

该值可以是模块名称、完整的模块规范或模块文件的路径。

当该值是路径时,该路径可以是完全限定的或相对的。相对路径是相对于包含 using 语句的脚本进行解析的。

当该值为名称或模块规范时,PowerShell 会在 PSModulePath 中搜索指定的模块。

模块规范是一个具有以下键的哈希表。

  • ModuleName - 必需 指定模块名称。
  • GUID - 可选 指定模块的 GUID。
  • 必需至少指定以下三个键之一。

    • ModuleVersion - 指定模块的最低可接受版本。
  • MaximumVersion - 指定模块可接受的最大版本。
  • RequiredVersion - 指定模块的准确、必需的版本。它不能与其他版本密钥一起使用。

您不能在同一命令中将 FullyQualifiedModule 参数指定为 Module 参数。

类型 :

模块规格[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-LiteralPath

指定更新帮助文件的文件夹,而不是从 Internet 下载它们。如果您已使用 Save-Help cmdlet 将帮助文件下载到目录,请使用此参数或 SourcePath

您可以通过管道将目录对象(例如从 Get-ItemGet-ChildItem cmdlet)传输到 Update-Help

SourcePath 的值不同,LiteralPath 的值完全按照键入的方式使用。没有字符被解释为通配符。如果路径包含转义字符,请将其用单引号引起来。单引号告诉 PowerShell 不要将任何字符解释为转义序列。

类型 :

String[]

别名:

PSPath, LP

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-Module

更新指定模块的帮助。在逗号分隔的列表中输入一个或多个模块名称或名称模式,或指定一个在每一行列出一个模块名称的文件。允许使用通配符。您可以将模块从 Get-Module cmdlet 传送到 Update-Help cmdlet。

您指定的模块必须安装在计算机上,但不必将它们导入到当前会话中。您可以指定会话中的任何模块或安装在 $env:PSModulePath 环境变量中列出的位置中的任何模块。

*(全部)尝试更新计算机上安装的所有模块的帮助。包括不支持可更新帮助的模块。当命令遇到不支持可更新帮助的模块时,此值可能会生成错误。相反,运行不带参数的 Update-Help

Update-Help cmdlet 的 Module 参数不接受模块文件或模块清单文件的完整路径。要更新不在 $env:PSModulePath 位置中的模块的帮助,请在运行 Update-Help 命令之前将该模块导入到当前会话中。

类型 :

String[]

别名:

Name

位置:

0

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

True

-Recurse

对指定目录中的帮助文件执行递归搜索。该参数仅当命令使用SourcePath参数时有效。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Scope

指定更新帮助的系统范围。 AllUsers 范围的更新需要 Windows 系统上的管理权限。 -Scope 参数是在 PowerShell Core 版本 6.1 中引入的。

CurrentUser 是 PowerShell 6.1 及更高版本中帮助文件的默认范围。可以指定AllUsers来为所有用户安装或更新帮助。在 Unix 系统上,需要 sudo 权限才能更新所有用户的帮助。例如:sudo pwsh -c Update-Help

可接受的值为:

  • CurrentUser
  • AllUsers
类型 :

更新帮助范围

位置:

命名

默认值:

CurrentUser

必需的:

False

接受管道输入:

True

接受通配符:

False

-SourcePath

指定一个文件系统文件夹,Update-Help 在其中获取更新的帮助文件,而不是从 Internet 下载它们。输入文件夹的路径。不要指定文件名或文件扩展名。您可以通过管道将文件夹(例如 Get-ItemGet-ChildItem cmdlet 中的文件夹)传输至 Update-Help

默认情况下,Update-Help 从互联网下载更新的帮助文件。当您使用 Save-Help cmdlet 将更新的帮助文件下载到目录时,请使用 SourcePath

要指定 SourcePath 的默认值,请转到组策略计算机配置设置 Update-Help 的默认源路径。此组策略设置阻止用户使用 Update-Help 从 Internet 下载帮助文件。有关详细信息,请参阅 about_Group_Policy_Settings。

类型 :

String[]

别名:

Path

位置:

1

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-UICulture

指定此 cmdlet 获取更新帮助文件的 UI 区域性值。输入一个或多个语言代码,例如 es-ES、包含文化对象的变量或获取文化对象的命令,例如 Get-Culture 或 获取-UICulture命令。不允许使用通配符。

默认情况下,Update-Help 获取操作系统或其后备区域性的 UI 区域性设置中的帮助文件。如果指定 UICulture 参数,Update-Help 仅查找指定语言的帮助。

从 PowerShell 7.4 开始,您可以使用部分语言代码(例如 en)下载任何区域的英语帮助。

笔记

Ubuntu 18.04 将默认区域设置更改为 C.UTF.8,这不是一种可识别的 UI 区域性。 Update-Help 无法静默下载帮助,除非您将此参数与受支持的区域设置(如 en-US)一起使用。在使用不受支持的值的任何平台上都可能发生这种情况。

类型 :

文化信息[]

位置:

2

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-UseDefaultCredentials

指示 Update-Help 使用当前用户的凭据运行命令,包括 Internet 下载。默认情况下,该命令在没有显式凭据的情况下运行。

仅当 Web 下载使用 NT LAN Manager (NTLM)、协商或基于 Kerberos 的身份验证时,此参数才有效。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-WhatIf

显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。

类型 :

SwitchParameter

别名:

wi

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

目录信息

您可以通过管道将目录路径对象传递给此 cmdlet。

PSModuleInfo

您可以通过管道将模块对象传递给此 cmdlet。

输出

此 cmdlet 不返回任何输出。

笔记

要更新核心 PowerShell 模块(包含随 PowerShell 一起安装的命令)或 $PSHOME\Modules 目录中的任何模块的帮助,请使用以管理员身份运行选项启动 PowerShell

只有计算机上 Administrators 组的成员才能更新核心 PowerShell 模块、与 PowerShell 一起安装的命令以及 $PSHOME\Modules 文件夹中的模块的帮助。如果您没有更新帮助文件的权限,您可以在线阅读帮助文件。例如,Get-Help Update-Help -Online

模块是可更新帮助的最小单位。您无法更新特定 cmdlet 的帮助。要查找包含特定 cmdlet 的模块,请使用 Get-Command cmdlet 的 ModuleName 属性,例如 (Get-Command Update-Help).ModuleName

由于帮助文件安装在模块目录中,因此 Update-Help cmdlet 只能为计算机上安装的模块安装更新的帮助文件。但是,Save-Help cmdlet 可以保存计算机上未安装的模块的帮助。

Update-Help cmdlet 是在 Windows PowerShell 3.0 中引入的。它在早期版本的 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-HelpSave-Help cmdlet 使用以下端口下载帮助文件:HTTP 端口 80 和 HTTPS 端口 443。

Update-Help 支持所有模块和核心 PowerShell 管理单元。它不支持任何其他管理单元。

要更新 $env:PSModulePath 环境变量中未列出的位置中的模块的帮助,请将该模块导入到当前会话中,然后运行 Update-Help 命令。运行不带参数的 Update-Help 或使用 Module 参数指定模块名称。 Update-HelpSave-Help cmdlet 的 Module 参数不接受模块文件或模块清单文件的完整路径。

任何模块都可以支持可更新帮助。有关在您编写的模块中支持可更新帮助的说明,请参阅支持可更新帮助。

Windows 预安装环境 (Windows PE) 不支持 Update-HelpSave-Help cmdlet。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯