Updating PowerShell cmdlets of a module usually does not update the corresponding help files. The Update-Help cmdlet allows you to download and install the latest PowerShell help files.

Traditionally, documentation goes stale. Developers develop the product and either deem documentation and help content a low priority or have no way of distributing new documentation to customers. Lack of documentation leads to frustrated users and angry tweets and emails ranting about little to no documentation.

PowerShell can't force scripters and developers to write more documentation, but it can provide a mechanism that allows distribution of new help content to all customers by simply uploading help content to a single web source. PowerShell's updateable help feature is how this can happen.

Getting help in PowerShell ^

The familiar way to look for help for a command or about a topic in PowerShell is to use the Get-Help command. This command parses all help created for that particular area and displays it to the user. This works fine, but there's one problem: it reads the content from the local system.

Code is changing all the time, and as a result, the way to interact with that code is changing as well. Updating a cmdlet in a module, for example, may change parameters. Behavior may be different, but the help documentation stays static. Outdated help is nearly as bad as no help at all!

Luckily, by creating help that supports the updateable help concept and running the Update-Help command, users can always keep help content in sync with the changes happening in the code itself.

Update-Help : Failed ^

Unfortunately, not all commands support updateable help. The feature is purely optional on the developer's part, and some community and third-party vendors have not gone the extra step to support it. The  updateable help concept is usually limited to modules. To figure out which modules support updateable help, you can run the Update-Help command using the Module parameter. If the module does not support updateable help, PowerShell will tell you.

PS> Update-help poshrsjob
Update-Help : Failed to update Help for the module(s) :
'PoshRSJob'
The Update-Help command failed because the specified module does not support updateable help. Use Get-Help -Online or look online for help for the commands in this module.
At line:1 char:1
update-help poshrsjob
~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (HelpInfoUri:Uri) [Update-Help], Exception
FullyQualifiedErrorId : HelpInfoUriNotFound,Microsoft.PowerShell.Commands.UpdateHelpCommand

When a module does support updateable help, it will either download help content from the web source and install it or will do nothing at all (if in sync with the web source).

It usually isn't advisable to update help on a single module though. After all, if you're going to update help for your modules, you might as well just go ahead and check for the latest help for all of your modules. Simply running the Update-Help command by itself will tell the command to search for updated help for all of your modules. When the command starts, you'll see a progress bar that will read each module, query the source of the help, and download any new help content.

Updating Help

Updating Help

Updating Help ^

By default, you can only run Update-Help once per day. It downloads only new versions of help and does not download content larger than 1 GB. Occasionally, it's necessary to override these settings. In this case, we can use a common parameter to override these restrictions by using the Force parameter. The Force parameter ignores all the built-in restrictions and always attempts to find and download the latest help content.

Subscribe to 4sysops newsletter!

Invoking Update-Help on a regular basis is a good habit to get into. It will ensure all of your modules that support the feature always stay up to date. In fact, I recommend a set-and-forget method. Use this script to perform help updating on a regular basis, or feel free to write your own method.

avataravatar
3 Comments
  1. Pat Richard 5 years ago

    I wrote a function that creates a scheduled task to update help regularly. Check it out at https://www.ucunleashed.com/1731

  2. Zdzislaw TWARDY 5 years ago

    Hi

    My real problem is how I update help files from server  for example Windows 2012 R2 when server has no connection to Internet.

    The only connection to Internet has my workstation but it run Windows 10.

    Yes I know that I can run

    Save-Help -DestinationPath  -Force  (on WS)

    Update-help -SourcePath   -Force  (on Server)

    But before I got very often errors that is mismatch in language page code between WS and Serve

    How should I run it correctly?

    Br Stisse

  3. Thilo 5 years ago

    Which file permission does Update-Help need on the SourcePath?

Leave a reply

Your email address will not be published.

*

© 4sysops 2006 - 2022

CONTACT US

Please ask IT administration questions in the forums. Any other messages are welcome.

Sending

Log in with your credentials

or    

Forgot your details?

Create Account