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

说明

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

默认存储库 Install-Script 的操作可通过 Register-PSRepositorySet-PSRepositoryUnregister-PSRepositoryGet-PSRepository 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

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

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

-AllowPrerelease

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

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

-Confirm

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

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

-Credential

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

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

-Force

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

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

-InputObject

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

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

-MaximumVersion

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

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

-MinimumVersion

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

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

-Name

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

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

-NoPathUpdate

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

-PassThru

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

-Proxy

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

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

-ProxyCredential

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

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

-Repository

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

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

-RequiredVersion

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

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters: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 失败。
Type:String
Accepted values:CurrentUser, AllUsers
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value: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 博客中的公告