当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Save-Help (Microsoft.PowerShell.Core)

作者:精品下载站 日期:2024-12-14 02:14:22 浏览:11 分类:玩电脑

Save-Help (Microsoft.PowerShell.Core)


Save-Help

模块 :Microsoft.PowerShell.Core

下载最新的帮助文件并将其保存到文件系统目录。

句法

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>]

描述

Save-Help cmdlet 下载 PowerShell 模块的最新帮助文件并将其保存到您指定的目录中。此功能使您可以在无法访问 Internet 的计算机上更新帮助文件,并且可以更轻松地更新多台计算机上的帮助文件。

在 Windows PowerShell 3.0 中,Save-Help 仅适用于安装在本地计算机上的模块。尽管可以从远程计算机导入模块,或者使用 PowerShell 远程处理从远程计算机获取对 PSModuleInfo 对象的引用,但未保留 HelpInfoUri 属性和 Save-Help 不适用于远程模块帮助。

在 Windows PowerShell 4.0 中,通过 PowerShell 远程处理保留 HelpInfoUri 属性,这使得 Save-Help 能够用于安装在远程计算机上的模块。还可以通过在无法访问 Internet 的计算机上运行 Export-ClixmlPSModuleInfo 对象保存到磁盘或可移动媒体,然后在能够访问 Internet 的计算机上导入该对象确实可以访问 Internet,然后对 PSModuleInfo 对象运行 Save-Help。可以使用可移动存储介质(例如 USB 驱动器)将保存的帮助传输到远程计算机。可以通过运行 Update-Help 将帮助安装在远程计算机上。此过程可用于在没有任何网络访问权限的计算机上安装帮助。

要安装保存的帮助文件,请运行 Update-Help cmdlet。添加其 SourcePath 参数以指定保存帮助文件的文件夹。

如果不带参数,Save-Help 命令会下载会话中所有模块以及安装在计算机上 PSModulePath 环境变量中列出的位置的模块的最新帮助。此操作会跳过不支持可更新帮助的模块,而不发出警告。

Save-Help cmdlet 检查目标文件夹中所有帮助文件的版本。如果有更新的帮助文件可用,此 cmdlet 将从 Internet 下载最新的帮助文件,然后将它们保存在文件夹中。 Save-Help cmdlet 的工作方式与 Update-Help cmdlet 类似,不同之处在于它保存下载的 Cabinet (.cab) 文件,而不是从 Cabinet 中提取帮助文件文件并将其安装到计算机上。

每个模块保存的帮助由一个帮助信息 (HelpInfo XML) 文件和每个 UI 区域性帮助文件的一个压缩文件 (.cab) 文件组成。您不必从 Cabinet 文件中提取帮助文件。 Update-Help cmdlet 提取帮助文件,验证 XML 的安全性,然后将帮助文件和帮助信息文件安装在模块文件夹的特定于语言的子文件夹中。

要将模块的帮助文件保存在 PowerShell 安装文件夹 ($pshome\Modules) 中,请使用“以管理员身份运行”选项启动 PowerShell。您必须是计算机上管理员组的成员才能下载这些模块的帮助文件。

此 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 模块的帮助。计算机上不必安装这些区域设置的语言包。

仅当模块所有者将翻译后的文件发布到 Internet 上时,Save-Help 才能下载不同 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 参数指定的文件系统位置的用户的凭据来运行该命令。仅当命令中使用DestinationPathLiteralPath参数时,该参数才有效。

通过此参数,您可以在远程计算机上运行使用 DestinationPath 参数的 Save-Help 命令。通过提供显式凭据,您可以在远程计算机上运行该命令并访问第三台计算机上的文件共享,而不会遇到访问被拒绝错误或使用 CredSSP 身份验证来委派凭据。

输入用户名,例如 User01Domain01\User01,或输入由 Get-Credential cmdlet。如果您键入用户名,系统会提示您输入密码。

凭证存储在 PSCredential 对象中,密码存储为 SecureString。

笔记

有关 SecureString 数据保护的更多信息,请参阅 SecureString 的安全性如何?。

类型 :

PS凭证

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-DestinationPath

指定保存帮助文件的文件夹路径。不要指定文件名或文件扩展名。

类型 :

String[]

别名:

Path

位置:

0

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

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

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-FullyQualifiedModule

该值可以是模块名称、完整模块规范或模块文件的路径。

当该值是路径时,该路径可以是完全限定的或相对的。相对路径是相对于包含 using 语句的脚本进行解析的。

当该值为名称或模块规范时,PowerShell 会在 PSModulePath 中搜索指定的模块。

模块规范是一个具有以下键的哈希表。

  • ModuleName - 必需 指定模块名称。
  • GUID - 可选 指定模块的 GUID。
  • 必需至少指定以下三个键之一。

    • ModuleVersion - 指定模块的最低可接受版本。
  • MaximumVersion - 指定模块可接受的最大版本。
  • RequiredVersion - 指定模块的准确、必需的版本。它不能与其他版本密钥一起使用。

