update-help 更新两个模块失败

Sir*_*pec 8 windows-update powershell help-files updates

在我的计算机(Win10 Enterprise x64、1709)上运行Update-Help返回两个错误:

更新帮助:无法更新模块“AutoSequencer、HostNetworkingService、WindowsUpdateProvider”与 UI 文化 {en-US} 的帮助:无法检索 UI 文化 en-US 的 HelpInfo XML 文件。确保模块清单中的 HelpInfoUri 属性有效或检查您的网络连接,然后重试该命令。

在第 1 行字符:1 + 更新帮助 + ~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (:) [Update-Help], Exception +fullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShell.Commands.UpdateHelpCommand

更新帮助:无法使用 UI 文化更新模块“PrintManagement”的帮助{en-US}:无法连接到帮助内容。存储帮助内容的服务器可能不可用。验证服务器是否可用,或等到服务器重新联机,然后重试该命令。

在第 1 行字符:1 + 更新帮助 + ~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Update-Help], Exception +fullyQualifiedErrorId : UnableToConnect,Microsoft.PowerShell.Commands.UpdateHelpCommand

这是一个问题,因为我是第一次编写 Windows 更新脚本,并且拥有WindowsUpdateProvider的帮助文件很重要。即使我知道如何查找和修复“ HelpInfoUri ”属性,我也不知道该将其设置为什么 - Google 搜索“ WindowsUpdateProvider help ”主要返回人们以各种语言询问此问题,但没有解决方案我可以看。这同样意味着我无法通过使用在线帮助解决该问题。(Get-Help WindowsUpdateProvider -online 返回类似的错误。)

我知道“ PSWindowsUpdate ”模块,但由于我们的流程,使用Windows 10附带的模块会更可取。

Vom*_*yle 6

在尝试此操作并获得与您完全相同的结果后,我偶然发现了Failed to update Help for the module(s)~ TechNet 帖子。

\n\n

在使用下面的语法运行后,我在提升PowerShell提示符之前阅读了该帖子,这为我提供了问题所在以及如何解决所需的详细信息。

\n\n

两部分解决方案

\n\n
    \n
  1. 以管理员身份运行提升的PowerShell
  2. \n
  3. 运行此PowerShell命令语法:

    \n\n
    \n
    Update-Help  -Force -Ea 0 -Ev what\n$what.Exception\n
    Run Code Online (Sandbox Code Playgroud)\n\n

    来源

    \n
  4. \n
\n\n
\n\n

错误(使用-ErrorAction[ -Ea] 和-ErrorVariable[ -Ev])

\n\n
    \n
  • \n

    无法更新模块的帮助:\' <List of Modules>~\' 访问被拒绝。该命令无法更新 Windows PowerShell 核心模块或 $pshome\\Modules 目录中的任何\n 模块的帮助主题。若要更新这些帮助主题,请使用“以管理员身份运行”命令启动 Windows PowerShell,然后再次尝试运行 Update-Help。无法\n更新模块的帮助 ~

    \n
  • \n
\n\n
\n\n

更多资源

\n\n
    \n
  • 更新帮助
  • \n
  • 常用参数

    \n\n
      \n
    • ErrorAction

      \n\n
        \n
      • \n

        通用-ErrorAction参数允许您指定命令失败时要采取的操作。可用选项有:停止继续静默继续、忽略查询。如果您\xe2\x80\x99 正在开发 Windows PowerShell 工作流,则还可以使用Suspend值。但高级功能不能暂停。

        \n\n

        当您在调用命令期间指定ErrorAction$ErrorActionPreference参数时,指定的行为将覆盖Windows PowerShell 中的变量。此变量是称为 \xe2\x80\x9cp 引用变量的少数变量的一部分。\xe2\x80\x9d 默认情况下,Windows PowerShell 使用“继续”错误操作首选项,这意味着错误将被写出到主机,但脚本将继续执行。

        \n\n

        来源

        \n
      • \n
    • \n
    • ErrorVariable

      \n\n
        \n
      • \n

        通常,如果运行 Windows PowerShell 命令并发生错误,错误记录将附加到名为 的 \xe2\x80\x9c 自动变量\xe2\x80\x9d 中$error-ErrorVariable当您在命令调用中使用参数时,错误将分配给您指定的变量名称。需要注意的是,即使您使用该-ErrorVariable参数,该$error变量仍然会更新。

        \n\n

        来源

        \n
      • \n
    • \n
  • \n
\n


pos*_*ote 1

这并不罕见。这种事在我身上发生过很多次。自 PowerShell/Monad 首次发布以来。

因此,不要对此感到压力,因为您通常无法修复它(很多时候只有作者可以),并且如果有任何问题,请使用在线网络帮助版本来解决有问题的模块。

并非所有模块都有可更新的帮助,或者关联的清单、帮助链接文件存在问题。

因此,正如 PimpJuiceIT 所指出的,只需使用该命令即可忽略该错误。