PowerShell 갤러리는 초보자든 숙련된 사용자든 모두에게 PowerShell을 위한 궁극적인 목적지입니다. 그리고 좋은 소식은 PowerShell 커뮤니티가 만든 문서, 스크립트, 모듈 및 기타 리소스의 방대한 컬렉션이 있다는 것입니다.
이 자습서에서는 PowerShell 갤러리에서 리소스를 찾고 다운로드하고 설치하는 방법을 배울 것입니다.
계속해서 스크립팅 게임을 높이는 방법을 익혀보세요!
전제 조건
이 자습서는 실습을 위한 것입니다. 따라하기 위해서는 PowerShell 5.1 이상이 설치된 시스템이 필요합니다. 이 자습서는 PowerShell 5.3이 설치된 Windows 10을 사용하지만, 다른 버전의 Windows와 PowerShell도 작동할 것입니다.
.NET Framework 설치
PowerShell 갤러리에 진입하기 전에 PowerShell 갤러리와 상호 작용할 수 있는 방법이 필요합니다. 그리고 .NET Framework가 주요한 방법입니다.
PowerShellGet 모듈을 사용하려면 먼저 .NET Framework를 설치해야 합니다. PowerShellGet 모듈은 최소한 .NET Framework v4.5+를 필요로 합니다. PowerShellGet 모듈을 사용하면 PowerShell 아티팩트를 찾고 설치, 업데이트 및 게시할 수 있습니다.
하지만 이 자습서에서는 .NET Framework v4.8을 설치할 것입니다.
? 참고로 .NET Framework v4.8은 이미 시스템에 설치되어 있을 수 있습니다. 그렇다면 이 단계를 건너뛸 수 있습니다. 그러나 이전 버전의 .NET Framework가 있다면 제거하고 새로운 버전으로 업그레이드하십시오.
.NET Framework를 설치하려면 다음 단계를 따르세요:
1. 좋아하는 웹 브라우저를 열고 공식 .NET Framework 다운로드 페이지로 이동하십시오.
2. 다음으로, .NET Framework 4.8 개발자 팩 다운로드 링크를 클릭하여 ndp48-devpack-enu와 비슷한 파일을 다운로드하십시오. 이 파일은 .NET Framework 버전 4.8의 설치 파일입니다.

3. 다운로드가 완료되기를 기다리고, 다운로드한 파일을 두 번 클릭하여 .NET Framework 설치 프로그램을 실행하십시오.

?.NET Framework 설치에 문제가 있다면 [호환성 모드]에서 설치 파일을 실행해 보세요.
4. 하단의 확인란을 선택하여 라이선스 약관을 수락하고, .NET Framework 4.8을 설치하기 위해 설치 버튼을 클릭하세요.

아래에서는 시스템 구성에 따라 몇 분이 걸릴 수 있는 설치 진행 상황을 볼 수 있습니다.

5. 설치가 완료되면 설치 프로그램을 닫기 위해 닫기 버튼을 클릭하세요.

6. 마지막으로, 관리자 권한으로 PowerShell을 열고 다음 [Start-Process]
명령을 실행하여 프로그램 추가 또는 제거 앱(appwiz.cpl
)을 엽니다. 이 앱을 통해 시스템에 설치된 프로그램 목록을 볼 수 있습니다.
아래에 .NET Framework 4.8에 대한 항목이 설치된 프로그램 목록에서 표시됩니다.

PowerShellGet 모듈 설치
.NET Framework가 설치되고 실행되면 PowerShell 갤러리의 핵심 구성 요소인 PowerShellGet 모듈을 설치할 수 있습니다.
Windows PowerShell 5.1에 사전 설치된 PowerShellGet 버전(1.0.0.1)은 기능이 제한적입니다. Windows PowerShell 5.1 이전 버전을 사용하는 경우, PowerShell 갤러리의 업데이트된 기능을 사용하는 것을 고려해보세요. 이 글 작성 시점에서의 최신 버전은 3.0.17-beta17입니다.
PowerShellGet 모듈을 설치하려면 아래 단계를 따르세요:
1. 다음 명령을 실행하면 출력은 생성되지 않지만, PowerShell 세션에서 전송 계층 보안(TLS) 1.2가 활성화됩니다. TLS는 인터넷을 통해 전송되는 데이터를 암호화하는 보안 프로토콜입니다.
TLS 1.2를 활성화하는 것은 중요합니다. 왜냐하면 PowerShell은 기본적으로 TLS 1.2를 사용하도록 구성되어 있지 않기 때문입니다. 이 명령은 System.Net.ServicePointManager
개체의 SecurityProtocol
를 TLS 1.2(Tls12
)로 설정합니다. 이를 통해 TLS 1.2 이상을 사용하여 PowerShell 갤러리에 액세스할 수 있습니다.
? 이 변경 사항은 현재 PowerShell 세션에만 적용됩니다. 그러나 PowerShell 프로필에 위의 명령을 추가하여 PowerShell이 항상 TLS 1.2를 사용하도록 구성할 수 있습니다.
다음으로, NuGet 패키지 공급자를 설치하려면 아래의 Install-PackageProvider
명령을 실행하십시오. NuGet 패키지 공급자를 설치하면 NuGet 패키지 저장소에서 패키지를 설치하고 관리할 수 있습니다. 이 저장소는 .NET 플랫폼을 위한 오픈 소스 패키지의 중앙 저장소입니다.
NuGet 패키지 공급자는 PowerShell 갤러리에서 모듈을 설치하기 위해 [Install-Module]
cmdlet을 사용하기 전에 필요합니다. 왜냐하면 PowerShell 갤러리의 많은 모듈은 NuGet 패키지로 배포되기 때문입니다.

