PowerShell Update-Help 未安装“about_”帮助文章

PowerShell Update-Help 未安装“about_”帮助文章

我是新的 PowerShell 用户。我在完全更新的 Windows Server 2016 安装上使用 PS 版本 5.1.14393.3471。

今天我第一次使用 Get-Help,并按照说明运行 Update-Help。大多数 about_ 帮助文章都没有安装,而且我无法安装它们。

我找到了这个问题和这个错误报告。两者似乎都描述了我遇到的问题,并且都说问题已经解决。

我尝试过Update-HelpUpdate-Help -Force和。我的所在地是 en-AU。我以管理员身份运行 powershell Update-Help -UICulture en-USUpdate-Help -UICulture en-US -Force

我仍然缺少大部分关于_帮助的文章。

PS C:\Windows\System32\WindowsPowerShell\v1.0> Get-Help about_*

Name                              Category  Module                    Synopsis
----                              --------  ------                    --------
about_BeforeEach_AfterEach        HelpFile                            performed at the beginning and end of every It block. This can eliminate duplication of code
about_Mocking                     HelpFile                            Pester provides a set of Mocking functions making it easy to fake dependencies
about_Pester                      HelpFile                            Pester is a BDD based test runner for PowerShell.
about_should                      HelpFile                            Provides assertion convenience methods for comparing objects and throwing
about_TestDrive                   HelpFile                            A PSDrive for file activity limited to the scope of a singe Describe or

我已经为此烦恼了一段时间,但找不到解决办法。任何建议都将不胜感激。

评论后的一些附加信息:

PS C:\Windows\System32\WindowsPowerShell\v1.0> (Get-Help -Name 'about_*').count
5
PS C:\> $Host.CurrentCulture.Name
en-AU
PS C:\> $Host.CurrentUICulture.Name
en-US
PS C:\> Get-ChildItem -Directory $pshome

    Directory: C:\Windows\System32\WindowsPowerShell\v1.0

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       12/09/2016     04:22                en
d-----       17/06/2020     20:30                en-US
d-----       16/07/2016     06:23                Examples
d-----       10/08/2019     10:24                Modules
d-----       16/07/2016     06:23                Schemas
d-----       16/07/2016     06:23                SessionConfig

PS C:\> Get-ChildItem $pshome\en-US

    Directory: C:\Windows\System32\WindowsPowerShell\v1.0\en-US

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       12/09/2016     04:21           3568 default.help.txt
-a----        6/05/2014     15:27         143981 Microsoft.PowerShell.Commands.Diagnostics.dll-help.xml
-a----        5/06/2020     01:49        2549460 Microsoft.PowerShell.Commands.Management.dll-Help.xml
-a----        5/06/2020     01:50        2195100 Microsoft.PowerShell.Commands.Utility.dll-help.xml
-a----        5/06/2020     01:48          27900 Microsoft.PowerShell.ConsoleHost.dll-help.xml
-a----        5/06/2020     01:49         291850 Microsoft.PowerShell.Security.dll-help.xml
-a----        5/06/2020     01:50          63171 Microsoft.PowerShell.Utility-help.xml
-a----       12/09/2016     04:21          11776 powershell.exe.mui
-a----       12/09/2016     04:21          54784 PSEvents.dll.mui
-a----       12/09/2016     04:21           5632 pspluginwkr.dll.mui
-a----       12/09/2016     04:21           5120 pwrshmsg.dll.mui
-a----        5/06/2020     01:48        2987565 System.Management.Automation.dll-help.xml

当我运行 Update-Help 时,我收到一些非终止错误,但它们似乎无关。

PS C:\Windows\System32\WindowsPowerShell\v1.0> Update-Help -UICulture "en-US" -Force
Update-Help : Failed to update Help for the module(s) 'Microsoft.WSMan.Management, PSReadline' with UI culture(s) {en-US} : Unable to retrieve the HelpInfo XML file for UI culture en-US. Make sure the HelpInfoUri property in the module manifest is valid or check your
network connection and then try the command again.
At line:1 char:1
+ Update-Help -UICulture "en-US" -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [Update-Help], Exception
    + FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShell.Commands.UpdateHelpCommand

