Windows에 PowerShell 설치

Windows에서 PowerShell을 설치하는 방법에는 여러 가지가 있습니다. 각 설치 방법은 다양한 시나리오와 워크플로를 지원하도록 설계되었습니다. 요구 사항에 가장 적합한 방법을 선택합니다.

  • Winget - Windows 클라이언트에 PowerShell을 설치하는 권장 방법
  • MSI 패키지 - Windows Server 및 엔터프라이즈 배포 시나리오에 가장 적합한 선택
  • ZIP 패키지 - 여러 버전을 "테스트용 로드" 또는 설치하는 가장 쉬운 방법
    • 이는 Windows Nano Server, Windows IoT, Arm 기반 시스템에 이 방법 사용
  • .NET Global 도구 - 다른 전역 도구를 설치하고 사용하는 .NET 개발자에게 적합
  • Microsoft Store 패키지 - PowerShell의 일반 사용자를 위한 간편한 설치 방법이지만 제한 사항이 있음

참고 항목

이 문서의 설치 명령은 안정적인 최신 PowerShell 릴리스용입니다. 다른 버전의 PowerShell을 설치하려면 필요한 버전과 일치하도록 명령을 조정합니다. 다음 링크는 GitHub PowerShell 리포지토리의 각 버전에 대한 릴리스 페이지로 안내합니다.

모든 패키지에 대한 다운로드 링크는 릴리스 페이지의 자산 섹션에 있습니다. 자산 섹션이 축소될 수 있으므로 확장하려면 클릭해야 할 수 있습니다.

Windows 패키지 관리자인 Winget은 사용자가 Windows 클라이언트 컴퓨터에서 애플리케이션을 검색, 설치, 업그레이드, 제거, 구성할 수 있도록 하는 명령줄 도구입니다. 이 도구는 Windows 패키지 관리자 서비스에 대한 클라이언트 인터페이스입니다. winget 명령줄 도구는 기본적으로 앱 설치 관리자로 Windows 11 및 최신 버전의 Windows 10에 번들로 제공됩니다.

참고 항목

시스템 요구 사항 및 설치 지침 목록은 winget 설명서를 참조하세요. Winget은 현재 Windows 서버에서 실행되지 않습니다.

다음 명령을 사용하여 게시된 winget 패키지를 사용하여 PowerShell을 설치할 수 있습니다.

최신 버전의 PowerShell 검색

winget search Microsoft.PowerShell
Name               Id                           Version   Source
-----------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.4.2.0   winget
PowerShell Preview Microsoft.PowerShell.Preview 7.5.0.2   winget

id 매개 변수를 사용하여 Powershell 또는 Powershell 미리 보기 설치

winget install --id Microsoft.Powershell --source winget
winget install --id Microsoft.Powershell.Preview --source winget

참고 항목

X86 또는 X64 프로세서 winget 를 사용하는 Windows 시스템에서 MSI 패키지를 설치합니다. Arm64 프로세서 winget 를 사용하는 시스템에서 MSIX(Microsoft Store) 패키지를 설치합니다. 자세한 내용은 Microsoft Store에서 설치를 참조 하세요.

MSI 패키지 설치

Windows에서 PowerShell을 설치하려면 다음 링크를 사용하여 GitHub에서 설치 패키지를 다운로드합니다.

다운로드한 후 설치 관리자 파일을 두 번 클릭하고 프롬프트를 따릅니다.

설치 관리자는 Windows 시작 메뉴에서 바로 가기를 만듭니다.

  • 기본적으로 패키지는 $env:ProgramFiles\PowerShell\<version>에 설치됩니다.
  • 시작 메뉴를 통해 PowerShell을 시작하거나 $env:ProgramFiles\PowerShell\<version>\pwsh.exe

참고 항목

PowerShell 7.4는 새 디렉터리에 설치되고 Windows PowerShell 5.1과 함께 실행됩니다. PowerShell 7.4는 이전 버전의 PowerShell 7을 제거하는 현재 위치 업그레이드입니다. PowerShell의 미리 보기 버전은 다른 버전의 PowerShell과 함께 설치할 수 있습니다.

  • PowerShell 7.4가 $env:ProgramFiles\PowerShell\7
  • $env:ProgramFiles\PowerShell\7 폴더가 $env:PATH에 추가됩니다.

PowerShell 7.4를 다른 버전과 나란히 실행해야 하는 경우 ZIP 설치 방법을 사용하여 다른 버전을 다른 폴더에 설치합니다.

PowerShell 7.2 이상에서 Microsoft 업데이트 지원

