Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
PowerShell modules can include Help topics about the module and about the module members, such as
cmdlets, providers, functions and scripts. The Get-Help cmdlet displays the module Help topics in
the same format as it displays Help for other PowerShell items, and users use standard Get-Help
commands to get the Help topics.
This document explains the format and correct placement of module Help topics, and it suggests guidelines for module Help content.
Types of Module Help
A module can include the following types of Help.
XML-based help
- Cmdlet Help. The Help topics that describe cmdlets in a module are XML files that use the command help schema
- Provider Help. The Help topics that describe providers in a module are XML files that use the provider help schema.
- Function Help. The Help topics that describe functions in a module can be XML files that use the command help schema or comment-based Help topics within the function, or the script or script module
- Script Help. The Help topics that describe scripts in a module can be XML files that use the command help schema or comment-based Help topics in the script or script module.
- The
$PSHOME\Schemas\PSMamlfolder contains the schema files that define the XML format.
Conceptual ("About") help text files
You can use a conceptual ("about") Help topic to describe the module and its members and to explain how the members can be used together to perform tasks. By default, PowerShell includes over 100 of these conceptual About Help topics. The filename must use the
about_<name>.help.txtformat, such asabout_MyModule.help.txt.Note
The
TOPICsection header must start in the first column of the first line of the file. The section content on the second line should match the filename, without the.help.txtsuffix. You must indent the content exactly 4 spaces. The third line must be blank. TheSYNOPSISsection header must start in the first column of the fourth line. You must indent the content on the fifth line exactly 4 spaces. These requirements are necessary for theGet-Helpcmdlet to recognize the content correctly.TOPIC about_<subject or module name> SYNOPSIS A short, one-line description of the topic contents.You can use the following sample template as a starting point for writing conceptual Help topics. Except for the first two sections, the structure of conceptual Help topics is arbitrary. The remaining section titles can be whatever is appropriate for your content.
TOPIC about_<subject or module name> SYNOPSIS A short, one-line description of the topic contents. LONG DESCRIPTION A detailed, full description of the subject or purpose of the module. EXAMPLES Examples of how to use the module or how the subject feature works in practice. TROUBLESHOOTING Instructions for resolving common problems. SEE ALSO Text-only references for further reading. Hyperlinks can't work in the PowerShell console.You can use any style and markup you want, but PowerShell sees it as plain text and there is no special rendering of the text in the PowerShell console. The following suggestions ensure the best display results and readability.
- Use UTF-8 with BOM encoding to ensure any special (multi-byte) characters display correctly.
- Underline section headers or use all uppercase letters to make they stand out. This makes the content easier to scan.
- Limit the length of each line to 80 characters.
- Indent code blocks and example output to separate them from the surrounding prose.
Placement of Module Help
The Get-Help cmdlet looks for module Help topic files in language-specific subdirectories of the
module directory.
For example, the following directory structure diagram shows the location of the Help topics for the SampleModule module.
<ModulePath>
\SampleModule
\<en-US>
\about_SampleModule.help.txt
\SampleModule.dll-help.xml
\SampleNestedModule.dll-help.xml
\<fr-FR>
\about_SampleModule.help.txt
\SampleModule.dll-help.xml
\SampleNestedModule.dll-help.xml
Note
In the example, the <ModulePath> placeholder represents one of the paths in the PSModulePath
environment variable, such as $HOME\Documents\Modules, $PSHOME\Modules, or a custom path that
the user specifies.
Getting Module Help
When a user imports a module into a session, the Help topics for that module are imported into the
session along with the module. You can list the Help topic files in the value of the FileList key in
the module manifest, but Help topics aren't affected by the Export-ModuleMember cmdlet.
You can provide module Help topics in different languages. The Get-Help cmdlet automatically
displays module Help topics in the language that's specified for the current user in the Regional
and Language Options item in Control Panel. In Windows Vista and later versions of Windows,
Get-Help searches for the Help topics in language-specific subdirectories of the module directory
in accordance with the language fallback standards established for Windows.
Beginning in PowerShell 3.0, running a Get-Help command for a cmdlet or function triggers
automatic importing of the module. The Get-Help cmdlet immediately displays the contents of the
help topics in the module.
If the module doesn't contain help topics and there are no help topics for the commands in the
module on the user's computer, Get-Help displays auto-generated help. The auto-generated help
includes the command syntax, parameters, and input and output types, but doesn't include any
descriptions. The auto-generated help includes text that directs the user to try to use the
Update-Help cmdlet to download help for the command from the internet or a file share. It also
recommends using the Online parameter of the Get-Help cmdlet to get the online version of the
help topic.
Supporting Updatable Help
Users of PowerShell 3.0 and later versions of PowerShell can download and install updated help files
for a module from the internet or from a local file share. The Update-Help and Save-Help cmdlets
hide the management details from the user. Users run the Update-Help cmdlet and then use the
Get-Help cmdlet to read the newest help files for the module at the PowerShell command prompt.
Users don't need to restart Windows or PowerShell.
Users behind firewalls and those without internet access can use Updatable Help, as well.
Administrators with internet access use the Save-Help cmdlet to download and install the newest
help files to a file share. Then, users use the Path parameter of the Update-Help cmdlet to
get the newest help files from the file share.
Module authors can include help files in the module and use Updatable Help to update the help files, or omit help files from the module and use Updatable Help both to install and to update them.
For more information about Updatable Help, see Supporting Updatable Help.
Supporting Online Help
Users who can't or don't install updated help files on their computers often rely on the online
version of module help topics. The Online parameter of the Get-Help cmdlet opens the online
version of a cmdlet or advanced function help topic for the user in their default internet browser.
The Get-Help cmdlet uses the value of the HelpUri property of the cmdlet or function to find
the online version of the help topic.
Beginning in PowerShell 3.0, you can help users find the online version of cmdlet and function help topics by defining the HelpUri attribute on the cmdlet class or the HelpUri property of the CmdletBinding attribute. The value of the attribute is the value of the HelpUri property of the cmdlet or function.
For more information, see Supporting Online Help.