about_Updatable_Help
Short description
Describes the updatable help system in PowerShell.
Long description
PowerShell provides several different ways to access the most up-to-date help topics for PowerShell cmdlets and concepts.
The Updatable Help system, introduced in PowerShell 3.0, is designed to assure that you always have the newest help topics on your local computer so that you can read them at the command line. It makes it easy to download and install help files and to update them whenever newer help files become available.
To provide updated help for multiple computers in an enterprise and for computers that don't have access to the internet, Updatable Help lets you download help files to a filesystem directory or file share, and then install the help files from the file share.
In PowerShell 4.0, the HelpInfoUri property is preserved over Windows
PowerShell remoting, which allows Save-Help
to work for modules that are
installed on a remote computer, but aren't necessarily installed on the local
computer. You can save a PSModuleInfo object to disk or removable media
(such as a USB drive) by running Export-Clixml
on a computer that doesn't
have internet access, importing the PSModuleInfo object on a computer that
does have internet access, and then running Save-Help
on the PSModuleInfo
object. The saved help can be copied to the remote, disconnected computer by
using removable media, and then installed by running Update-Help
. These
improvements in Save-Help
functionality let you install help on computers
that are without any kind of network access. For an example of how to use the
new Save-Help
functionality, see How to update help from a file share
in this topic.
Updatable Help also supports online access to the newest help topics and basic help for cmdlets, even when there are no help files on the computer.
PowerShell doesn't come with Help files. You can use the Updatable Help feature to install the help files for all the commands that are included by default in PowerShell and for all Windows modules.
Updatable help cmdlets
Update-Help
: Downloads the newest help files from the internet or a file share, and installs them on the local computer.Save-Help
: Downloads the newest help files from the internet and saves them in a filesystem directory or file share. To install the help files on computers, useUpdate-Help
.Get-Help
: Displays help topics at the command line. Gets help from the help files on the computer. Displays auto-generated help for cmdlets and functions that don't have help files. Opens online help topics for cmdlets, functions, scripts, and workflows in your default internet browser.
Auto-generated help: help without help files
If you don't have the help file for a cmdlet, function, or workflow on the
computer, the Get-Help
cmdlet displays auto-generated help and prompts you to
download the help files or read them online.
Auto-generated help includes syntax and aliases, and remarks that explain how to use the Updatable Help cmdlets and to access the online help topics.
For example, the following command gets basic help for the Get-Culture
cmdlet. The output shows the Get-Help
display when there are no help files on
the computer.
Get-Help Get-Culture
NAME
Get-Culture
SYNTAX
Get-Culture [<CommonParameters>]
ALIASES
None
REMARKS
To get the latest Help content including descriptions and examples
type: Update-Help.
Help files for modules
The smallest unit of Updatable Help is help for a module. Module help includes help for all the cmdlets, functions, workflows, providers, scripts, and concepts in a module. You can update help for all modules that are installed on the computer, even if they're not imported into the current session.
You can update help for the entire module, but you can't update help for individual cmdlets.
To find the module that contains a particular cmdlet, use the following command format:
(Get-Command <cmdlet-name>).ModuleName
For example, to find the module that contains the Set-ExecutionPolicy
cmdlet, type:
(Get-Command Set-ExecutionPolicy).ModuleName
To update help for a particular module, type:
Update-Help -Module <ModuleName>
For example, to update help for the module that contains the Set-ExecutionPolicy cmdlet, type:
Update-Help -Module Microsoft.PowerShell.Security
Permissions for updatable help
To update help for the modules in the directory $pshome/Modules
, you must be
member of the Administrators group on the computer.
If you aren't a member of the Administrators group, you can't update help for these modules; but if you have internet access, you can view help online.
Updating help for modules in the directory $HOME/Documents/PowerShell/Modules
or modules in other subdirectories of the $HOME
directory doesn't require
special permissions.
The Update-Help
and Save-Help
cmdlets have a UseDefaultCredentials
parameter that provides the explicit credentials of the current user. This
parameter is designed for accessing secure internet locations.
The Update-Help
and Save-Help
cmdlets also have a Credential parameter
that allows you to run the command on a remote computer and access a file share
on a third computer. The Credential parameter is valid only when you use
the SourcePath or LiteralPath parameters of Update-Help
and the
DestinationPath or LiteralPath parameters of Save-Help
.
How to install and update help files
To download and install help files for the first time, or to update the help
files on your computer, use the Update-Help
cmdlet.
The Update-Help
cmdlet does all the hard work for you, including the
following tasks.
- Determines which modules support Updatable Help.
- Finds the internet location where each module stores its Updatable Help files.
- Compares the help files for each module on your computer to the newest help files that are available for each module.
- Downloads the new files from the internet.
- Unwraps the help file package.
- Verifies that the files are valid help files.
- Installs the help files in the language-specific subdirectory of the module directory.
To access the new help topics, use the Get-Help
cmdlet. You don't need to
restart PowerShell.
To install or update help for all modules on the computer that supports Updatable Help, type:
Update-Help
To update help for particular modules, add the Module parameter of
Update-Help
. Wildcard characters are permitted in the module name.
For example, to update help for the ServerManager module, type:
Update-Help -Module ServerManager
Without parameters, Update-Help
updates help for all modules in the session
and for all installed modules that support Updatable Help. To be included,
modules must be installed in directories that are listed in the value of the
PSModulePath environment variable. These are also modules that are returned by
a Get-Module -ListAvailable
command.
If the value of the Module parameter is *
(all), Update-Help
attempts
to update help for all installed modules, including modules that don't support
Updatable Help. This command typically generates many errors as the cmdlet
encounters modules that don't support Updatable Help.
How to update help from a file share
To support computers that aren't connected to the internet, or to control or
streamline help updating in an enterprise, use the Save-Help
cmdlet. The
Save-Help
cmdlet downloads help files from the internet and saves them in a
filesystem directory that you specify.
Save-Help
compares the help files in the specified directory to the newest
help files that are available for each module. If the directory has no help
files or newer help files are available for the module, the Save-Help
cmdlet
downloads the new files from the internet. However, it doesn't unwrap or
install the help files.
To install or update the help files on a computer from help files that were
saved to a filesystem directory, use the SourcePath parameter of the
Update-Help
cmdlet. The Update-Help
cmdlet identifies the newest help
files, unwraps and validates them, and installs them in the language-specific
subdirectories of the module directories.
For example, to save help for all installed modules to the \\Server\Share
directory, type:
Save-Help -DestinationPath \\Server\Share
Then, to update help from the \\Server\Share
directory, type:
Update-Help -SourcePath \\Server\Share
The following examples show the use of Save-Help
to save help for modules
that aren't installed on the local computer. In this example, the administrator
runs Save-Help
to save the help for the DhcpServer module from an
internet-connected client computer, without installing the DhcpServer module or
DHCP Server role on the local computer.
Option 1: Run Invoke-Command
to get the PSModuleInfo object for the
remote module, save it in a variable, $m
, and then run Save-Help
on the
PSModuleInfo object by specifying the variable $m
as the module name.
$invokeCommandSplat = @{
ComputerName = 'RemoteServer'
ScriptBlock = { Get-Module -Name DhcpServer -ListAvailable }
}
$m = Invoke-Command @invokeCommandSplat
Save-Help -Module $m -DestinationPath C:\SavedHelp
Option 2: Open a PSSession targeted at the computer that's running the DHCP
Server module, to get the PSModuleInfo object for the module, save it in a
variable $m
, and then run Save-Help
on the object that's saved in the $m
variable.
$s = New-PSSession -ComputerName RemoteServer
$m = Get-Module -PSSession $s -Name DhcpServer -ListAvailable
Save-Help -Module $m -DestinationPath C:\SavedHelp
Option 3: Open a CIM session, targeted at the computer that's running the DHCP
Server module, to get the PSModuleInfo object for the module, save it in a
variable $m
, and then run Save-Help
on the object that's saved in the $m
variable.
$c = New-CimSession -ComputerName RemoteServer
$m = Get-Module -CimSession $c -Name DhcpServer -ListAvailable
Save-Help -Module $m -DestinationPath C:\SavedHelp
In the following example, the administrator installs help for the DHCP Server module on a computer that doesn't have network access.
First, run Export-Clixml
to export the PSModuleInfo object to a shared
folder or to removable media.
$m = Get-Module -Name DhcpServer -ListAvailable
Export-Clixml -Path E:\UsbDrive\DhcpModule.xml -InputObject $m
Next, transport the removable media to a computer that has internet access, and
then import the PSModuleInfo object with Import-Clixml
. Run Save-Help
to save the Help for the imported DhcpServer module PSModuleInfo object.
$deserialized_m = Import-Clixml E:\UsbDrive\DhcpModule.xml
Save-Help -Module $deserialized_m -DestinationPath E:\UsbDrive\SavedHelp
Finally, transport the removable media back to the computer that doesn't have
network access, and then install the help by running Update-Help
.
Update-Help -Module DhcpServer -SourcePath E:\UsbDrive\SavedHelp
Without parameters, Save-Help
downloads help for all modules in the session
and for all installed modules that support Updatable Help. To be included,
modules must be installed in directories that are listed in the value of the
$env:PSModulePath
environment variable, on either the local computer or on a
remote computer for which you want to save help. These are also modules that
are returned by running a Get-Help -ListAvailable
command.
How to update help files in different languages
By default, the Update-Help
and Save-Help
cmdlets download help in the UI
culture and language that's set for Windows on the local computer. If help
files for the specified modules aren't available in the local UI culture,
Update-Help
and Save-Help
use the Windows language fallback rules to find
the best supported language.
However, you can use the UICulture parameters of the Update-Help
and
Save-Help
cmdlets to download and install help files in any UI cultures in
which they're available.
For example, to save the newest help files for all modules on the session in Japanese (ja-Jp) and French (fr-FR), type:
Save-Help -Path \Server\Share -UICulture ja-jp, fr-fr
If help files for the modules aren't available in the languages that you
specified, the Update-Help
and Save-Help
cmdlets return an error message
that lists the languages in which help for each module is available so you can
choose the alternative that best meets your needs.
Note
Currently, Updateable Help content is only published in English (en-US).
How to use online help
If you can't or choose not to update the help files on your local computer, you can still get the newest help files online.
To open the online help topic for any cmdlet or function, use the Online
parameter of the Get-Help
cmdlet.
For example, the following command opens the online help topic for the
Get-Job
cmdlet in your default internet browser:
Get-Help Get-Job -Online
To get online help for a script, use the Online parameter and the full path to the script.
The Online parameter doesn't work with About topics. To see the about topics for PowerShell, including help topics about the PowerShell language, see PowerShell About Topics.
How to minimize or prevent internet downloads
To minimize internet downloads and provide Updatable Help to users who aren't
connected to the internet, use the Save-Help
cmdlet. Download help from the
internet and save it to a network share. Then, create a Group Policy setting or
scheduled job that runs an Update-Help
command on all computers. Set the
value of the SourcePath parameter of the Update-Help
cmdlet to the
network share.
To prevent users who have internet access from downloading Updatable Help from the internet, use the Set the default source path for Update-Help Group Policy setting.
This Group Policy setting implicitly adds the SourcePath parameter, with
the filesystem location that you specify, to every Update-Help
command on
every affected computer. Users can use the SourcePath parameter explicitly
to specify a different filesystem location, but they can't exclude the
SourcePath parameter and download help from the internet.
Note
The Set the default source path for Update-Help group policy setting appears under Computer Configuration and User Configuration. However, only the policy setting under Computer Configuration is effective. The policy setting under User Configuration is ignored.
For more information, see about_Group_Policy_Settings.
How to update help for non-standard modules
To update or save help for a module that's not returned by the
ListAvailable parameter of the Get-Module
cmdlet, import the module into
the current session before running an Update-Help
or Save-Help
command. On
a remote computer, before running the Save-Help
command, import the module
into the current Session, or Invoke-Command
script block, that's connected to
the remote computer.
When the module is in the current session, run the Update-Help
or Save-Help
cmdlets without parameters, or use the Module parameter to specify the
module name.
The Module parameters of the Update-Help
and Save-Help
cmdlets accept
only a module name. They don't accept the path to a module file.
Use this technique to update or save help for any module that's not returned by
the ListAvailable parameter of the Get-Module
cmdlet, such as a module
that's installed in a location that's not listed in the $env:PSModulePath
environment variable, or a module that's not well-formed (the module directory
doesn't contain at least one file whose basename is the same as the directory
name).
How to support updatable help
If you author a module, you can support online help and Updatable Help for your modules. For more information, see Supporting Updatable Help and Supporting Online Help.
Updatable help not available for PowerShell snap-ins or comment-based help.
Remarks
The Update-Help
and Save-Help
cmdlets aren't supported on Windows
Preinstallation Environment (Windows PE).
See also
PowerShell