Update-Help : Failed to update Help for the module(s) 'PlatformIdentifier, UEV' with UI culture(s) {en-US} : Unable to connect to Help content. The server on which Help content is stored might not be available. Verify that the server is available, or wait until the
server is back online, and then try the command again.
At line:1 char:1
+ Update-Help -UICulture "en-US" -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Update-Help], Exception
    + FullyQualifiedErrorId : UnableToConnect,Microsoft.PowerShell.Commands.UpdateHelpCommand

答案1

我的评论的后续内容:

更新帮助 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/update-help?view=powershell-7 在您的计算机上下载并安装最新的帮助文件。

Update-Help
      [[-Module] <String[]>]

# Local default modules locations
explorer "$pshome\Modules"

因此,在正常情况下...

Get-CimInstance -ClassName Win32_OperatingSystem | 
Select-Object -Property Caption, Version | 
Format-Table -AutoSize

Caption           Version                                                                                        
-------           -------
Microsoft Windows 10 Pro 10.0.18363                                                                                                                                                                                                             


$PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      18362  752

您应该会获得这么多的主题。

(Get-Help -Name 'about_*').Count
181

如果您说当您运行 Update-Help 时没有看到任何错误消息,您可以执行类似的操作来捕获错误以供审查。

Update-Help -Force -ErrorAction SilentlyContinue -ErrorVariable ErrMsgDetail
$ErrorMsgDetail.Exception

您可以查看帮助文件存储位置以确保它们都在那里。

# Review PowerShell help files location
explorer "$pshome\$($Host.CurrentCulture.Name)"

您也可以尝试这个...

• PowerTip:保存 PowerShell 帮助的脱机版本使用 Save-Help Windows PowerShell cmdlet,并在可以访问 Internet 的计算机上为下载的文件指定共享位置。 https://devblogs.microsoft.com/scripting/powertip-save-offline-version-of-powershell-help

Save-Help -Module * -DestinationPath 'D:\Scripts\PSHelpOffline' -Force

然后您可以从该位置更新模块

如果遇到紧急情况,只要您有互联网连接,您就可以使用 -Online 开关来查看帮助。

Get-Help -Name Get-Process -Online

更新

按照这个...

您在 PSHome\en-US 中是否有 .help.txt 文件

# All 'About' Help topics
Get-Help about_*

Get-ChildItem -Path 'C:\Windows\System32\WindowsPowerShell\v1.0\en-US' -Filter '*.txt'
# Results
<#
    Directory: C:\Windows\System32\WindowsPowerShell\v1.0\en-US


Mode                LastWriteTime         Length Name                                                                                                               
----                -------------         ------ ----                                                                                                               
-a----        09-Aug-15     09:46          29397 about_ActivityCommonParameters.help.txt                                                                            
-a----        09-Aug-15     09:46           7306 about_Aliases.help.txt                                                                                             
-a----        09-Aug-15     09:46          16442 about_Arithmetic_Operators.help.txt                                                                                
-a----        09-Aug-15     09:46           9216 about_Arrays.help.txt  
...  
#>


(Get-ChildItem -Path 'C:\Windows\System32\WindowsPowerShell\v1.0\en-US' -Filter '*.txt').Count
# Resutls
<#
129
#>

# Get a specific 'About' topic
Get-Help about_Functions

# Get just the Synopsis of all 'About' topics and display to the screen
Get-Help about* |
Select Name, Synopsis

# Get just the Synopsis of all 'About' topics and display to a selectable
Get-Help about* |
Select-Object -Property Name, Synopsis |
Out-GridView -Title 'Select Topic' -OutputMode Multiple |
ForEach-Object { Get-Help -Name $PSItem.Name -ShowWindow }

# Review PowerShell help files location
explorer "$pshome\$($Host.CurrentCulture.Name)"

答案2

在这里回答我自己的问题。

我花了一些时间研究这个问题,并得出结论:Powershell 可更新帮助已严重损坏,因为帮助文件存储库很乱。

这是一个文章描述问题和解决方法。

我按照这些说明构建的帮助内容文件柜文件Microsoft.Powershell.Core包含所有“about_”概念文章帮助文件。等效的文件微软的在线存储库中不包含概念文章,并且大约两周前进行了修改。

我不建议依赖 Powershell 内置的可更新帮助。要么使用在线文档或者按照上面链接的文章中描述的步骤从源代码构建帮助文件。

相关内容