다음을 통해 공유


Install-Module

리포지토리에서 하나 이상의 모듈을 다운로드하고 로컬 컴퓨터에 설치합니다.

구문

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

Description

Install-Module cmdlet은 온라인 리포지토리에서 지정된 조건을 충족하는 하나 이상의 모듈을 가져옵니다. cmdlet은 검색 결과가 유효한 모듈임을 확인하고 모듈 폴더를 설치 위치에 복사합니다. 설치된 모듈은 설치 후 자동으로 가져오지 않습니다. 지정된 모듈의 최소, 최대 및 정확한 버전에 따라 설치된 모듈을 필터링할 수 있습니다.

Microsoft.PowerShell.PSResourceGet cmdlet에 대한 프록시 cmdlet입니다. 자세한 내용은 Install-PSResource참조하세요.

예제

예제 1: 모듈 찾기 및 설치

이 예제에서는 리포지토리에서 모듈을 찾아서 모듈을 설치합니다.

Find-Module -Name PowerShellGet | Install-Module

Find-Module Name 매개 변수를 사용하여 PowerShellGet 모듈을 지정합니다. 기본적으로 최신 버전의 모듈은 리포지토리에서 다운로드됩니다. 개체가 파이프라인 아래로 Install-Module cmdlet으로 전송됩니다. Install-Module $env:ProgramFiles\PowerShell\Modules모든 사용자에 대한 모듈을 설치합니다.

예제 2: 이름으로 모듈 설치

이 예제에서는 최신 버전의 PowerShellGet 모듈이 설치됩니다.

Install-Module -Name PowerShellGet

Install-Module Name 매개 변수를 사용하여 PowerShellGet 모듈을 지정합니다. 기본적으로 최신 버전의 모듈은 리포지토리에서 다운로드되어 설치됩니다.

예제 3: 최소 버전을 사용하여 모듈 설치

이 예제에서는 PowerShellGet 모듈의 최소 버전이 설치됩니다. MinimumVersion 매개 변수는 설치해야 하는 가장 낮은 버전의 모듈을 지정합니다. 최신 버전의 모듈을 사용할 수 있는 경우 모든 사용자에 대해 해당 버전이 다운로드되고 설치됩니다.

Install-Module -Name PowerShellGet -MinimumVersion 2.0.1

Install-Module Name 매개 변수를 사용하여 PowerShellGet 모듈을 지정합니다. MinimumVersion 매개 변수는 버전 2.0.1 리포지토리에서 다운로드하여 설치되도록 지정합니다. 버전 2.0.4 사용할 수 있으므로 해당 버전은 모든 사용자에 대해 다운로드되고 설치됩니다.

예제 4: 특정 버전의 모듈 설치

이 예제에서는 특정 버전의 PowerShellGet 모듈이 설치됩니다.

Install-Module -Name PowerShellGet -RequiredVersion 2.0.0

Install-Module Name 매개 변수를 사용하여 PowerShellGet 모듈을 지정합니다. RequiredVersion 매개 변수는 버전 2.0.0 모든 사용자에 대해 다운로드 및 설치되도록 지정합니다.

예제 5: 현재 사용자에 대해서만 모듈 설치

이 예제에서는 현재 사용자에 대해서만 최신 버전의 모듈을 다운로드하고 설치합니다.

Install-Module -Name PowerShellGet -Scope CurrentUser

Install-Module Name 매개 변수를 사용하여 PowerShellGet 모듈을 지정합니다. Install-Module 최신 버전의 PowerShellGet 다운로드하여 현재 사용자의 디렉터리 $HOME\Documents\PowerShell\Modules설치합니다.

예제 6: 최신 시험판 버전의 모듈 설치

이 예제에서는 해당 버전이 시험판 버전인 경우 최신 버전의 모듈을 설치하는 방법을 보여줍니다. 시험판 버전을 설치하려면 AllowPrerelease 매개 변수가 필요합니다.

Install-Module -Name Microsoft.PowerShell.Crescendo -AllowPrerelease

이 메서드를 사용하여 사용 가능한 최신 버전을 가져옵니다. 최신 버전이 시험판이 아닌 경우 안정적인 최신 버전의 모듈을 얻게 됩니다.

예제 7: 모듈의 특정 시험판 버전 설치

이 예제에서는 특정 시험판 버전의 모듈을 설치하는 방법을 보여줍니다. Find-Module cmdlet을 사용하여 PowerShell 갤러리에서 시험판 버전의 모듈을 찾을 수 있습니다.

시험판 버전에는 <version_number>-<prerelease_label>형식이 있습니다.

