Install-Script

安装脚本。

语法

Install-Script
       [-Name] <String[]>
       [-MinimumVersion <String>]
       [-MaximumVersion <String>]
       [-RequiredVersion <String>]
       [-Repository <String[]>]
       [-Scope <String>]
       [-NoPathUpdate]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-Credential <PSCredential>]
       [-Force]
       [-AllowPrerelease]
       [-AcceptLicense]
       [-PassThru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-Script
       [-InputObject] <PSObject[]>
       [-Scope <String>]
       [-NoPathUpdate]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-Credential <PSCredential>]
       [-Force]
       [-AcceptLicense]
       [-PassThru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

说明

Install-Script cmdlet 从存储库获取脚本有效负载,验证有效负载是否为有效的 PowerShell 脚本,并将脚本文件复制到指定的安装位置。

默认存储库通过 > 和 cmdlet 进行配置。 针对多个存储库进行作时, Install-Script 从第一个存储库安装与指定搜索条件(名称MinimumVersionMaximumVersion)匹配的第一个脚本,没有任何错误。

示例

示例 1:查找脚本并将其安装

PS C:\> Find-Script -Repository "Local1" -Name "Required-Script2"
Version    Name                           Type       Repository           Description
-------    ----                           ----       ----------           -----------
2.5        Required-Script2               Script     local1               Description for the Required-Script2 script

PS C:\> Find-Script -Repository "Local1" -Name "Required-Script2" | Install-Script
PS C:\> Get-Command -Name "Required-Script2"
CommandType     Name                      Version    Source
-----------     ----                      -------    ------
ExternalScript  Required-Script2.ps1      2.0       C:\Users\pattif\Documents\WindowsPowerShell\Scripts\Required-Script2.ps1

PS C:\> Get-InstalledScript -Name "Required-Script2"
Version    Name                  Type     Repository           Description
-------    ----                  ----     ----------           -----------
2.5        Required-Script2      Script   local1               Description for the Required-Script2 script

PS C:\> Get-InstalledScript -Name "Required-Script2" | Format-List *
Name                       : Required-Script2
Version                    : 2.5
Type                       : Script
Description                : Description for the Required-Script2 script
Author                     : pattif
CompanyName                :
Copyright                  : 2015 Microsoft Corporation. All rights reserved.
PublishedDate              : 8/15/2015 12:42:39 AM
LicenseUri                 : http://required-script2.com/license
ProjectUri                 : http://required-script2.com/
IconUri                    : http://required-script2.com/icon
Tags                       : {Tag1, Tag2, Tag-Required-Script2-2.5, PSScript...}
Includes                   : {Function, DscResource, Cmdlet, Command}
PowerShellGetFormatVersion :
ReleaseNotes               : Required-Script2 release notes
Dependencies               : {}
RepositorySourceLocation   : http://pattif-dev:8765/api/v2/
Repository                 : local1
PackageManagementProvider  : NuGet
InstalledLocation          : C:\Users\pattif\Documents\WindowsPowerShell\Scripts

第一个命令查找从 Local1 存储库命名 Required-Script2 的脚本,并显示结果。

第二个命令查找 Required-Script2 脚本,然后使用管道运算符将其 Install-Script 传递给 cmdlet 以安装它。

第三个命令使用 Get-Command cmdlet 获取 Required-Script2,然后显示结果。

第四个命令使用 Get-InstalledScript cmdlet 获取 Required-Script2 和显示结果。

第五个命令获取 Required-Script2 并使用管道运算符将其 Format-List 传递给 cmdlet 以格式化输出。

示例 2:安装具有 AllUsers 范围的脚本

PS C:\> Install-Script -Repository "Local1" -Name "Required-Script3" -Scope "AllUsers"
PS C:\> Get-InstalledScript -Name "Required-Script3"
Version    Name                  Type       Repository    Description
-------    ----                  ----       ----------    -----------
2.5        Required-Script3      Script     local1        Description for the Required-Script3 script

PS C:\> Get-InstalledScript -Name "Required-Script3" | Format-List *
Name                       : Required-Script3
Version                    : 2.5
Type                       : Script
Description                : Description for the Required-Script3 script
Author                     : pattif
CompanyName                :
Copyright                  : 2015 Microsoft Corporation. All rights reserved.
PublishedDate              : 8/15/2015 12:42:45 AM
LicenseUri                 : http://required-script3.com/license
ProjectUri                 : http://required-script3.com/
IconUri                    : http://required-script3.com/icon
Tags                       : {Tag1, Tag2, Tag-Required-Script3-2.5, PSScript...}
Includes                   : {Function, DscResource, Cmdlet, Command}
PowerShellGetFormatVersion :
ReleaseNotes               : Required-Script3 release notes
Dependencies               : {}
RepositorySourceLocation   : http://pattif-dev:8765/api/v2/
Repository                 : local1
PackageManagementProvider  : NuGet
InstalledLocation          : C:\Program Files\WindowsPowerShell\Scripts

第一个命令安装命名 Required-Script3 的脚本并为其分配 AllUsers 范围。

第二个命令获取已安装的脚本 Required-Script3 并显示有关它的信息。

第三个命令获取 Required-Script3 并使用管道运算符将其 Format-List 传递给 cmdlet 以格式化输出。

示例 3:安装脚本及其依赖项

PS C:\> Find-Script -Repository "Local1" -Name "Script-WithDependencies2" -IncludeDependencies
Version    Name                        Type       Repository    Description
-------    ----                        ----       ----------    -----------
2.0        Script-WithDependencies2    Script     local1        Description for the Script-WithDependencies2 script
2.5        RequiredModule1             Module     local1        RequiredModule1 module
2.5        RequiredModule2             Module     local1        RequiredModule2 module
2.5        RequiredModule3             Module     local1        RequiredModule3 module
2.5        Required-Script1            Script     local1        Description for the Required-Script1 script
2.5        Required-Script2            Script     local1        Description for the Required-Script2 script
2.5        Required-Script3            Script     local1        Description for the Required-Script3 script

PS C:\> Install-Script -Repository "Local1" -Name "Script-WithDependencies2"
PS C:\> Get-InstalledScript
Version    Name                        Type       Repository    Description
-------    ----                        ----       ----------    -----------
2.5        Required-Script1            Script     local1        Description for the Required-Script1 script
2.5        Required-Script2            Script     local1        Description for the Required-Script2 script
2.5        Required-Script3            Script     local1        Description for the Required-Script3 script
2.0        Script-WithDependencies2    Script     local1        Description for the Script-WithDependencies2 script

PS C:\> Get-InstalledModule
Version    Name                        Type       Repository    Description
-------    ----                        ----       ----------    -----------
2.5        RequiredModule1             Module     local1        RequiredModule1 module
2.5        RequiredModule2             Module     local1        RequiredModule2 module
2.5        RequiredModule3             Module     local1        RequiredModule3 module

PS C:\> Find-Script -Repository "Local1" -Name "Required-Script*"
Version    Name                        Type       Repository    Description
-------    ----                        ----       ----------    -----------
2.5        Required-Script1            Script     local1        Description for the Required-Script1 script
2.5        Required-Script2            Script     local1        Description for the Required-Script2 script
2.5        Required-Script3            Script     local1        Description for the Required-Script3 script

PS C:\> Install-Script -Repository "Local1" -Name "Required-Script*"
PS C:\> Get-InstalledScript
Version    Name                        Type       Repository    Description
-------    ----                        ----       ----------    -----------
2.5        Required-Script1            Script     local1        Description for the Required-Script1 script
2.5        Required-Script2            Script     local1        Description for the Required-Script2 script
2.5        Required-Script3            Script     local1        Description for the Required-Script3 script

第一个命令查找 Local1 存储库中命名 Script-WithDependencies2 的脚本及其依赖项,并显示结果。

第二个命令安装 Script-WithDependencies2

第三个命令使用 Get-InstalledScript 脚本 cmdlet 获取已安装的脚本并显示结果。

第四个命令使用 Get-InstalledModule cmdlet 获取已安装的模块并显示结果。

第五个命令使用 Find-Script cmdlet 查找名称开头 Required-Script 并显示结果的脚本。

第六个命令将安装名称以 Local1 存储库开头 Required-Script 的脚本。

最终命令将安装脚本并显示结果。

参数

-AcceptLicense

如果模块需要许可协议,则自动接受安装期间的许可协议。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-AllowPrerelease

允许安装标记为预发行版的脚本。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Confirm

在运行 cmdlet 之前,提示你进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-Credential

指定有权为指定的包提供程序或源安装脚本的用户帐户。

类型:PSCredential
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Force

强制命令运行而不要求用户确认。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InputObject

用于管道输入。 如果直接提供给 InputObject 的值,则会引发错误。 使用管道通过 InputObject 参数传递对象。

类型:PSObject[]
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-MaximumVersion

指定要安装的单个脚本的最大版本。 如果尝试安装多个脚本,则无法添加此参数。 MaximumVersionRequiredVersion 参数互斥;不能在同一命令中使用这两个参数。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-MinimumVersion

指定要安装的单个脚本的最低版本。 如果尝试安装多个脚本,则无法添加此参数。 MinimumVersionRequiredVersion 参数互斥;不能在同一命令中使用这两个参数。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Name

指定要安装的脚本的名称数组。

类型:String[]
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-NoPathUpdate

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-PassThru

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Proxy

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

类型:Uri
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-ProxyCredential

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

类型:PSCredential
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Repository

指定已向 cmdlet 注册的存储库的 Register-PSRepository 友好名称。 默认值为所有已注册的存储库。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-RequiredVersion

指定要安装的脚本的确切版本号。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Scope

指定脚本的安装范围。 有效值为:AllUsers 和 CurrentUser。

AllUsers 范围允许模块安装在计算机所有用户可访问的位置,即 $env:ProgramFiles\WindowsPowerShell\Scripts

CurrentUser 范围仅允许将模块安装到 $HOME\Documents\WindowsPowerShell\Scripts该范围,以便该模块仅适用于当前用户。

如果未定义 作用域 ,则会根据当前会话设置默认值:

  • 对于提升的 PowerShell 会话, 范围 默认为 AllUsers;
  • 对于 PowerShellGet 2.0.0 及更高版本中未提升的 PowerShell 会话, 范围 为 CurrentUser;
  • 对于 PowerShellGet 版本 1.6.7 及更早版本中未提升的 PowerShell 会话, 范围 未定义且 Install-Module 失败。
类型:String
接受的值:CurrentUser, AllUsers
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-WhatIf

显示 cmdlet 运行时会发生什么情况。 命令脚本未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符: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 博客中的 公告