설치가 완료되면 NuGet API를 활용할 수 있게 됩니다. NuGet API를 사용하면 NuGet 패키지 저장소에 액세스하여 NuGet 패키지 저장소와 상호 작용할 수 있는 도구 및 애플리케이션을 만들 수 있습니다. 상호 작용하는 방법은? 패키지 검색, 설치, 업데이트와 같은 다양한 작업을 수행하는 것입니다.
일반적으로, 클라이언트와 서버의 기능과 요구 사항에 따라 사용할 수 있는 두 가지 버전의 NuGet API가 있습니다.
Version | Description | Usage |
v2 | Uses XML as the data format for communication between the client and server.
This version is based on the original NuGet API introduced in 2011 and is the legacy version of the API. |
The v2 API is recommended if you use an older version of NuGet or a client or server that does not support the v3 API.
This version is supported by all versions of NuGet and is compatible with older clients and servers. |
v3 | Uses JSON as the data format for communication between the client and server. This version was introduced in 2013 as an improvement over the v2 API and included many new features and improvements.
Many new features included are support for side-by-side package installation, improved search capabilities, and large package support. |
The v3 API is recommended if you use a newer NuGet version. The v3 API is faster and more efficient than the v2 API.
This version is not supported by older versions of NuGet and may not be compatible with older clients and servers. |
? 일반적으로, 최신 기능과 기능을 제공하는 NuGet API v3가 권장됩니다.
3. 아래의 Set-PSRepository
명령을 실행하여 PowerShell 갤러리 (PSGallery
) 저장소를 신뢰할 수 있는 패키지 소스로 설정합니다. 이를 통해 PowerShell 갤러리에서 모듈을 설치할 수 있습니다.
4. 이제 아래의 Install-Module
명령을 실행하여 최신 버전의 PowerShellGet
모듈을 설치합니다. (-AllowPrerelease
)

5. 마지막으로, 아래의 Get-InstalledModule
명령을 실행하여 PowerShellGet
모듈이 성공적으로 설치되었는지 확인합니다.
성공적으로 설치되었다면, 아래와 같이 PowerShellGet 모듈이 PSGallery 저장소와 함께 나열됩니다.

PowerShell 갤러리에서 모듈 찾기
이제 PowerShellGet 모듈을 설치했으므로 PowerShell 갤러리에서 모듈을 검색하고 설치할 수 있습니다. 이를 통해 PowerShell 환경의 기능을 확장하고 복잡한 작업을 더 효율적으로 자동화할 수 있습니다.
PowerShell 갤러리에서 모듈을 검색하려면 Find-Module
cmdlet을 사용할 수 있습니다. 이 cmdlet은 모듈 이름, 버전 또는 태그와 일치하는 모듈을 PowerShell 갤러리에서 검색합니다.
1. 아래의 Find-Module
명령을 실행하여 PowerShell 갤러리에서 AzureRM
과 일치하는 이름의 모듈을 검색하세요.
아래 출력은 PowerShell 갤러리에서 이름이 AzureRM과 일치하는 모듈이 하나만 있음을 나타냅니다. 각 모듈의 이름, 버전, 저장소 등과 같은 기본 정보도 볼 수 있습니다.