PowerShell 7.2 이상에서는 Microsoft 업데이트를 지원합니다. 이 기능을 사용하도록 설정하면 비즈니스용 Windows 업데이트, WSUS, Microsoft Endpoint Configuration Manager 또는 설정의 대화형 MU(Microsoft 업데이트) 대화 상자에 관계없이 기존 MU 관리 흐름에서 최신 PowerShell 7 업데이트를 가져올 수 있습니다.

PowerShell MSI 패키지에는 다음 명령줄 옵션이 포함되어 있습니다.

  • USE_MU - 이 속성에는 다음 두 가지 가능한 값이 있습니다.
    • 1(기본값) - Microsoft 업데이트, WSUS 또는 Configuration Manager를 통한 업데이트를 옵트인합니다.
    • 0 - Microsoft 업데이트, WSUS 또는 Configuration Manager를 통한 업데이트를 옵트인하지 않습니다.
  • ENABLE_MU
    • 1(기본값) - 자동 업데이트 대한 Microsoft 업데이트 사용 옵트인
    • 0 - Microsoft 업데이트 사용을 옵트인하지 않습니다.

참고 항목

업데이트를 사용하도록 설정하는 것은 이전 설치 또는 수동 구성에서 설정되었을 수 있습니다. ENABLE_MU=0을 사용하면 기존 설정이 제거되지 않습니다. 또한 이 설정은 관리자가 제어하는 그룹 정책 설정에 의해 재정의될 수 있습니다.

자세한 내용은 PowerShell Microsoft 업데이트 FAQ를 참조 하세요.

명령줄에서 MSI 패키지 설치

관리자가 사용자 상호 작용 없이 패키지를 배포할 수 있도록 명령줄에서 MSI 패키지를 설치할 수 있습니다. MSI 패키지에는 설치 옵션을 제어하기 위한 다음 속성이 포함되어 있습니다.

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL - 이 속성은 Windows 탐색기의 상황에 맞는 메뉴에 항목을 추가하는 Open PowerShell 옵션을 제어합니다.
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL - 이 속성은 Windows 탐색기의 상황에 맞는 메뉴에 항목을 추가하는 Run with PowerShell 옵션을 제어합니다.
  • ENABLE_PSREMOTING - 이 속성은 설치 중에 PowerShell 원격을 사용하도록 설정하는 옵션을 제어합니다.
  • REGISTER_MANIFEST - 이 속성은 Windows 이벤트 로깅 매니페스트를 등록하는 옵션을 제어합니다.
  • ADD_PATH - 이 속성은 Windows PATH 환경 변수에 PowerShell을 추가하는 옵션을 제어합니다.
  • DISABLE_TELEMETRY - 이 속성은 환경 변수를 설정하여 PowerShell의 원격 분석을 사용하지 않도록 설정하는 POWERSHELL_TELEMETRY_OPTOUT 옵션을 제어합니다.
  • INSTALLFOLDER - 이 속성은 설치 디렉터리를 제어합니다. 기본값은 $env:ProgramFiles\PowerShell\입니다. 설치 관리자가 버전이 지정된 하위 폴더를 만드는 위치입니다. 버전이 지정된 하위 폴더의 이름은 변경할 수 없습니다.
    • 현재 릴리스의 경우 버전이 지정된 하위 폴더는 7
    • 미리 보기 릴리스의 경우 버전이 지정된 하위 폴더는 7-preview

다음 예제에서는 모든 설치 옵션을 사용하도록 설정하여 PowerShell을 자동으로 설치하는 방법을 보여 줍니다.

msiexec.exe /package PowerShell-7.4.2-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1

명령줄 옵션 Msiexec.exe의 전체 목록은 명령줄 옵션을 참조 하세요.

ZIP 패키지 설치

고급 배포 시나리오를 사용하도록 설정하기 위해 PowerShell 이진 ZIP 보관 파일이 제공됩니다. 현재 릴리스 페이지에서 다음 ZIP 보관 파일 중 하나를 다운로드합니다.

파일을 다운로드하는 방법에 따라 cmdlet을 사용하여 파일 차단을 Unblock-File 해제해야 할 수 있습니다. 콘텐츠의 압축을 원하는 위치로 압축을 풀고 여기에서 실행 pwsh.exe 합니다. MSI 패키지를 설치하는 것과 달리 ZIP 보관 파일을 설치하는 것은 필수 구성 요소에 검사 않습니다. WSMan을 통해 원격 작업을 제대로 수행하려면 필수 구성 요소를 충족 하는지 확인합니다.