Find-Module PSReadLine -AllVersions -AllowPrerelease | Select-Object -First 5

Version        Name             Repository       Description
-------        ----             ----------       -----------
2.2.6          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.5          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.4-beta1    PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.3          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.2          PSReadLine       PSGallery        Great command line editing in the PowerS…

Install-Module -Name PSReadLine -RequiredVersion 2.2.4-beta1 -AllowPrerelease

PowerShell 갤러리에 표시된 버전을 사용하여 RequiredVersion 매개 변수의 값을 확인합니다.

매개 변수

-AcceptLicense

라이선스가 필요한 모듈의 경우 AcceptLicense 설치 중에 자동으로 사용권 계약을 수락합니다. 자세한 내용은 라이선스 승인필요한 모듈을 참조하세요.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-AllowClobber

컴퓨터의 기존 명령에 대한 설치 충돌에 대한 경고 메시지를 재정의합니다. 모듈에서 설치하는 명령과 이름이 같은 기존 명령을 덮어씁니다. AllowClobberForceInstall-Module 명령에서 함께 사용할 수 있습니다.

프록시 cmdlet은 이 매개 변수의 값을 Install-PSResource cmdlet의 NoClobber 매개 변수로 변환합니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-AllowPrerelease

시험판으로 표시된 모듈을 설치할 수 있습니다.

프록시 cmdlet은 이 매개 변수를 Install-PSResource시험판 매개 변수에 매핑합니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Confirm

Install-Module cmdlet을 실행하기 전에 확인 메시지를 표시합니다.

형식:SwitchParameter
별칭:cf
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Credential

지정된 패키지 공급자 또는 원본에 대한 모듈을 설치할 수 있는 권한이 있는 사용자 계정을 지정합니다.

형식:PSCredential
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Force

프록시 cmdlet은 Install-PSResource지원되지 않으므로 이 매개 변수를 무시합니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

파이프라인 입력에 사용됩니다. InputObject에 직접 제공된 값이오류가 throw됩니다. 파이프라인을 사용하여 InputObject 매개 변수를 사용하여 개체를 전달합니다.

형식:PSObject[]
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-MaximumVersion

프록시 cmdlet은 이 매개 변수의 값을 사용하여 Install-PSResourceVersion 매개 변수와 함께 사용할 NuGet 버전 검색 문자열을 만듭니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-MinimumVersion

프록시 cmdlet은 이 매개 변수의 값을 사용하여 Install-PSResourceVersion 매개 변수와 함께 사용할 NuGet 버전 검색 문자열을 만듭니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Name

온라인 갤러리에서 설치할 모듈의 정확한 이름을 지정합니다. 모듈 이름의 쉼표로 구분된 목록이 허용됩니다. 모듈 이름은 리포지토리의 모듈 이름과 일치해야 합니다. Find-Module 사용하여 모듈 이름 목록을 가져옵니다.

형식:String[]
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-PassThru

PassThru 매개 변수를 사용하는 경우 Install-Module 모듈에 대한 PSRepositoryItemInfo 개체를 출력합니다. 이는 Find-Module cmdlet에서 가져오는 것과 동일한 정보입니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Proxy

프록시 cmdlet은 Install-PSResource지원되지 않으므로 이 매개 변수를 무시합니다.

형식:Uri
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-ProxyCredential

프록시 cmdlet은 Install-PSResource지원되지 않으므로 이 매개 변수를 무시합니다.

형식:PSCredential
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Repository

리포지토리 매개 변수를 사용하여 모듈을 다운로드하고 설치할 리포지토리의 이름을 지정합니다. 여러 리포지토리가 등록될 때 사용됩니다. Install-Module 명령에 등록된 리포지토리의 이름을 지정합니다. 리포지토리를 등록하려면 Register-PSRepository사용합니다. 등록된 리포지토리를 표시하려면 Get-PSRepository사용합니다.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-RequiredVersion

프록시 cmdlet은 이 매개 변수의 값을 사용하여 Install-PSResourceVersion 매개 변수와 함께 사용할 NuGet 버전 검색 문자열을 만듭니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Scope

모듈의 설치 범위를 지정합니다. 이 매개 변수에 허용되는 값은 AllUsers CurrentUser.

AllUsers 범위는 컴퓨터의 모든 사용자가 액세스할 수 있는 위치에 모듈을 설치합니다.

$env:ProgramFiles\PowerShell\Modules

CurrentUser 컴퓨터의 현재 사용자만 액세스할 수 있는 위치에 모듈을 설치합니다. 예를 들어:

$HOME\Documents\PowerShell\Modules