2. 다음 중 하나의 명령을 실행하여 -Tag
와 키워드 Azure
를 사용하여 모듈을 검색하세요. -Tag
매개변수는 대소문자를 구분하지 않으므로 azure
또는 Azure
를 태그 키워드로 사용할 수 있습니다.
모듈에 태그를 사용하는 이유는 무엇인가요? 태그는 PowerShell 갤러리에서 모듈의 콘텐츠와 기능을 설명하는 키워드 또는 레이블입니다.
예를 들어 Azure 클라우드 플랫폼과 관련된 모듈의 경우 Azure
키워드를 태그로 지정할 수 있습니다. 이렇게 하면 Azure 관련 리소스에 관심이 있는 사용자가 Azure
태그로 검색하여 모듈을 쉽게 찾고 발견할 수 있습니다.
PowerShell 갤러리는 다양한 작성자들이 기여한 다양한 리소스를 포함한 대규모 저장소입니다. 그리고 Azure
와 같은 인기 키워드와 관련된 많은 모듈들이 있습니다.
그 결과, 키워드나 태그와 일치하는 모듈의 긴 목록을 다음과 같은 스크린샷에서 볼 수 있습니다.

? 태그를 사용하여 관련 모듈을 그룹화하고 관련 리소스를 빠르게 찾을 수도 있습니다. 예를 들어,
Virtualization
태그를 사용하여 Hyper-V 또는 VMware와 같은 가상화 기술과 관련된 모듈을 그룹화할 수 있습니다.
3. 이제 다음 명령을 실행하여 검색 범위를 좁히고 Find-Module
cmdlet의 매개변수를 조합하여 특정 모듈을 찾을 수 있습니다.
아래 명령은 다음 매개변수들을 고려하여 PowerShell 갤러리에서 모듈을 찾습니다:
-Name
– 특정 이름Az.Compute
을 가진 모듈을 검색합니다.
-Tag
– 태그Azure
와Microsoft
을 가진 모듈을 검색합니다.

모듈 설치 및 업데이트
관심 있는 모듈을 찾았다면, 해당 모듈을 설치하기는 몇 가지 키 스트로크 떨어져 있습니다. Install-Module
cmdlet을 사용하여 PowerShell 갤러리에서 모듈을 다운로드하고 로컬 시스템에 설치할 수 있습니다.
1. 아래 명령을 실행하여 PowerShell 갤러리에서 Az.Compute
모듈을 다운로드하고 설치합니다.
만약 성공한다면, 이 명령은 출력을 생성하지 않지만 다음 단계에서 설치를 확인할 것입니다.
2. 다음으로, 다음 Get-InstalledModule
명령을 실행하여 Az.Compute
모듈이 시스템에 설치되었는지 확인합니다.

? 또는 매개변수 없이
Get-InstalledModule
cmdlet을 실행하여 시스템에 설치된 모든 모듈의 목록을 표시할 수 있습니다. 그러나 설치된 모듈이 너무 많다면 목록을 스크롤하면서 눈이 아플 수 있습니다.

3. 이제 아래의 Update-Module
명령을 실행합니다. 이 명령은 출력을 제공하지 않지만 특정 모듈 (즉, Az.Compute
)의 최신 버전을 검색하고 업데이트합니다.
설치된 모듈을 업데이트하면 버그 수정, 새로운 기능 또는 기타 개선 사항이 포함될 수 있습니다.
PowerShell 모듈 제거하기
시스템에서 모듈을 제거하려는 경우가 있을 수 있습니다. 예를 들어, 더 이상 모듈이 필요하지 않거나 문제가 있는 경우입니다.
시스템에서 모듈을 제거하려면 Uninstall-Module
cmdlet을 사용할 수 있습니다. 이 cmdlet은 모듈과 해당 파일을 시스템에서 제거하여 모듈을 제거합니다.
? 모듈을 제거하기 전에 모듈을 제거하는 것의 영향을 신중히 고려하십시오. 모듈을 제거하면 모듈에 의존하는 다른 프로그램이나 스크립트가 작동하지 않을 수 있는 등 의도치 않은 결과가 발생할 수 있습니다.
시스템에서 특정 모듈(Az.Compute)을 제거하려면 다음 Uninstall-Module
명령을 실행하십시오. 이 명령은 제거가 성공적으로 이루어지면 출력을 생성하지 않습니다.
? 다른 프로그램이나 스크립트가 현재 해당 모듈을 사용 중인 경우,
Uninstall-Module
cmdlet은 오류를 발생시키고 제거에 실패합니다.
결론
PowerShell 모듈은 PowerShell 환경에 기능을 추가할 수 있는 강력한 도구입니다. 이 튜토리얼에서는 PowerShell 갤러리와 함께 몇 가지 명령을 사용하여 모듈을 찾고 설치할 수 있습니다.
PowerShell 갤러리를 활용하여 PowerShell 스크립트와 워크플로우를 사용자 정의하고 강화하는 PowerShell 모듈을 찾아보세요!