Save-Help
下载最新的帮助文件,并将其保存到文件系统目录。
语法
Save-Help
[-DestinationPath] <String[]>
[[-Module] <PSModuleInfo[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[[-UICulture] <CultureInfo[]>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-Force]
[-Scope <UpdateHelpScope>]
[<CommonParameters>]
Save-Help
-LiteralPath <String[]>
[[-Module] <PSModuleInfo[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[[-UICulture] <CultureInfo[]>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-Force]
[-Scope <UpdateHelpScope>]
[<CommonParameters>]
说明
cmdlet Save-Help
下载 PowerShell 模块的最新帮助文件,并将其保存到指定的目录中。 此功能允许你更新不能访问 Internet 的计算机上的帮助文件,并使得更新多台计算机上的帮助文件更加方便。
在 Windows PowerShell 3.0 中, Save-Help
仅适用于本地计算机上安装的模块。 尽管可以从远程计算机导入模块,或使用 PowerShell 远程处理从远程计算机获取对 PSModuleInfo 对象的引用,但 不会保留 HelpInfoUri 属性,并且 Save-Help
不适用于远程模块帮助。
在 Windows PowerShell 4.0 中,HelpInfoUri 属性通过 PowerShell 远程处理得以保留,从而可用于Save-Help
远程计算机上安装的模块。 还可以通过在无法访问 Internet 的计算机上运行 Export-Clixml
,将 PSModuleInfo 对象保存到磁盘或可移动媒体,在具有 Internet 访问权限的计算机上导入该对象,然后在 Save-Help
PSModuleInfo 对象上运行。 可以使用可移动存储媒体(如 U 盘)将保存的帮助传输到远程计算机。 可以通过运行 Update-Help
在远程计算机上安装帮助。 此过程可用于在不具有任何类型的网络访问的计算机上安装帮助。
若要安装保存的帮助文件,请 Update-Help
运行 cmdlet。 添加其 SourcePath 参数以指定保存帮助文件的文件夹。
如果没有参数, Save-Help
命令会下载会话中所有模块的最新帮助,以及安装在 PSModulePath 环境变量中列出的位置的计算机上的模块的最新帮助。 此操作跳过不支持无警告的可更新帮助的模块。
该 Save-Help
cmdlet 检查目标文件夹中任何帮助文件的版本。 如果有较新的帮助文件,此 cmdlet 会从 Internet 下载最新的帮助文件,然后将其保存在 文件夹中。 cmdlet Save-Help
的工作方式与 cmdlet 一样 Update-Help
,只不过它保存下载的 cabinet (.cab) 文件,而不是从文件柜文件中提取帮助文件并将其安装在计算机上。
为每个模块保存的帮助都包括一个帮助信息 (HelpInfo XML) 文件和一个适用于帮助文件各种 UI 区域性的 Cabinet (.cab) 文件。 无需从 cabinet 文件中提取帮助文件。 该 Update-Help
cmdlet 提取帮助文件,验证 XML 的安全性,然后在模块文件夹的特定于语言的子文件夹中安装帮助文件和帮助信息文件。
若要保存 PowerShell 安装文件夹中模块的帮助文件 ($pshome\Modules
) ,请使用“以管理员身份运行”选项启动 PowerShell。 你必须是计算机上 Administrators 组的成员,才能为这些模块下载帮助文件。
此 cmdlet 是在 Windows PowerShell 3.0 中引入的。
示例
示例 1:为 DhcpServer 模块保存帮助
# Option 1: Run Invoke-Command to get the PSModuleInfo object for the remote DHCP Server module,
# save the PSModuleInfo object in the variable $m, and then run Save-Help.
$m = Invoke-Command -ComputerName RemoteServer -ScriptBlock { Get-Module -Name DhcpServer -ListAvailable }
Save-Help -Module $m -DestinationPath "C:\SavedHelp"
# Option 2: Open a PSSession--targeted at the remote computer that is running the DhcpServer
# module--to get the PSModuleInfo object for the remote module, and then run Save-Help.
$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 remote computer that is running the DhcpServer
# module--to get the PSModuleInfo object for the remote module, and then run Save-Help.
$c = New-CimSession -ComputerName "RemoteServer"
$m = Get-Module -CimSession $c -Name "DhcpServer" -ListAvailable
Save-Help -Module $m -DestinationPath "C:\SavedHelp"
此示例演示三种不同的方法,用于 Save-Help
从连接 Internet 的客户端计算机保存 DhcpServer 模块的帮助,而无需在本地计算机上安装 DhcpServer 模块或 DHCP 服务器角色。
示例 2:为 DhcpServer 模块安装帮助
# 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:\UsbFlashDrive\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:\UsbFlashDrive\DhcpModule.xml"
Save-Help -Module $deserialized_m -DestinationPath "E:\UsbFlashDrive\SavedHelp"
# Finally, transport the removable media back to the computer that does not have network access, and
# then install the help by running Update-Help.
Update-Help -Module DhcpServer -SourcePath "E:\UsbFlashDrive\SavedHelp"
此示例演示如何在无法访问 Internet 的计算机上安装在示例 1 中为 DhcpServer 模块保存的帮助。
示例 3:为所有模块保存帮助
Save-Help -DestinationPath "\\Server01\FileShare01"
此命令将为本地计算机上针对 Windows 所设置的 UI 区域性中的所有模块下载最新的帮助文件。 它将帮助文件 \\Server01\Fileshare01
保存在 文件夹中。
示例 4:为计算机上的模块保存帮助
Save-Help -Module ServerManager -DestinationPath "\\Server01\FileShare01" -Credential Domain01/Admin01
此命令下载 ServerManager 模块的最新帮助文件,然后将其保存在 文件夹中 \\Server01\Fileshare01
。
如果模块已安装在计算机上,你可以键入该模块名称作为 Module 参数的值,即使该模块未导入到当前会话中也是如此。
该命令使用 Credential 参数来提供有权写入文件共享的用户的凭据。
示例 5:为其他计算机上的模块保存帮助
Invoke-Command -ComputerName Server02 {Get-Module -Name CustomSQL -ListAvailable} | Save-Help -DestinationPath \\Server01\FileShare01 -Credential Domain01\Admin01
这些命令下载 CustomSQL 模块的最新帮助文件,并将其保存在 文件夹中 \\Server01\Fileshare01
。
由于计算机上未安装 CustomSQL 模块,因此该序列包含一个 Invoke-Command
命令,该命令从 Server02 计算机获取 CustomSQL 模块的模块对象,然后通过管道将模块对象传递给 Save-Help
cmdlet。
如果计算机上未安装模块, Save-Help
需要模块对象,其中包括有关最新帮助文件位置的信息。
示例 6:为采用多种语言的模块保存帮助
Save-Help -Module Microsoft.PowerShell* -UICulture de-DE, en-US, fr-FR, ja-JP -DestinationPath "D:\Help"
此命令保存四种不同 UI 区域性中核心 PowerShell 模块的帮助。 不必在计算机上安装这些区域设置的语言包。
Save-Help
仅当模块所有者使已翻译的文件在 Internet 上可用时,才能下载不同 UI 区域性模块的帮助文件。
示例 7:每天保存帮助多次
Save-Help -Force -DestinationPath "\\Server3\AdminShare\Help"
此命令将为安装在计算机上的所有模块保存帮助。 命令指定 Force 参数以替代阻止 Save-Help
cmdlet 在每个 24 小时内多次下载帮助的规则。
Force 参数还覆盖 1 GB 限制并绕过版本检查。 因此,即使版本不晚于目标文件夹中的版本,也可以下载文件。
命令使用 Save-Help
cmdlet 下载帮助文件并将其保存到指定的文件夹。
当必须每天多次运行Save-Help
命令时,Force 参数是必需的。
参数
-Credential
指定用户凭据。 此 cmdlet 使用有权访问 由 DestinationPath 参数指定的文件系统位置的用户的凭据运行命令。 仅当命令中使用了 DestinationPath 或 LiteralPath 参数时,此参数才有效。
此参数使你能够在远程计算机上运行 Save-Help
使用 DestinationPath 参数的命令。 通过提供显式凭据,可以在远程计算机上运行 命令并访问第三台计算机上的文件共享,而不会遇到访问被拒绝错误或使用 CredSSP 身份验证委托凭据。
键入用户名,例如 User01 或 Domain01\User01,或输入 cmdlet Get-Credential
生成的 PSCredential 对象。 如果键入用户名,系统会提示输入密码。
凭据存储在 PSCredential 对象中,密码存储为 SecureString。
注意
有关 SecureString 数据保护的详细信息,请参阅 SecureString 的安全性如何?。
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DestinationPath
指定保存帮助文件的文件夹的路径。 不要指定文件名或文件扩展名。
Type: | String[] |
Aliases: | Path |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
指示此 cmdlet 不遵循每天一次的限制,跳过版本检查并下载超过 1 GB 限制的文件。
如果没有此参数,则每个模块在 24 小时内只允许使用一个 Save-Help
命令,每个模块的下载限制为 1 GB 的未压缩内容,并且仅当模块的帮助文件比计算机上的文件更新时才安装。
每天一次的限制可保护托管帮助文件的服务器,并使你能够将命令添加到 Save-Help
PowerShell 配置文件。
若要在没有 Force 参数的情况下,为多个 UI 区域性中的模块保存帮助,请将所有 UI 区域性包括在同一命令中,例如:Save-Help -Module PSScheduledJobs -UICulture en-US, fr-FR, pt-BR
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FullyQualifiedModule
该值可以是模块名称、完整模块规范或模块文件的路径。
当值为路径时,该路径可以是完全限定的或相对的。 相对于包含 using 语句的脚本解析相对路径。
当值为名称或模块规范时,PowerShell 在 PSModulePath 中搜索指定的模块。
模块规范是具有以下键的哈希表。
ModuleName
- 必填 指定模块名称。GUID
- 选 指定模块的 GUID。- 还需要指定以下三个键中的至少一个。
ModuleVersion
- 指定模块的最低可接受版本。MaximumVersion
- 指定模块的最大可接受版本。RequiredVersion
- 指定模块的确切所需版本。 这不能与其他版本密钥一起使用。
不能在与 Module 参数相同的命令中指定 FullyQualifiedModule 参数。 这两个参数是互斥的。
Type: | ModuleSpecification[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
指定目标文件夹的路径。 与 DestinationPath 参数的值不同,LiteralPath 参数的值严格按照所键入的形式使用。 不会将任何字符解释为通配字符。 如果路径包括转义符,请将其括在单引号中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Module
指定此 cmdlet 为其下载帮助的模块。 在逗号分隔的列表或每行都有一个模块名称的文件中输入一个或多个模块名称或名称分页。 允许使用通配符。 还可以通过管道将模块对象从 Get-Module
cmdlet 传递给 Save-Help
。
默认情况下, Save-Help
下载所有支持可更新帮助的模块的帮助,这些模块安装在 PSModulePath 环境变量中列出的位置的本地计算机上。
若要保存计算机上未安装的模块的帮助,请在 Get-Module
远程计算机上运行命令。 然后将生成的模块对象通过管道传递给 Save-Help
cmdlet,或将模块对象作为 Module 或 InputObject 参数的值提交。
如果你指定的模块安装在计算机上,你可以输入模块名称或模块对象。 如果计算机上未安装该模块,则必须输入模块对象,例如 cmdlet 返回的 Get-Module
模块对象。
cmdlet 的 Save-Help
Module 参数不接受模块文件或模块清单文件的完整路径。 若要保存不在 PSModulePath 位置的模块的帮助,请在运行 Save-Help
命令之前将模块导入当前会话。
值“*” (所有) 尝试更新计算机上安装的所有模块的帮助。 这包括不支持可更新帮助的模块。 当命令遇到不支持可更新帮助的模块时,此值可能会生成错误。
Type: | PSModuleInfo[] |
Aliases: | Name |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Scope
此参数在此 cmdlet 中不执行任何操作。
Type: | UpdateHelpScope |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UICulture
指定此 cmdlet 获取更新的帮助文件的 UI 区域性值。 输入一个或多个语言代码,例如 es-ES
、包含区域性对象的变量或获取区域性对象的命令,如 Get-Culture
或 Get-UICulture
命令。
不允许使用通配符。 不要指定部分语言代码,例如“de”。
默认情况下, Save-Help
获取 Windows 或其回退区域性的 UI 区域性集中的帮助文件。
如果指定 UICulture 参数, Save-Help
则仅查找指定 UI 区域性的帮助,而不在任何回退区域性中查找。
Type: | CultureInfo[] |
Position: | 2 |
Default value: | Current UI culture |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseDefaultCredentials
指示此 cmdlet 使用当前用户的凭据运行命令(包括 Web 下载)。 默认情况下,在没有显式凭据的情况下运行该命令。
仅当 Web 下载使用 NTLM、协商或基于 Kerberos 的身份验证时,此参数才有效。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
可以通过管道将模块对象传递给此 cmdlet。
输出
None
此 cmdlet 不返回任何输出。
备注
- 若要在 $pshome\Modules 文件夹中保存模块的帮助,请使用“以管理员身份运行”选项启动 PowerShell。 只有计算机上的 Administrators 组的成员才能下载$pshome\Modules 文件夹中模块的帮助。
- 为每个模块保存的帮助都包括一个帮助信息 (HelpInfo XML) 文件和一个适用于帮助文件各种 UI 区域性的 Cabinet (.cab) 文件。 无需从 cabinet 文件中提取帮助文件。 cmdlet
Update-Help
提取帮助文件,验证 XML,然后将帮助文件和帮助信息文件安装到模块文件夹的特定于语言的子文件夹中。 - cmdlet
Save-Help
可以保存计算机上未安装的模块的帮助。 但是,由于帮助文件安装在模块文件夹中,因此Update-Help
cmdlet 只能为计算机上安装的模块安装更新的帮助文件。 - 如果
Save-Help
找不到模块的更新帮助文件,或者找不到指定语言的更新的帮助文件,它会以静默方式继续,而不会显示错误消息。 若要查看命令保存的文件,请指定 Verbose 参数。 - 模块是可更新帮助的最小单位。 无法保存特定 cmdlet 的帮助,只能保存模块中的所有 cmdlet。 若要查找包含特定 cmdlet 的模块,请将 ModuleName 属性与
Get-Command
cmdlet 一起使用,例如(Get-Command \<cmdlet-name\>).ModuleName
Save-Help
支持所有模块和核心 PowerShell 管理单元。它不支持任何其他管理单元。Update-Help
和Save-Help
cmdlet 使用以下端口下载帮助文件:用于 HTTP 的端口 80 和用于 HTTPS 的端口 443。Update-Help
Windows 预安装环境 (Windows PE) 不支持 和Save-Help
cmdlet。