범위 정의되지 않은 경우 기본값은 PowerShellGet 버전에 따라 설정됩니다.

  • PowerShellGet 1.x 버전에서 기본값은 AllUsers설치를 위해 권한 상승이 필요합니다.
  • PowerShell 6 이상의 PowerShellGet 버전 2.0.0 이상:
    • 기본값은 CurrentUser설치에 대한 권한 상승이 필요하지 않습니다.
    • 관리자 권한 세션에서 실행하는 경우 기본값은 AllUsers.
형식:String
허용되는 값:CurrentUser, AllUsers
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-SkipPublisherCheck

프록시 cmdlet은 Install-PSResource호출하기 전에 이 매개 변수를 AuthenticodeCheck 변환합니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-WhatIf

Install-Module 명령이 실행된 경우 어떤 일이 발생하는지 보여줍니다. cmdlet이 실행되지 않습니다.

형식:SwitchParameter
별칭:wi
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

PSRepositoryItemInfo

Find-Module Install-Module위해 파이프라인 아래로 보낼 수 있는 PSRepositoryItemInfo 개체를 만듭니다.

String[]

PSObject[]

String

PSCredential

Uri

출력

Microsoft.PowerShell.Commands.PSRepositoryItemInfo

PassThru 매개 변수를 사용하는 경우 Install-Module 모듈에 대한 PSRepositoryItemInfo 개체를 출력합니다. 이는 Find-Module cmdlet에서 가져오는 것과 동일한 정보입니다.

참고

PowerShell에는 Install-Module다음과 같은 별칭이 포함되어 있습니다.

  • 모든 플랫폼:
    • inmo

Install-Module PowerShell 5.0 이상 릴리스, Windows 7 또는 Windows 2008 R2 이상 릴리스에서 실행됩니다.

중요하다

2020년 4월부터 PowerShell 갤러리는 더 이상 TLS(전송 계층 보안) 버전 1.0 및 1.1을 지원하지 않습니다. TLS 1.2 이상을 사용하지 않는 경우 PowerShell 갤러리에 액세스하려고 할 때 오류가 발생합니다. 다음 명령을 사용하여 TLS 1.2를 사용하고 있는지 확인합니다.

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

자세한 내용은 PowerShell 블로그의 공지 참조하세요.

보안 모범 사례로, 처음으로 cmdlet 또는 함수를 실행하기 전에 모듈의 코드를 평가합니다. 악성 코드가 포함된 모듈을 실행하지 않도록 설치한 모듈은 설치 후 자동으로 가져오지 않습니다.

Name 매개 변수로 지정된 모듈 이름이 리포지토리에 없으면 Install-Module 오류를 반환합니다.

여러 모듈을 설치하려면 Name 매개 변수를 사용하고 모듈 이름의 쉼표로 구분된 배열을 지정합니다. 여러 모듈 이름을 지정하는 경우 MinimumVersion, MaximumVersion또는 requiredVersion사용할 수 없습니다. Find-Module Install-Module위해 파이프라인 아래로 보낼 수 있는 PSRepositoryItemInfo 개체를 만듭니다. 파이프라인은 단일 명령에 설치할 여러 모듈을 지정하는 또 다른 방법입니다.

기본적으로 AllUsers 범위에 대한 모듈은 $env:ProgramFiles\PowerShell\Modules설치됩니다. 기본값은 PowerShell DSC(필요한 상태 구성) 리소스를 설치할 때 혼동을 방지합니다.

모듈 설치가 실패하고 폴더 내에 같은 이름의 .psm1, .psd1또는 .dll 없는 경우 가져올 수 없습니다. Force 매개 변수를 사용하여 모듈을 설치합니다.

기존 모듈의 버전이 Name 매개 변수로 지정된 이름과 일치하고 MinimumVersion 또는 RequiredVersion 매개 변수가 사용되지 않는 경우 Install-Module 자동으로 계속되지만 모듈을 설치하지는 않습니다.

기존 모듈의 버전이 MinimumVersion 매개 변수의 값보다 크거나 RequiredVersion 매개 변수 값과 같으면 Install-Module 자동으로 계속되지만 모듈을 설치하지는 않습니다.

기존 모듈이 MinimumVersion 또는 RequiredVersion 매개 변수에 지정된 값과 일치하지 않으면 Install-Module 명령에서 오류가 발생합니다. 예를 들어 설치된 기존 모듈의 버전이 MinimumVersion 값보다 작거나 RequiredVersion 값과 같지 않은 경우입니다.

또한 Install-Module 모듈 게시자가 요구하는 대로 지정된 모든 종속 모듈을 설치합니다. 게시자는 모듈 매니페스트에 필요한 모듈 및 해당 버전을 나열합니다.