Save-Module

在本地计算机上保存模块及其依赖项,但不安装该模块。

语法

Save-Module
    [-Name] <String[]>
    [-MinimumVersion <String>]
    [-MaximumVersion <String>]
    [-RequiredVersion <String>]
    [-Repository <String[]>]
    [-Path] <String>
    [-Proxy <Uri>]
    [-ProxyCredential <PSCredential>]
    [-Credential <PSCredential>]
    [-Force]
    [-AllowPrerelease]
    [-AcceptLicense]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Save-Module
    [-Name] <String[]>
    [-MinimumVersion <String>]
    [-MaximumVersion <String>]
    [-RequiredVersion <String>]
    [-Repository <String[]>]
    -LiteralPath <String>
    [-Proxy <Uri>]
    [-ProxyCredential <PSCredential>]
    [-Credential <PSCredential>]
    [-Force]
    [-AllowPrerelease]
    [-AcceptLicense]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Save-Module
    [-InputObject] <PSObject[]>
    -LiteralPath <String>
    [-Proxy <Uri>]
    [-ProxyCredential <PSCredential>]
    [-Credential <PSCredential>]
    [-Force]
    [-AcceptLicense]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Save-Module
    [-InputObject] <PSObject[]>
    [-Path] <String>
    [-Proxy <Uri>]
    [-ProxyCredential <PSCredential>]
    [-Credential <PSCredential>]
    [-Force]
    [-AcceptLicense]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

说明

cmdlet Save-Module 从已注册的存储库下载模块和任何依赖项。 Save-Module 下载并保存模块的最新版本。 这些文件将保存到本地计算机上的指定路径。 模块未安装,但内容可供管理员检查。 然后,可以将保存的模块复制到脱机计算机的相应 $env:PSModulePath 位置。

Get-PSRepository 显示本地计算机的已注册存储库。 可以使用 Find-Module cmdlet 搜索已注册的存储库。

采用模块版本号的参数需要格式为版本号的字符串。

  • 标准版本号的格式 x.y.z 为,其中 x、y 和 z 为数字
  • 预发行版的格式 x.y.z-<prerelease_label> 为 , <prerelease_label> 其中 是分配给该版本的任意字符串。

示例

示例 1:保存模块

在此示例中,模块及其依赖项保存到本地计算机。

Save-Module -Name PowerShellGet -Path C:\Test\Modules -Repository PSGallery
Get-ChildItem -Path C:\Test\Modules

Directory: C:\Test\Modules

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         7/1/2019     13:31                PackageManagement
d-----         7/1/2019     13:31                PowerShellGet

Save-Module 使用 Name 参数指定模块 PowerShellGetPath 参数指定存储下载的模块的位置。 Repository 参数指定注册的存储库 PSGallery。 下载完成后, Get-ChildItem 显示存储文件 的路径 的内容。

示例 2:保存模块的特定版本

此示例演示如何使用 MaximumVersionRequiredVersion 等参数来指定模块版本。

Save-Module -Name PowerShellGet -Path C:\Test\Modules -Repository PSGallery -MaximumVersion 2.1.0
Get-ChildItem -Path C:\Test\Modules\PowerShellGet\

Directory: C:\Test\Modules\PowerShellGet

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         7/1/2019     13:40                2.1.0

Save-Module 使用 Name 参数指定模块 PowerShellGetPath 参数指定存储下载的模块的位置。 Repository 参数指定注册的存储库 PSGalleryMaximumVersion 指定下载并保存版本 2.1.0 。 下载完成后, Get-ChildItem 显示存储文件 的路径 的内容。

示例 3:查找并保存模块的特定版本

在此示例中,在存储库中找到所需的模块版本,并保存到本地计算机。

Find-Module -Name PowerShellGet -Repository PSGallery -RequiredVersion 1.6.5 |
  Save-Module -Path C:\Test\Modules
Get-ChildItem -Path C:\Test\Modules\PowerShellGet

Directory: C:\Test\Modules\PowerShellGet

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         7/1/2019     14:04                1.6.5

Find-Module 使用 Name 参数指定模块 PowerShellGetRepository 参数指定注册的存储库 PSGalleryRequiredVersion 指定版本 1.6.5

对象在管道 Save-Module中向下发送到 。 Path 参数指定存储下载的模块的位置。 下载完成后, Get-ChildItem 显示存储文件 的路径 的内容。

参数

-AcceptLicense

如果包需要许可协议,则自动接受该许可协议。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AllowPrerelease

允许保存标记为预发行的模块。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

在运行 Save-Module之前,会提示你进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

指定有权保存模块的用户帐户。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

如果 Path 参数指定的位置不存在,则 cmdlet 将返回错误。 使用 Force 参数创建目标路径。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

接受 PSRepositoryItemInfo 对象。 例如,输出 Find-Module 到变量,并将该变量用作 InputObject 参数。

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

指定一个或多个位置的路径。 LiteralPath 参数的值完全按照输入的方式使用。 不会将任何字符解释为通配符。 如果路径包含转义字符,请用单引号将它们括起来。 PowerShell 不会将任何用单引号括起来的字符解释为转义序列。

Type:String
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-MaximumVersion

指定要保存的模块的最高版本或最新版本。 不能在同一命令中使用 MaximumVersionRequiredVersion 参数。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MinimumVersion

指定要保存的单个模块的最低版本。 如果尝试安装多个模块,则无法添加此参数。 不能在同一命令中使用 MinimumVersionRequiredVersion 参数。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

指定要保存的模块名称的数组。

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

指定用于存储已保存模块的本地计算机上的位置。 接受通配符。

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Proxy

指定请求的代理服务器,而不是直接连接到 Internet 资源。

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ProxyCredential

指定有权使用由 Proxy 参数指定的代理服务器的用户帐户。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Repository

指定已通过运行 Register-PSRepository注册的存储库的友好名称。 使用 Get-PSRepository 显示已注册的存储库。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-RequiredVersion

指定要保存的模块的确切版本号。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

显示运行时 Save-Module 会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

String[]

PSObject[]

String

Uri

PSCredential

输出

Object

备注

重要

自 2020 年 4 月起,PowerShell 库已不再支持传输层安全性 (TLS) 版本 1.0 和 1.1。 如果你使用的不是 TLS 1.2 或更高版本,那么,在尝试访问 PowerShell 库时,将会收到错误。 使用以下命令可以确定使用的是 TLS 1.2:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

有关详细信息,请参阅 PowerShell 博客中的公告