您不能在同一命令中将 FullyQualifiedModule 参数指定为 Module 参数。这两个参数是互斥的。

类型 :

模块规格[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-LiteralPath

指定目标文件夹的路径。与 DestinationPath 参数的值不同,LiteralPath 参数的值完全按照键入的方式使用。没有字符被解释为通配符。如果路径包含转义字符,请将其用单引号引起来。单引号告诉 PowerShell 不要将任何字符解释为转义序列。

类型 :

String[]

别名:

PSPath, LP

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-Module

指定此 cmdlet 下载帮助的模块。在逗号分隔的列表中或在每行包含一个模块名称的文件中输入一个或多个模块名称或名称模式。允许使用通配符。您还可以通过管道将模块对象从 Get-Module cmdlet 传输到 Save-Help

默认情况下,Save-Help 下载所有支持可更新帮助的模块的帮助,并安装在本地计算机上 PSModulePath 环境变量中列出的位置。

要保存计算机上未安装的模块的帮助,请在远程计算机上运行 Get-Module 命令。然后将生成的模块对象通过管道传递给 Save-Help cmdlet,或将模块对象作为 ModuleInputObject 参数的值提交。

如果计算机上安装了指定的模块,则可以输入模块名称或模块对象。如果计算机上未安装该模块,则必须输入模块对象,例如 Get-Module cmdlet 返回的对象。

Save-Help cmdlet 的 Module 参数不接受模块文件或模块清单文件的完整路径。要保存不在 PSModulePath 位置的模块的帮助,请在运行 Save-Help 命令之前将该模块导入当前会话。

值“*”(全部)尝试更新计算机上安装的所有模块的帮助。这包括不支持可更新帮助的模块。当命令遇到不支持可更新帮助的模块时,此值可能会生成错误。

类型 :

PS模块信息[]

别名:

Name

位置:

1

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

True

-Scope

此参数在此 cmdlet 中不执行任何操作。

类型 :

更新帮助范围

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-UICulture

指定此 cmdlet 获取更新帮助文件的 UI 区域性值。输入一个或多个语言代码,例如 es-ES、包含文化对象的变量或获取文化对象的命令,例如 Get-Culture 或 获取-UICulture命令。不允许使用通配符。

默认情况下,Save-Help 获取操作系统或其后备区域性的 UI 区域性设置中的帮助文件。如果指定 UICulture 参数,Save-Help 仅查找指定语言的帮助。

从 PowerShell 7.4 开始,您可以使用部分语言代码(例如 en)下载任何区域的英语帮助。

类型 :

文化信息[]

位置:

2

默认值:

当前的用户界面文化

必需的:

False

接受管道输入:

False

接受通配符:

False

-UseDefaultCredentials

指示此 cmdlet 使用当前用户的凭据运行命令,包括 Web 下载。默认情况下,该命令在没有显式凭据的情况下运行。

仅当 Web 下载使用 NTLM、协商或基于 Kerberos 的身份验证时,此参数才有效。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

PSModuleInfo

您可以通过管道将模块对象传递给此 cmdlet。

输出

此 cmdlet 不返回任何输出。

笔记

  • 要在 $pshome\Modules 文件夹中保存模块的帮助,请使用“以管理员身份运行”选项启动 PowerShell。只有计算机上管理员组的成员才能下载 $pshome\Modules 文件夹中模块的帮助。
  • 每个模块保存的帮助由一个帮助信息 (HelpInfo XML) 文件和每个 UI 区域性帮助文件的一个压缩文件 (.cab) 文件组成。您不必从 Cabinet 文件中提取帮助文件。 Update-Help cmdlet 提取帮助文件,验证 XML,然后将帮助文件和帮助信息文件安装在模块文件夹的特定于语言的子文件夹中。
  • Save-Help cmdlet 可以保存计算机上未安装的模块的帮助。但是,由于帮助文件安装在模块文件夹中,因此 Update-Help cmdlet 只能为计算机上安装的模块安装更新的帮助文件。
  • 如果 Save-Help 找不到模块的更新帮助文件,或者找不到指定语言的更新帮助文件,它将继续静默,而不显示错误消息。要查看该命令保存了哪些文件,请指定 Verbose 参数。
  • 模块是可更新帮助的最小单位。您无法保存特定 cmdlet 的帮助,只能保存模块中所有 cmdlet 的帮助。要查找包含特定 cmdlet 的模块,请将 ModuleName 属性与 Get-Command cmdlet 一起使用,例如 (Get-Command \).ModuleName
  • Save-Help 支持所有模块和核心 PowerShell 管理单元。它不支持任何其他管理单元。
  • Update-HelpSave-Help cmdlet 使用以下端口下载帮助文件:HTTP 端口 80 和 HTTPS 端口 443。
  • Windows 预安装环境 (Windows PE) 不支持 Update-HelpSave-Help cmdlet。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