이 방법을 사용하여 Microsoft Surface Pro X와 같은 컴퓨터에 ARM 기반 버전의 PowerShell을 설치합니다. 최상의 결과를 위해서는 $env:ProgramFiles\PowerShell\7 폴더에 PowerShell을 설치하세요.

.NET 전역 도구로 설치

.NET Core SDK이미 설치된 경우 PowerShell을 .NET Global 도구설치할 수 있습니다.

dotnet tool install --global PowerShell

dotnet 도구 설치 관리자가 환경 변수에 $env:PATH 추가합니다$HOME\.dotnet\tools. 그러나 현재 실행 중인 셸에는 업데이트 $env:PATH된 셸이 없습니다. 새 셸에서 pwsh를 입력하여 PowerShell을 시작할 수 있습니다.

Microsoft Store에서 설치

Microsoft Store에서 PowerShell을 설치할 수 있습니다. 이 PowerShell 릴리스는 Microsoft Store 사이트 또는 Windows의 Microsoft Store 애플리케이션에서 찾을 수 있습니다.

Microsoft Store 패키지의 이점:

  • Windows에 바로 기본 제공되는 자동 업데이트
  • Intune 및 Configuration Manager 같은 기타 소프트웨어 배포 메커니즘과 통합
  • x86, x64 또는 Arm64 프로세서를 사용하여 Windows 시스템에 설치할 수 있습니다.

알려진 제한 사항

기본적으로 Windows 스토어 패키지는 일부 파일 시스템 및 레지스트리 위치에 대한 액세스를 가상화하는 애플리케이션 샌드박스에서 실행됩니다. 가상화된 파일 및 레지스트리 위치에 대한 변경 내용은 애플리케이션 샌드박스 외부에서 유지되지 않습니다.

이 샌드박스는 애플리케이션의 루트 폴더에 대한 모든 변경 내용을 차단합니다. $PSHOME에 저장된 시스템 수준 구성 설정은 수정할 수 없습니다. 여기에는 WSMAN 구성이 포함됩니다. 그러므로 원격 세션에서 PowerShell의 저장소 기반 설치에 연결할 수 없습니다. 사용자 수준 구성 및 SSH 원격이 지원됩니다.

다음 명령에는 $PSHOME에 대한 쓰기가 필요합니다. PowerShell의 Microsoft Store 인스턴스에서는 이러한 명령이 지원되지 않습니다.

  • Register-PSSessionConfiguration
  • Update-Help -Scope AllUsers
  • Enable-ExperimentalFeature -Scope AllUsers
  • Set-ExecutionPolicy -Scope LocalMachine

자세한 내용은 Windows에서 패키지된 데스크톱 앱이 실행되는 방식의 이해를 참조 하세요.

PowerShell 7.2의 변경 내용

PowerShell 7.2부터 이제 PowerShell 패키지는 파일 및 레지스트리 가상화에서 제외됩니다. 이제 가상화된 파일 및 레지스트리 위치에 대한 변경 내용이 애플리케이션 샌드박스 외부에서 유지됩니다. 그러나 애플리케이션의 루트 폴더에 대한 변경 내용은 계속 차단됩니다.

Important

이 예외가 작동하려면 Windows 빌드 1903 이상에서 실행해야 합니다.

미리 보기 버전 설치

PowerShell 7의 미리 보기 릴리스는 PowerShell의 미리 보기가 아닌 릴리스와 함께 실행할 수 있도록 설치 $env:ProgramFiles\PowerShell\7-preview 됩니다. PowerShell 7.4는 다음 미리 보기 릴리스입니다.

기존 설치 업그레이드

업그레이드할 때 최상의 결과를 위해서는 PowerShell을 처음 설치할 때 사용한 것과 동일한 설치 방법을 사용해야 합니다. PowerShell이 설치된 방법을 잘 모르는 경우 변수 값을 $PSHOME 검사 수 있습니다. 이 값은 항상 현재 세션이 실행 중인 PowerShell이 포함된 디렉터리를 가리킵니다.

  • 값이면 $HOME\.dotnet\tools.NET Global 도구와 함께 PowerShell이 설치되었습니다.
  • 값이면 PowerShell이 $Env:ProgramFiles\PowerShell\7MSI 패키지설치되었거나 X86 또는 x64 프로세서가 있는 컴퓨터에 Winget이 설치되었습니다.
  • 값이 시작$Env:ProgramFiles\WindowsApps\되면 PowerShell이 Microsoft Store 패키지설치되거나 ARM 프로세서가 있는 컴퓨터의 Winget이 설치됩니다.
  • 값이 다른 경우 PowerShell이 ZIP 패키지설치되었을 가능성이 높습니다.

MSI 패키지를 통해 설치한 경우 해당 정보는 프로그램 및 기능 제어판 표시됩니다.

Winget을 사용하여 PowerShell을 업그레이드할 수 있는지 여부를 확인하려면 다음 명령을 실행합니다.

winget list --name PowerShell --upgrade-available

사용 가능한 업그레이드가 있는 경우 출력은 사용 가능한 최신 버전을 나타냅니다.

참고 항목

업그레이드할 때 PowerShell은 LTS 버전에서 비 LTS 버전으로 업그레이드되지 않습니다. 예를 들어 7.2.3에서 7.2.19로 최신 버전의 LTS로만 업그레이드됩니다. LTS 릴리스에서 안정적인 최신 버전 또는 다음 LTS로 업그레이드하려면 해당 릴리스의 MSI를 사용하여 새 버전을 설치해야 합니다.

설치된 버전이 LTS 버전이 아닌 경우 PowerShell은 안정적인 최신 버전으로 업그레이드됩니다.

Windows 10 IoT Enterprise에 배포

Windows 10 IoT Enterprise는 PowerShell 7을 배포하는 데 사용할 수 있는 Windows PowerShell과 함께 제공됩니다.

# Replace the placeholder information for the following variables:
$deviceip = '<device ip address'
$zipfile = 'PowerShell-7.4.2-win-arm64.zip'
$downloadfolder = 'u:\users\administrator\Downloads'  # The download location is local to the device.
    # There should be enough  space for the zip file and the unzipped contents.

# Create PowerShell session to target device
Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip
$S = New-PSSession -ComputerName $deviceIp -Credential Administrator
# Copy the ZIP package to the device
Copy-Item $zipfile -Destination $downloadfolder -ToSession $S

#Connect to the device and expand the archive
Enter-PSSession $S
Set-Location u:\users\administrator\Downloads
Expand-Archive .\PowerShell-7.4.2-win-arm64.zip

# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.4.2-win-arm64
# Be sure to use the -PowerShellHome parameter otherwise it tries to create a new
# endpoint with Windows PowerShell 5.1
.\Install-PowerShellRemoting.ps1 -PowerShellHome .

PowerShell 원격을 설정하면 오류 메시지가 표시되고 디바이스에서 연결이 끊어집니다. PowerShell은 WinRM을 다시 시작해야 합니다. 이제 디바이스에서 PowerShell 7 엔드포인트에 연결할 수 있습니다.


# Be sure to use the -Configuration parameter. If you omit it, you connect to Windows PowerShell 5.1
Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.4.2

Windows 10 IoT Core에 배포

Windows 10 IoT Core는 PowerShell 7을 배포하는 데 사용할 수 있는 IOT_POWERSHELL 기능을 포함하면 Windows PowerShell을 추가합니다. Windows 10 IoT Enterprise에 대해 위에서 정의한 단계는 IoT Core에서도 수행할 수 있습니다.

배송 이미지에 최신 PowerShell을 추가하려면 Import-PSCoreRelease 명령을 사용하여 패키지를 작업 영역에 포함하고 이미지에 OPENSRC_POWERSHELL 기능을 추가 합니다.

참고 항목

ARM64 아키텍처의 경우 IOT_POWERSHELL을 포함할 때 Windows PowerShell이 추가되지 않습니다. 따라서 zip 기반 설치가 작동하지 않습니다. Import-PSCoreRelease 명령을 사용하여 이미지에 추가해야 합니다.

Nano 서버에 배포

이러한 지침에서는 Nano 서버가 이미 실행 중인 PowerShell 버전이 있는 "헤드리스" OS라고 가정합니다. 자세한 내용은 Nano 서버 이미지 작성기 설명서를 참조하세요.

PowerShell 이진 파일은 두 가지 방법을 사용하여 배포할 수 있습니다.

  1. 오프라인 - Nano 서버 VHD를 탑재하고 zip 파일의 내용을 탑재된 이미지 내의 선택한 위치에 압축을 풉니다.
  2. 온라인 - PowerShell 세션을 통해 zip 파일을 전송하고 선택한 위치에서 압축을 풉

두 경우 모두 Windows x64 ZIP 릴리스 패키지필요합니다. PowerShell의 "관리이스트레이터" 인스턴스 내에서 명령을 실행합니다.

PowerShell의 오프라인 배포

  1. 자주 사용하는 zip 유틸리티로 패키지를 탑재된 Nano 서버 이미지 내의 디렉터리에 압축을 풉니다.
  2. 이미지를 분리하고 부팅합니다.
  3. Windows PowerShell의 기본 제공 인스턴스에 연결합니다.
  4. 지침에 따라 "다른 인스턴스 기술"을 사용하여 원격 엔드포인트를 만듭니다.

PowerShell의 온라인 배포

다음 단계를 사용하여 Nano 서버에 PowerShell을 배포합니다.

# Replace the placeholder information for the following variables:
$ipaddr = '<Nano Server IP address>'
$credential = Get-Credential # <An Administrator account on the system>
$zipfile = 'PowerShell-7.4.2-win-x64.zip'
# Connect to the built-in instance of Windows PowerShell
$session = New-PSSession -ComputerName $ipaddr -Credential $credential
# Copy the file to the Nano Server instance
Copy-Item $zipfile c:\ -ToSession $session
# Enter the interactive remote session
Enter-PSSession $session
# Extract the ZIP file
Expand-Archive -Path C:\PowerShell-7.4.2-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'

WSMan 기반 원격을 원하는 경우 지침에 따라 "다른 인스턴스 기술"을 사용하여 원격 엔드포인트를 만듭니다.

PowerShell 원격 기능

PowerShell은 WSMan 및 SSH와 함께 PowerShell Remoting Protocol(PSRP)을 지원합니다. 자세한 내용은 다음을 참조하세요.

이전 버전의 Windows에서 WSMan을 통해 PowerShell 원격을 사용하도록 설정하려면 다음 필수 조건을 충족해야 합니다.

  • 필요한 경우 WMF(Windows Management Framework) 5.1을 설치합니다. WMF에 대한 자세한 내용은 WMF 개요를 참조하세요.
  • Windows 10을 이전하는 Windows 버전에 유니버설 C 런타임 을 설치합니다. 직접 다운로드 또는 Windows 업데이트 통해 사용할 수 있습니다. 완전히 패치된 시스템에는 이미 이 패키지가 설치되어 있습니다.

지원되는 Windows 버전

다음 표는 현재 지원되는 PowerShell 릴리스 및 해당 릴리스가 지원되는 Windows 버전의 목록입니다. 이러한 버전은 PowerShell 버전이 지원 종료에 도달하거나 Windows 버전이 지원 종료에 도달할 때까지 지원됩니다.

  • 아이콘은 지원됨 OS 또는 PowerShell의 버전이 계속 지원됨을 나타냅니다.
  • 아이콘은 지원 중단 해당 버전의 OS에서 PowerShell 버전이 더 이상 지원되지 않음을 나타냅니다.
  • 아이콘은 테스트 중 해당 OS에서 PowerShell 테스트를 완료하지 않았음을 나타냅니다.
  • 아이콘은 지원되지 않음 OS 또는 PowerShell의 버전이 지원되지 않음을 나타냅니다.
  • OS 버전과 PowerShell 버전 모두 아이콘이 있는 지원됨 경우 해당 조합이 지원됩니다.
Windows 7.2(LTS 이전) 7.3 7.4(LTS-current)
지원됨 Windows Server 2016, 2019 또는 2022 지원 지원 지원됨
지원됨 Windows Server Nano(1809 이상) 지원 지원 지원됨
지원됨 Windows 11 지원 지원 지원됨
지원됨 Windows 10 1607+ 지원 지원 지원됨

참고 항목

특정 버전의 Windows에 대한 지원은 Microsoft 지원 수명 주기 정책에 따라 결정됩니다. 자세한 내용은 다음을 참조하세요.

PowerShell은 다음 프로세서 아키텍처에 대해 Windows에서 지원됩니다.

Windows 7.2(LTS-current) 7.3 7.4(LTS-current)
Windows Server 2016+ x64, x86 x64, x86 x64, x86
Windows Server Core 2016+ x64, x86 x64, x86 x64, x86
Nano 서버 버전 1803 이상 X64 X64 X64
Windows 11 클라이언트 x64, Arm64 x64, Arm64 x64, Arm64
Windows 10 클라이언트 x64, x86, Arm64 x64, x86, Arm64 x64, x86, Arm64

를 실행winver.exe하여 사용 중인 버전을 검사 수 있습니다.

설치 지원

Microsoft는 이 문서의 설치 방법을 지원합니다. 다른 원본에서 사용할 수 있는 다른 타사 설치 방법이 있을 수 있습니다. 관련 도구 및 방법이 유효하더라도 Microsoft에서는 해당 방법을 지원할 수 없습니다.