맨위로가기 타임라인 바로가기

파워셸

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
타임라인 바로가기

1. 개요

파워셸은 마이크로소프트가 개발한 객체 지향 스크립팅 언어이자 윈도우 운영체제 및 관련 제품을 위한 명령줄 셸이다. 기존의 윈도우 명령줄 도구의 한계를 극복하기 위해 개발되었으며, 윈도우, .NET 프레임워크, WMI 등 기존 API를 활용하여 관리자 친화적인 인터페이스를 제공한다. 파워셸은 2006년 윈도우 파워셸 1.0 버전 출시 이후, 여러 버전의 업데이트를 거쳐 2016년 오픈 소스로 전환되었고, 윈도우, macOS, Linux 등 다양한 플랫폼을 지원한다. 파워셸은 cmdlet이라는 특수한 명령어를 사용하여 작업을 수행하며, 파이프라인을 통해 cmdlet의 출력을 다른 cmdlet의 입력으로 전달하는 기능을 제공한다.

더 읽어볼만한 페이지

  • 2006년 개발된 프로그래밍 언어 - Sass (스타일시트 언어)
    Sass는 CSS 전처리기로, CSS를 확장하여 변수, 중첩, 믹스인 등의 기능을 제공해 CSS 개발을 효율적으로 만들며, 다양한 구현체와 IDE 지원을 갖는다.
  • 셸 - COMMAND.COM
    COMMAND.COM은 MS-DOS 운영체제에서 명령줄 인터페이스를 제공하는 명령어 해석기로, 파일 관리 및 프로그램 실행 등의 작업을 수행하며, 윈도우 9x에서 MS-DOS 호환성을 위해, FreeDOS에서는 핵심 구성 요소로 사용된다.
  • 셸 - REPL
    REPL은 사용자의 입력을 읽고 평가하여 결과를 출력하는 과정을 반복하는 인터랙티브한 프로그래밍 환경으로, 인터프리터 환경에서 주로 사용되며 소프트웨어 프로토타이핑, 디버깅, 언어 학습에 유용하고 다양한 기능을 제공한다.
  • 텍스트 지향 프로그래밍 언어 - Tcl
    Tcl은 존 오스터하우트가 개발한 명령어 기반의 프로그래밍 언어로, Tk 툴킷과 결합하여 GUI 스크립팅 환경으로 발전했으며, 다양한 운영체제에서 사용 가능하고 C, C++, Java 등 다른 언어와의 인터페이스를 지원한다.
  • 텍스트 지향 프로그래밍 언어 - PHP
    PHP는 라스무스 러도프가 개발한 범용 스크립팅 언어로, 웹 개발에 널리 사용되며 LAMP 아키텍처의 핵심 요소이다.
파워셸 - [IT 관련 정보]에 관한 문서
기본 정보
파워셸 코어 6.0 아이콘
파워셸 코어 6.0 아이콘
일반 정보
종류명령형, 파이프, 객체 지향, 함수형, 반영
발표일2006년 11월 14일
개발자마이크로소프트
최신 버전7.4.6
최신 버전 발표일2024년 10월 22일
프로그래밍 언어C#
운영 체제윈도우 7 이상
윈도우 서버 2008 R2 이상
macOS 10.12 이상
우분투 14.04, 16.04, 18.04, 20.04 및 22.04
데비안 8.7+, 9, 10 및 11
CentOS 7 및 8
RHEL 7 및 8
오픈수세 42.2, 42.3, 15.0, 15.1, 15.2
페도라 28, 29, 30
플랫폼파워셸: .NET
윈도우 파워셸: .NET Framework
라이선스MIT 라이선스 (윈도우 구성 요소는 독점)
파일 확장자.ps1 (스크립트)
.ps1xml (XML 문서)
.psc1 (콘솔 파일)
.psd1 (데이터 파일)
.psm1 (스크립트 모듈)
.pssc (세션 구성 파일)
.psrc (역할 기능 파일)
.cdxml (Cmdlet 정의 XML 문서)
영향을 받은 언어파이썬, Ksh, , C#, CL, DCL, SQL, Tcl, Tk, Chef, Puppet
타이핑강한 형 , 안전, 암시적 및 동적
디자이너제프리 스노버, 브루스 파예트, 제임스 트루허 등
윈도우 파워셸
포함된 운영 체제윈도우 7
윈도우 8
윈도우 8.1
윈도우 10
윈도우 서버 2008 R2 이후
사용 가능 운영 체제윈도우 XP
윈도우 비스타
윈도우 서버 2003
윈도우 서버 2008
관련 구성 요소cmd.exe

2. 역사적 배경

파워셸은 기존의 윈도우 명령줄 도구(COMMAND.COM, cmd.exe)와 스크립팅 환경(Windows Script Host)의 한계를 극복하기 위해 개발되었다.

MS-DOS와 Xenix는 명령줄 인터프리터(CLI)에 거의 전적으로 의존했다.[10] Windows 9x 계열에는 COMMAND.COM이, Windows NT 및 Windows CE 계열에는 cmd.exe가 제공되었다.[10] 이들은 몇 가지 기본적인 내부 명령어와 원시적인 스크립팅 언어(배치 파일)를 지원했지만, Windows 그래픽 사용자 인터페이스(GUI)의 모든 측면을 자동화할 수는 없었다.[10]

마이크로소프트는 1998년 Windows 98에서 Windows Script Host(WSH)를 도입하여 이러한 단점을 해결하려 했다.[10] WSH는 Active Script 엔진과 통합되어 JScript 및 VBScript와 같은 언어로 스크립트를 작성할 수 있게 하고, COM을 통해 API를 활용했다.[10] 그러나 설명서가 접근하기 어렵고, 컴퓨터 바이러스가 보안 취약점을 악용하면서 시스템 취약점으로 알려지게 되었다.[10] Windows Server 2003에서도 스크립팅 지원은 여전히 불만족스러웠다.[10]

== Kermit ==

1990년대 후반, 인텔은 윈도우즈가 미래 인텔 CPU 개발을 지원하는 데 더 적합한 플랫폼이 될 수 있도록 마이크로소프트에 도움을 요청했다.[11] 당시 인텔 CPU 개발은 RISC 아키텍처 CPU에서 오라클 솔라리스(유닉스 계열)를 구동하는 썬 마이크로시스템즈 컴퓨터에서 이루어졌다.[11] 윈도우즈에서 인텔의 많은 콘 셸 자동화 스크립트를 실행할 수 있는 기능이 핵심 기능으로 인식되었다.[11] 마이크로소프트는 내부적으로 Kermit이라는 코드명으로 윈도우즈용 콘 셸 포팅 작업을 시작했다.[11] 인텔은 궁극적으로 리눅스 기반 개발 플랫폼으로 전환하여 Kermit 프로젝트를 불필요하게 만들었다.[11] 그러나 마이크로소프트 프로그램 매니저 제프리 스노버는 마이크로소프트의 관리 자동화 문제에 대한 보다 범용적인 솔루션을 만들 기회가 있음을 깨달았다.[11]

== Monad ==

2002년 8월, 제프리 스노버(Jeffrey Snover)는 "Monad Manifesto"라는 백서를 통해 명령줄 관리에 대한 새로운 접근 방식을 제시했다.[12] 2017년 인터뷰에서 스노버는 윈도우와 리눅스 간의 핵심 아키텍처 차이 때문에 윈도우에서 유닉스 도구를 사용할 수 없었다고 설명했다.[13] 리눅스는 모든 것을 텍스트 파일로 간주하는 반면, 윈도우는 모든 것을 "구조화된 데이터를 반환하는 API(애플리케이션 프로그래밍 인터페이스)"로 간주하는데, 이는 근본적으로 호환되지 않아 다른 접근 방식을 취하게 했다.[13]

Monad는 광범위한 핵심 관리 작업을 자동화할 수 있는 새로운 확장 가능한 CLI였다. 마이크로소프트는 2003년 10월 로스앤젤레스에서 열린 전문 개발자 컨퍼런스에서 Monad를 처음으로 공개 시연했다.[12]

== PowerShell ==

첫 번째 PowerShell 버전


2002년, 제프리 스노버는 모나드(Monad)라는 새로운 셸 및 스크립팅 언어의 필요성을 제기했고, 2003년에 그 개념을 발표했다.[14] 2006년 4월 25일, 모나드(Monad)는 '''윈도우 파워셸(Windows PowerShell)'''로 이름이 변경되었고, 마이크로소프트 관리 기술 제품군의 핵심 구성 요소로 자리매김한다고 발표되었다.[14] 동시에 PowerShell의 릴리스 후보(RC) 1이 출시되었다.

PowerShell 버전 1.0은 2006년 11월 14일에 웹 릴리스(RTW) 형태로 출시되었다.[15] 이전 버전의 Windows용 PowerShell은 2007년 1월 30일에 출시되었다.[15] 마이크로소프트는 주요 GUI 도구들이 PowerShell 기반으로 구축될 것이며, 주요 관리 기능이 스크립트 가능해질 것이라고 밝혔다.

PowerShell v2.0 개발은 PowerShell v1.0 출시 전에 시작되었다. PowerShell v2.0은 2009년 8월 Windows 7 및 Windows Server 2008 R2의 필수 구성 요소로 출시되었다.[16] Windows XP, Windows Server 2003, Windows Vista 및 Windows Server 2008용 PowerShell 버전은 2009년 10월에 출시되었다.[16] 2009년 10월, ''TechNet Magazine''은 PowerShell에 대한 숙련도를 "향후 몇 년 동안 Windows 관리자가 필요로 하는 가장 중요한 단일 기술"이라고 언급했다.[17]

우분투 22.10에서 실행되는 Linux용 PowerShell 7.3.1


2016년 8월 18일, 마이크로소프트는 PowerShell을 오픈 소스로 만들고 macOS, CentOS 및 우분투를 지원하는 크로스 플랫폼으로 만들었다고 발표했다.[19][20] 소스 코드는 GitHub에 게시되었다.[21] 오픈 소스로 전환하면서 ".NET Core"에서 실행되는 "PowerShell Core"라는 두 번째 PowerShell 버전이 만들어졌다.[22] 이는 전체 .NET Framework에서 실행되는 "Windows PowerShell"과는 다르다.[22] PowerShell Core는 버전 5.1부터 Windows Server 2016 Nano Server에 포함되어 있다.[23][24] 2018년 1월, PowerShell Core 6.0이 출시되었으며, .NET Core 2.0을 런타임으로 사용하여 Windows, macOS, Linux에서 동작하게 되었다.[151][149][152]

2. 1. Kermit

1990년대 후반, 인텔은 자사의 CPU를 사용하는 윈도우즈가 미래 인텔 CPU 개발을 지원하는 데 더 적합한 플랫폼이 될 수 있도록 마이크로소프트에 도움을 요청했다.[11] 당시 인텔 CPU 개발은 RISC 아키텍처 CPU에서 오라클 솔라리스(유닉스 계열)를 구동하는 썬 마이크로시스템즈 컴퓨터에서 이루어졌다. 윈도우즈에서 인텔의 많은 콘 셸 자동화 스크립트를 실행할 수 있는 기능이 핵심 기능으로 인식되었다. 마이크로소프트는 내부적으로 Kermit이라는 코드명으로 윈도우즈용 콘 셸 포팅 작업을 시작했다.[11] 인텔은 궁극적으로 인텔 CPU에서 실행될 수 있는 리눅스 기반 개발 플랫폼으로 전환하여 Kermit 프로젝트를 불필요하게 만들었다. 그러나 충분한 자금을 지원받은 팀을 이끌던 마이크로소프트 프로그램 매니저 제프리 스노버는 마이크로소프트의 관리 자동화 문제에 대한 보다 범용적인 솔루션을 만들 기회가 있음을 깨달았다.

2. 2. Monad

2002년 8월, 제프리 스노버(Jeffrey Snover)는 "Monad Manifesto"라는 백서를 통해 명령줄 관리에 대한 새로운 접근 방식을 제시했다.[12] 2017년 인터뷰에서 스노버는 윈도우와 리눅스 간의 핵심 아키텍처 차이 때문에 윈도우에서 유닉스 도구를 사용할 수 없었다고 설명했다.[13] 리눅스는 모든 것을 텍스트 파일로 간주하는 반면, 윈도우는 모든 것을 "구조화된 데이터를 반환하는 API(애플리케이션 프로그래밍 인터페이스)"로 간주하는데, 이는 근본적으로 호환되지 않아 다른 접근 방식을 취하게 했다.[13]

Monad는 광범위한 핵심 관리 작업을 자동화할 수 있는 새로운 확장 가능한 CLI였다. 마이크로소프트는 2003년 10월 로스앤젤레스에서 열린 전문 개발자 컨퍼런스에서 Monad를 처음으로 공개 시연했다.[12]

2. 3. PowerShell



2002년, 제프리 스노버는 모나드(Monad)라는 새로운 셸 및 스크립팅 언어의 필요성을 제기했고, 2003년에 그 개념을 발표했다.[14] 2006년 4월 25일, 모나드(Monad)는 '''윈도우 파워셸(Windows PowerShell)'''로 이름이 변경되었고, 마이크로소프트 관리 기술 제품군의 핵심 구성 요소로 자리매김한다고 발표되었다.[14] 동시에 PowerShell의 릴리스 후보(RC) 1이 출시되었다.

PowerShell 버전 1.0은 2006년 11월 14일에 웹 릴리스(RTW) 형태로 출시되었다.[15] 이전 버전의 Windows용 PowerShell은 2007년 1월 30일에 출시되었다.[15] 마이크로소프트는 주요 GUI 도구들이 PowerShell 기반으로 구축될 것이며, 주요 관리 기능이 스크립트 가능해질 것이라고 밝혔다.

PowerShell v2.0 개발은 PowerShell v1.0 출시 전에 시작되었다. PowerShell v2.0은 2009년 8월 Windows 7 및 Windows Server 2008 R2의 필수 구성 요소로 출시되었다.[16] Windows XP, Windows Server 2003, Windows Vista 및 Windows Server 2008용 PowerShell 버전은 2009년 10월에 출시되었다.[16] 2009년 10월, ''TechNet Magazine''은 PowerShell에 대한 숙련도를 "향후 몇 년 동안 Windows 관리자가 필요로 하는 가장 중요한 단일 기술"이라고 언급했다.[17]

2016년 8월 18일, 마이크로소프트는 PowerShell을 오픈 소스로 만들고 macOS, CentOS 및 우분투를 지원하는 크로스 플랫폼으로 만들었다고 발표했다.[19][20] 소스 코드는 GitHub에 게시되었다.[21] 오픈 소스로 전환하면서 ".NET Core"에서 실행되는 "PowerShell Core"라는 두 번째 PowerShell 버전이 만들어졌다.[22] 이는 전체 .NET Framework에서 실행되는 "Windows PowerShell"과는 다르다.[22] PowerShell Core는 버전 5.1부터 Windows Server 2016 Nano Server에 포함되어 있다.[23][24] 2018년 1월, PowerShell Core 6.0이 출시되었으며, .NET Core 2.0을 런타임으로 사용하여 Windows, macOS, Linux에서 동작하게 되었다.[151][149][152]

3. 설계

wikitext

PowerShell의 핵심 설계 전략은 윈도우, 윈도우 관리 도구(WMI), .NET 프레임워크 및 기타 소프트웨어에 이미 존재하는 다수의 API를 활용하는 것이었다.[25] PowerShell cmdlet은 기존 기능을 "감싸는" 역할을 한다. 이 전략의 의도는 관리자와 광범위한 기본 기능 간에 관리자 친화적이고 더욱 일관된 인터페이스를 제공하는 것이다. PowerShell을 사용하면 관리자는 .NET, WMI 또는 저수준 API 코딩을 알 필요가 없으며, 대신 PowerShell에서 제공하는 cmdlet 사용에 집중할 수 있다. 이러한 측면에서 PowerShell은 새로운 기능을 거의 생성하지 않고 기존 기능을 특정 대상에게 더욱 접근 가능하게 만드는 데 중점을 둔다.[25]

PowerShell영어(파워셸)은 객체 지향 언어이며[159], 다양한 기본 기능을 가진 여러 구성 요소들을 조합한 작업들로 구성된다. 구성 요소는 '''cmdlet'''(커맨들릿)이라 불리는 프로그램이며, 그 실체는 .NET영어(.NET)의 클래스이다。

커맨들릿 간의 데이터 전달은 고전적인 UNIX영어(유닉스)형 접근 방식(텍스트 입출력을 파이프하는 방식)과 달리, 객체(구조화된 데이터)를 통해 이루어진다. 명령줄에서 개별적으로 접근하는 경우, 커맨들릿의 출력은 자동으로 텍스트로 변환되지만, 출력이 다른 커맨들릿으로 전달되는 경우에는 해당 커맨들릿의 입력으로 가장 적합한 형식으로 변환되어 전달된다. 이를 통해 UNIX영어(유닉스)형 시스템에서 일반적인 텍스트 처리 유틸리티(grep영어(grep)이나 awk영어(awk) 등)가 불필요하게 되고, 대화형으로 또는 스크립트 환경(더 복잡한 프로그래밍 언어가 필요)에서 다양한 커맨들릿을 결합할 수 있다. 예를 들어, 프로세스 목록을 출력하는 경우, 단순한 텍스트 목록이 아니라 프로세스 정보를 나타내는 객체 목록이다. 따라서 명시적으로 외부 구조나 라이브러리를 사용하지 않고도 해당 객체에 직접 메서드를 적용할 수 있다.

Windows PowerShell/PowerShell Core는 다음과 같은 기능을 포함한다.


  • 객체 지향 언어임[160]
  • 파이프라인을 사용할 수 있음
  • 오픈 소스임 (PowerShell Core)[161]
  • 기본 문자 코드는 Windows PowerShell의 경우 Shift-JIS(일본어 환경의 경우), PowerShell Core의 경우 UTF-8임[162]
  • 실행 파일명은 Windows PowerShell의 경우 `powershell.exe`, PowerShell Core의 경우 `pwsh.exe`임[163][164]
  • 스크립트 언어. 해시 테이블, 정규 표현식을 사용한 `switch`문, 배열의 슬라이싱, 익명 메서드 등의 기능. 반복문 구문(`for`, `foreach`, `while`), 조건문(`if`, `switch`), 변수의 범위(`global`, `script`, `local`), 함수 정의 등을 지원함.
  • 사용자가 오류 처리 방법 등 공통 설정을 지정하기 위해, cmdlet은 특정 옵션을 상속한다. 부작용이 있는 cmdlet은 `-WhatIf`, `-Confirm` 옵션을 지원한다. `-WhatIf`는 사용자에게 무슨 일이 일어날지 알려주지만 실제로는 아무것도 하지 않는다. `-Confirm`은 사용자에게 무슨 일이 일어날지 알려주고 실행할지 확인한다.
  • 오류 처리를 제어하는 옵션에 "일시 정지" 기능이 있다. 이는 사용자가 새로운 명령줄 셸로 들어가 문제를 분석하고 원래 명령으로 돌아갈 수 있도록 하는 것이다.
  • 확장 가능한 "프로바이더" 모델을 통해 파일 시스템과 같은 계층적 데이터 구조를 처리할 수 있다. 예를 들어, PowerShell에는 시스템 레지스트리에 액세스하는 레지스트리 프로바이더가 있다. 이를 사용하면 예를 들어 셸 프롬프트에서 다음과 같은 명령을 입력하여 레지스트리 내용을 표시할 수 있다.
    `dir HKLM:SOFTWARE\Microsoft`
    PowerShell에는 인증 저장소, 환경 변수, 셸 기능 및 별칭 등의 프로바이더가 있다. 프로바이더 모델은 cmdlet과 마찬가지로 확장 가능하며, 제3자가 독자적인 프로바이더를 만들어 PowerShell에 통합할 수 있다.
  • "실행 정책 (execution policies)"이라는 개념을 통해 PowerShell에 의한 스크립트 실행에 대한 대략적인 보안 제약을 부과할 수 있다. 실행 정책은 PowerShell이 설정 파일을 읽고 스크립트를 실행하기 위한 제약 조건을 정의한다. Restricted, AllSigned, RemoteSigned, Unrestricted라는 네 가지 실행 정책이 있다.
  • 스크립트 작성자 식별 및 스크립트 안전성 보장을 위해 디지털 서명으로 스크립트에 서명할 수 있다.
  • 일반적으로 명령줄 옵션은 생략하지 않고 완전한 영단어를 사용하지만, 모호하지 않은 범위 내에서 문자 수를 줄일 수 있다. 예를 들어, `-show-detailed-information` 옵션은 다른 "s"로 시작하는 옵션이 없다면 `-s`로 지정할 수 있다.
  • 사용자 정의 탭 완성 기능을 사용할 수 있다. Windows의 `cmd.exe`는 파일 이름과 디렉터리 이름만 완성할 수 있었다.
  • 명령의 출력을 변수에 할당할 수 있다. 이 변수는 객체 또는 객체의 배열이며, 나중에 임의의 방법으로 처리할 수 있다.
  • PowerShell 문이 가변 길이의 객체를 반환하는 경우, 기본적으로 0개인 경우 `$null`을, 1개인 경우 객체를, 2개 이상인 경우 객체 배열을 반환한다. 명시적으로 배열을 반환하려면 `"@()"`로 문을 묶는다.[165]

3. 1. 문법

파워셸의 핵심 문법은 POSIX 1003.2 KornShell을 기반으로 한다.[26] 하지만, PHP, Perl 등 다른 언어의 영향도 받았다.[27] 파워셸은 객체 지향 언어이며[159][160], '''cmdlet'''(커맨들릿)이라 불리는 구성 요소들을 조합하여 작업을 수행한다.

커맨들릿 간의 데이터 전달은 텍스트가 아닌 객체(구조화된 데이터)를 통해 이루어진다. 출력은 다른 커맨들릿으로 전달될 때 해당 커맨들릿의 입력 형식으로 변환된다. 이를 통해 텍스트 처리 유틸리티(grep영어(grep)이나 awk영어(awk) 등)가 불필요하게 되고, 다양한 커맨들릿을 결합하여 사용할 수 있다.

Windows PowerShell/PowerShell Core는 다음과 같은 기능을 포함한다.

  • 파이프라인을 사용할 수 있다.
  • 스크립트 언어이며, 해시 테이블, 정규 표현식을 사용한 `switch`문, 배열의 슬라이싱 등의 기능과 반복문, 조건문, 변수의 범위, 함수 정의 등을 지원한다.
  • cmdlet은 `-WhatIf`, `-Confirm` 옵션을 지원하여 사용자에게 실행될 내용을 미리 알려주거나, 실행 여부를 확인할 수 있다.
  • 확장 가능한 "프로바이더" 모델을 통해 파일 시스템과 같은 계층적 데이터 구조를 처리할 수 있다. 예를 들어, 레지스트리 프로바이더를 사용하여 `dir HKLM:SOFTWARE\Microsoft`와 같이 레지스트리 내용을 표시할 수 있다.
  • "실행 정책 (execution policies)"을 통해 스크립트 실행에 대한 보안 제약을 설정할 수 있다.
  • 디지털 서명으로 스크립트에 서명하여 스크립트 작성자 식별 및 안전성을 보장할 수 있다.
  • 명령줄 옵션은 완전한 영단어를 사용하지만, 모호하지 않은 범위 내에서 문자 수를 줄일 수 있다.
  • 사용자 정의 탭 완성 기능을 사용할 수 있다.
  • 명령의 출력을 객체 또는 객체의 배열인 변수에 할당하여 처리할 수 있다.
  • 파워셸 문이 가변 길이의 객체를 반환하는 경우, 기본적으로 0개는 `$null`, 1개는 객체, 2개 이상은 객체 배열을 반환하며, 명시적으로 배열을 반환하려면 `@()`로 묶어야 한다.[165]

3. 2. Cmdlet

Cmdlet(cmdlet)은 파워셸 환경에서 특정 기능을 구현하는 특수 명령어이자 파워셸 스택의 기본 명령어이다.[31] Cmdlet은 "동사-명사" 명명 패턴(예: `Get-ChildItem`)을 따르므로 자체 문서화 코드가 된다.[31] Cmdlet은 결과를 객체로 출력하고 객체를 입력으로 받을 수 있으므로 파이프라인의 수신자로 사용하기에 적합하다.[31]

Cmdlet은 특수한 .NET 클래스이며, 파워셸 런타임이 실행 시간에 인스턴스화하고 호출한다.[31] Cmdlet은 `Cmdlet` 또는 `PSCmdlet`에서 파생되며, 후자는 Cmdlet이 파워셸 런타임과 상호 작용해야 할 때 사용된다.[31] 이러한 기본 클래스는 특정 메서드(`BeginProcessing()`, `ProcessRecord()` 및 `EndProcessing()`)를 지정하며, Cmdlet 구현은 기능을 제공하기 위해 이러한 메서드를 재정의한다.[32] Cmdlet이 실행될 때마다 파워셸은 이러한 메서드를 순차적으로 호출하며, 파이프라인 입력을 받는 경우 `ProcessRecord()`가 호출된다.[32] 객체 컬렉션이 파이프되는 경우 컬렉션의 각 객체에 대해 메서드가 호출된다.

Cmdlet을 구현하는 클래스에는 하나의 .NET 속성(`CmdletAttribute`)이 있어야 하며, 이 속성은 Cmdlet의 이름을 구성하는 동사와 명사를 지정한다. 일반적인 동사는 열거형으로 제공된다.[33][34]

Cmdlet이 파이프라인 입력이나 명령줄 매개변수 입력을 받는 경우 클래스에 해당하는 속성이 있어야 하며, 변이 메서드 구현이 있어야 한다. 파워셸은 매개변수 값 또는 파이프라인 입력을 사용하여 변이 메서드를 호출하며, 이 값은 변이 메서드 구현에서 클래스 변수에 저장된다. 그런 다음 이러한 값은 기능을 구현하는 메서드에서 참조된다. 명령줄 매개변수에 매핑되는 속성은 `ParameterAttribute`[35]로 표시되며 `BeginProcessing()` 호출 전에 설정된다. 파이프라인 입력에 매핑되는 속성도 `ParameterAttribute`로 둘러싸여 있지만 `ValueFromPipeline` 속성 매개변수가 설정되어 있다.[36]

이러한 Cmdlet 클래스의 구현은 모든 .NET API를 참조할 수 있으며, 모든 .NET 언어로 작성될 수 있다. 또한 파워셸은 `WriteObject()`와 같이 특정 API(예: 결과 객체를 파이프라인에 쓰는 것)에 액세스하는 데 사용되는 파워셸 관련 기능에 액세스할 수 있는 특정 API를 제공한다. Cmdlet은 .NET 데이터 액세스 API를 직접 사용하거나 고유한 경로를 사용하여 데이터 저장소에 액세스할 수 있도록 하는 파워셸의 파워셸 ''프로바이더'' 인프라를 사용할 수 있다. 데이터 저장소는 드라이브 문자를 사용하여 노출되며, 계층 구조 내에서 디렉터리로 주소 지정된다. Windows 파워셸은 파일 시스템, 레지스트리, 인증서 저장소, 명령어 별칭, 변수 및 함수에 대한 네임스페이스에 대한 프로바이더를 제공한다.[37]

Windows 파워셸에는 파일 시스템 또는 Windows 관리 계측을 사용하여 Windows 구성 요소를 제어하는 것을 포함하여 다양한 Windows 시스템을 관리하기 위한 다양한 Cmdlet이 포함되어 있다. 다른 응용 프로그램은 Cmdlet을 파워셸에 등록하여 관리할 수 있으며, 데이터 저장소(예: 데이터베이스)를 포함하는 경우 특정 프로바이더를 추가할 수도 있다.

기본 파워셸 설치에 포함된 Cmdlet의 수는 일반적으로 버전마다 증가했다.

버전Cmdlet 수참조
Windows PowerShell 1.0129[38]
Windows PowerShell 2.0632[39]
Windows PowerShell 3.0약 1,000[40]
Windows PowerShell 4.0
Windows PowerShell 5.0약 1,300[41]
Windows PowerShell 5.11,586
PowerShell Core 6.0
PowerShell Core 6.1
PowerShell Core 6.2
PowerShell 7.01,507
PowerShell 7.1
PowerShell 7.2
PowerShell 7.41,656


3. 3. Pipeline

PowerShell은 cmdlet의 출력을 다른 cmdlet의 입력으로 전달하는 파이프라인(파이프라인) 개념을 구현한다.[42] 유닉스 파이프라인처럼 `|` 연산자를 사용하여 복잡한 명령을 구성할 수 있지만, PowerShell 파이프라인은 운영 체제에 의해 조정되는 프로세스 집합이 아니라 PowerShell 런타임 내에서 단계가 실행된다는 차이점이 있다.[42] 또한, 바이트 스트림이 아닌 구조화된 .NET 객체를 전달하여 데이터 처리 효율성을 높였다.[42]

.NET 객체를 사용하고 PowerShell 런타임 내에서 단계를 실행하면 데이터 구조를 직렬화하거나 텍스트 출력을 명시적으로 파싱하여 추출할 필요가 없다.[42] 객체는 포함된 데이터에서 작동하는 특정 함수를 캡슐화할 수 있으며, 이는 수신 명령이 사용할 수 있게 된다.[43][44] 파이프라인의 마지막 cmdlet의 경우, PowerShell은 자동으로 해당 출력 개체를 `Out-Default` cmdlet으로 파이프하여 형식 개체 스트림으로 변환한 다음 화면에 렌더링한다.[45][46]

모든 PowerShell 개체는 .NET 개체이므로, 개체의 데이터에 대한 텍스트 표현을 검색하는 `.ToString()` 메서드를 공유한다. PowerShell은 형식 정의를 지정하여 개체의 텍스트 표현을 사용자 지정할 수 있도록 허용한다.[47] 그러나 하위 호환성을 위해 파이프라인에서 외부 실행 파일을 사용하는 경우, PowerShell 형식 시스템과 직접 통합하는 대신 개체를 나타내는 텍스트 스트림을 수신한다.[47][48][49]

cmdlet 간의 데이터 전달은 텍스트 입출력을 파이프하는 고전적인 유닉스 방식과 달리, 구조화된 데이터인 객체를 통해 이루어진다. 명령줄에서 개별적으로 접근하는 경우, cmdlet의 출력은 자동으로 텍스트로 변환되지만, 출력이 다른 cmdlet으로 전달되는 경우에는 해당 cmdlet의 입력으로 가장 적합한 형식으로 변환되어 전달된다. 이를 통해 유닉스형 시스템에서 일반적인 텍스트 처리 유틸리티(grep이나 awk 등)가 불필요하게 되고, 대화형으로 또는 스크립트 환경에서 다양한 cmdlet을 결합할 수 있다. 예를 들어, 프로세스 목록을 출력하는 경우, 단순한 텍스트 목록이 아니라 프로세스 정보를 나타내는 객체 목록이므로, 명시적으로 외부 구조나 라이브러리를 사용하지 않고도 해당 객체에 직접 메서드를 적용할 수 있다.

3. 4. Scripting

파워셸은 cmdlet을 사용하여 명령형 방식으로 복잡한 작업을 구현할 수 있는 동적 타이핑 스크립팅 언어를 포함하고 있다.[50] 이 스크립팅 언어는 변수, 함수, 분기(if-then-else), 반복문(while, do, for, 및 foreach), 구조화된 오류/예외 처리 및 클로저/람다 표현식[50]뿐만 아니라 .NET과의 통합을 지원한다.

PowerShell 스크립트의 변수는 $ 접두사를 사용하며, cmdlet의 출력을 포함하여 모든 값을 할당할 수 있다. 문자열은 작은따옴표 또는 큰따옴표로 묶을 수 있는데, 큰따옴표를 사용하는 경우 따옴표 안에 있어도 변수가 확장된다. 달러 기호 앞에 중괄호로 파일 경로를 묶으면(${C:\foo.txt}와 같이) 파일 내용에 대한 참조가 생성된다. L-값으로 사용하는 경우 여기에 할당된 모든 내용이 파일에 기록되고, R-값으로 사용하는 경우 파일 내용이 읽힌다. 객체를 할당하면 저장되기 전에 직렬화된다.

객체 멤버는 C# 구문과 같이 . 표기법을 사용하여 액세스할 수 있다. PowerShell은 명령줄에서 함수로 전달된 모든 명령줄 인수의 배열인 $args와 파이프라인의 현재 객체를 참조하는 $_와 같은 특수 변수를 제공한다.[51] PowerShell은 배열과 연관 배열도 제공한다. PowerShell 스크립팅 언어는 명령줄에 입력된 산술 표현식을 즉시 평가하고 GB, MB, KB와 같은 일반적인 약어를 구문 분석한다.[52][53]

function 키워드를 사용하여 함수 생성을 제공하며, 간단한 함수는 다음과 같은 일반적인 모양을 가진다.[54]

```text

function name ([Type]$Param1, [Type]$Param2) {

# 명령어

}

```

PowerShell은 명명된 매개변수, 위치 매개변수, 스위치 매개변수 및 동적 매개변수를 지원하는 고급 함수를 허용한다.[54] 정의된 함수는 다음 형식 중 하나로 호출된다.[54]

```text

name value1 value2

Verb-Noun -Param1 value1 -Param2 value2

```

PowerShell은 대괄호([])로 묶인 네임스페이스를 제공하고 콜론 두 개(::)를 사용하여 정적 메서드를 나타냄으로써 모든 정적 .NET 메서드를 호출할 수 있도록 허용한다.[55] 예를 들어:

```text

[Console]::WriteLine("PowerShell")

```

PowerShell에서 객체를 생성하는 방법은 수십 가지가 있으며, 생성된 후에는 . 표기법을 사용하여 객체의 속성과 인스턴스 메서드에 액세스할 수 있다.[55]

PowerShell은 원시 문자열과 이스케이프된 문자열 모두를 허용하는 문자열을 허용한다. 작은따옴표로 묶인 문자열은 원시 문자열이고 큰따옴표로 묶인 문자열은 이스케이프된 문자열이다. PowerShell은 직선 따옴표와 곱슬 따옴표를 동등하게 취급한다.[56]

다음은 PowerShell에서 지원하는 특수 문자 목록이다.[57]

PowerShell 특수 문자
시퀀스의미
경고
백스페이스
이스케이프 (PowerShell 6부터)
폼 피드
줄 바꿈
캐리지 리턴
수평 탭
유니코드 이스케이프 시퀀스 (PowerShell 6부터)
수직 탭
이 지점부터 모든 문자를 그대로 처리



오류 처리를 위해 PowerShell은 .NET 기반 예외 처리 메커니즘을 제공한다. 오류가 발생하는 경우 오류에 대한 정보(Exception 객체)가 포함된 객체가 throw되며, 이는 try ... catch 구문을 사용하여 catch된다(trap 구문도 지원됨). PowerShell은 실제로 예외를 throw하지 않고 실행을 자동으로 재개하도록 구성할 수 있다. 이는 단일 명령, 단일 세션 또는 영구적으로 수행할 수 있다.[58]

PowerShell을 사용하여 작성된 스크립트는 .ps1 파일 또는 .psm1 파일(후자는 모듈을 구현하는 데 사용됨)에서 세션 간에 유지되도록 만들 수 있다. 나중에 스크립트 전체 또는 스크립트의 개별 함수를 사용할 수 있다. 스크립트와 함수는 cmdlet과 유사하게 작동하여 파이프라인에서 명령으로 사용할 수 있으며 매개변수를 바인딩할 수 있다. 파이프라인 객체는 함수, 스크립트 및 cmdlet 간에 원활하게 전달할 수 있다. 의도하지 않은 스크립트 실행을 방지하기 위해 스크립트 실행은 기본적으로 비활성화되어 있으며 명시적으로 활성화해야 한다.[59] 스크립트 활성화는 시스템, 사용자 또는 세션 수준에서 수행할 수 있다. PowerShell 스크립트는 서명하여 무결성을 확인할 수 있으며 코드 액세스 보안의 적용을 받는다.[60]

PowerShell 스크립팅 언어는 C 계열의 많은 프로그래밍 언어에서 지원하는 과학적 표기법과 유사한 이진 접두사 표기법을 지원한다.[61]

스크립트 언어인 PowerShell영어(파워셸)은 해시 테이블, 정규 표현식을 사용한 `switch`문, 배열의 슬라이싱, 익명 메서드 등의 기능을 가지고 있다. 반복문 구문(`for`, `foreach`, `while`), 조건문(`if`, `switch`), 변수의 범위(`global`, `script`, `local`), 함수 정의 등을 지원한다.[165]

4. 버전

파워셸은 2003년 10월 로스앤젤레스에서 열린 전문 개발자 컨퍼런스(Professional Developers Conference)에서 "모나드"라는 코드명으로 처음 공개되었다.[63] 모든 주요 릴리스는 여전히 지원되며, 각 주요 릴리스는 이전 버전과의 하위 호환성을 제공한다.


  • Windows PowerShell 1.0 (2006년)


2006년 11월에 Windows XP SP2, Windows Server 2003 SP1 및 Windows Vista용으로 출시되었다.[63] Windows Server 2008의 선택적 구성 요소이다.

  • Windows PowerShell 2.0 (2009년)

Windows 7에서 실행되는 Windows PowerShell ISE v2.0(PowerShell 스크립트용 통합 개발 환경)


Windows 7 및 Windows Server 2008 R2에 통합되었으며, 서비스 팩 3이 설치된 Windows XP, 서비스 팩 2가 설치된 Windows Server 2003 및 서비스 팩 1이 설치된 Windows Vista에서도 사용할 수 있다.[64][65][66] PowerShell v2는 스크립팅 언어 및 호스팅 API 변경 사항 외에도 240개 이상의 새로운 cmdlet을 포함한다.[67][68]

  • '''PowerShell 원격 기능''': WS-Management을 사용하여 원격 또는 여러 원격 컴퓨터에서 스크립트 및 cmdlet을 호출할 수 있다.
  • '''백그라운드 작업''': ''PSJob''이라고도 하며, 명령 시퀀스(스크립트) 또는 파이프라인을 비동기적으로 호출할 수 있다.
  • '''트랜잭션''': cmdlet 및 개발자는 트랜잭션 작업을 수행할 수 있다.
  • '''고급 함수''': PowerShell 스크립팅 언어를 사용하여 작성된 cmdlet이다.
  • '''단계적 파이프라인''': 사용자는 cmdlet의 `BeginProcessing()`, `ProcessRecord()` 및 `EndProcessing()` 함수가 호출되는 시점을 제어할 수 있다.
  • '''모듈''': 스크립트 개발자와 관리자는 독립적이고 재사용 가능한 단위로 PowerShell 스크립트를 구성하고 분할할 수 있다.
  • '''데이터 언어''': 스크립트에서 데이터 정의를 분리하고 지역화된 문자열 리소스를 런타임에 스크립트로 가져올 수 있다.
  • '''스크립트 디버깅''': PowerShell 스크립트 또는 함수에 중단점을 설정할 수 있다.
  • '''이벤트 처리''': 관리 및 시스템 이벤트를 수신, 전달 및 처리할 수 있다.
  • '''Windows PowerShell 통합 스크립팅 환경(ISE)''': 통합 디버거, 구문 강조 표시, 탭 완성 및 최대 8개의 PowerShell 유니코드 지원 콘솔을 제공한다.
  • '''네트워크 파일 전송''': Background Intelligent Transfer Service(BITS)를 사용하여 컴퓨터 간 파일 전송을 기본적으로 지원한다.[73]
  • '''새로운 cmdlet''': WPF GridView 개체에 표 형식 데이터를 표시하는 `Out-GridView`를 포함한다.
  • '''새로운 연산자''': `-Split`, `-Join` 및 스플래팅(`@`) 연산자.
  • '''Try-Catch-Finally를 사용한 예외 처리''': 다른 .NET 언어와 달리 단일 catch 블록에 대해 여러 예외 유형을 허용한다.
  • '''중첩 가능한 Here-String''': PowerShell Here-String이 개선되어 이제 중첩할 수 있다.[74]
  • '''블록 주석''': PowerShell 2.0은 `<#` 및 `#> `를 구분 기호로 사용하여 블록 주석을 지원한다.[75]
  • '''새로운 API''': PowerShell 구문 분석기 및 런타임에 대한 더 많은 제어 기능을 제공한다.

  • Windows PowerShell 3.0 (2012년)

Windows 8 및 Windows Server 2012에 통합되었다. 서비스 팩 1이 설치된 Windows 7, 서비스 팩 1이 설치된 Windows Server 2008, 및 서비스 팩 1이 설치된 Windows Server 2008 R2에서도 사용 가능하다.[76][77] 원격 지원을 위한 WinRM 서비스도 포함하는 [https://www.microsoft.com/en-in/download/details.aspx?id=34595 Windows Management Framework](Windows Management Framework) 3.0 (WMF3)의 일부이다.[77]

  • '''예약된 작업''': Windows 작업 스케줄러 인프라를 사용하여 미리 설정된 시간과 날짜에 작업을 예약할 수 있다.
  • '''세션 연결''': 세션을 연결 해제하고 다시 연결할 수 있다.
  • '''향상된 코드 작성''': 코드 완성(IntelliSense) 및 코드 조각(snippet)이 추가되었다.
  • '''위임 지원''': 관리 작업을 위임할 수 있다.
  • '''도움말 업데이트''': `Update-Help` 명령어를 통해 도움말 문서를 업데이트할 수 있다.
  • '''자동 모듈 감지''': 해당 모듈의 명령이 호출될 때마다 모듈이 암시적으로 로드된다.
  • '''새로운 명령''': WMI를 통해 수행되었던 디스크, 볼륨, 방화벽, 네트워크 연결 및 프린터를 관리하는 기능을 포함한다.

  • Windows PowerShell 4.0 (2013년)

Windows 8.1 및 Windows Server 2012 R2에 통합되었다. Windows 7 SP1, Windows Server 2008 R2 SP1 및 Windows Server 2012에서도 사용 가능하다.[82]

  • '''바람직한 상태 구성(Desired State Configuration)''':[83][84][85] DMTF 관리 표준 및 WS-Management 프로토콜을 사용하는 시스템에 대한 구성 데이터의 배포 및 관리를 가능하게 한다.
  • '''새로운 기본 실행 정책''': Windows Server에서 기본 실행 정책은 이제 `RemoteSigned`이다.
  • '''Save-Help''': 원격 컴퓨터에 설치된 모듈에 대한 도움말을 저장할 수 있다.
  • '''향상된 디버깅''': 디버거는 워크플로 디버깅, 원격 스크립트 실행 및 PowerShell 세션 재연결 시 디버깅 세션 유지를 지원한다.
  • '''-PipelineVariable 스위치''': 프로그래밍 목적으로 현재 파이프라인 개체를 변수로 노출한다.
  • 물리적 및 Hyper-V의 가상화된 네트워크 스위치를 관리하는 '''네트워크 진단'''
  • '''Where 및 ForEach''' 메서드 구문

  • Windows PowerShell 5.0 (2016년)

PowerShell 5.0 아이콘


2016년 2월 24일에 웹에 다시 출시되었다.[86]

  • 클래스를 객체 지향 프로그래밍을 위해 생성하는 새로운 `class` 키워드
  • 열거형을 생성하는 새로운 `enum` 키워드
  • Chocolatey 패키지 관리자를 지원하는 `OneGet` cmdlet[87]
  • 2계층 네트워크 스위치에 대한 스위치 관리 지원 확장[88]
  • PowerShell 백그라운드 작업 및 다른 프로세스에서 호스팅되는 PowerShell 인스턴스(각각 "런스페이스"라고 함)에 대한 디버깅
  • Desired State Configuration (DSC) 로컬 구성 관리자(LCM) 버전 2.0
  • DSC 부분 구성
  • DSC 로컬 구성 관리자 메타 구성
  • PowerShell 클래스를 사용한 DSC 리소스 작성

  • Windows PowerShell 5.1 (2016년)

2016년 8월 2일에 Windows 10 주년 업데이트[89]와 Windows Server 2016[90]에서 출시되었다. PackageManagement은 이제 프록시를 지원하며, PSReadLine은 Vi 모드를 지원하고, `Get-TimeZone` 및 `Set-TimeZone`이라는 두 개의 새로운 cmdlet이 추가되었다. LocalAccounts 모듈을 사용하면 로컬 사용자 계정을 추가하거나 제거할 수 있다.[91] 2017년 1월 19일에 정식 출시되었다.[93]

Windows PowerShell 5.1은 "데스크톱"과 "코어"의 두 가지 에디션으로 제공되는 최초의 버전이다. "데스크톱" 에디션은 .NET Framework 스택에서 실행되는 기존 Windows PowerShell의 연장선이다. "코어" 에디션은 .NET Core에서 실행되며 Windows Server 2016 Nano Server에 번들로 제공된다. 코어 에디션에는 클립보드 관리 또는 도메인에 컴퓨터 조인, WMI 버전 1 cmdlet, 이벤트 로그 cmdlet 및 프로필과 같은 일부 기능이 없다.[24] Windows PowerShell 5.1은 Windows 10, Windows 11 및 Windows Server 2022에 사전 설치되어 있다.[94][95]

  • PowerShell Core 6.0 (2018년)

2016년 8월 18일, Microsoft가 PowerShell Core를 공개하고 해당 제품을 크로스 플랫폼으로, Windows와 독립적으로, 무료 오픈 소스로 제공하기로 결정하면서 처음 발표되었다.[20] Windows, macOS, Linux에 대한 정식 출시는 2018년 1월 10일에 이루어졌다.[96] 자체 지원 수명 주기를 가지며 Windows 10에서 도입된 Microsoft 수명 주기 정책을 준수한다.[97] PowerShell 6은 일부 예외를 제외하고 기본 인코딩을 UTF-8로 변경했다.[99]

  • PowerShell Core 6.1 (2018년)

마이크로소프트에 따르면, PowerShell 6.1의 새로운 기능 중 하나는 "Windows 10 및 Windows Server 2019의 기존 1900개 이상의 cmdlet과의 호환성"이다.[101]

  • PowerShell Core 6.2 (2019년)

주로 성능 향상, 버그 수정 및 개발자 생산성을 향상시킨 더 작은 cmdlet 및 언어 개선에 중점을 두었다.[103]

  • PowerShell 7.0 (2020년)

PowerShell Core 6.x 제품과 마지막으로 지원되는 Windows PowerShell 5.1을 대체하는 버전이다.[104][105] 개발의 초점은 Windows PowerShell 5.1의 실질적인 대체제로 만드는 것이었다.[106]

  • 병렬 처리를 지원하는 `ForEach-Object` cmdlet의 `-Parallel` 스위치
  • 기본 제공 Windows 모듈과의 호환성 측면에서 Windows PowerShell과 거의 동등한 수준
  • 새로운 오류 보기
  • `Get-Error` cmdlet
  • 파이프라인의 다음 cmdlet을 조건부로 실행할 수 있는 파이프라인 연결 연산자(`&&` 및 `||`)
  • 삼항 연산(?:) 연산자
  • Null 병합(Null 병합) 연산자(`??`)
  • Null 병합 할당 연산자(`??=`)
  • 크로스 플랫폼 `Invoke-DscResource` (실험적)
  • `Out-GridView` cmdlet 복귀
  • `Get-Help`의 `-ShowWindow` 스위치 복귀

  • PowerShell 7.2 (2021년)

PowerShell 7.0 버전 다음의 장기 지원 버전이다. .NET 6.0을 사용하며 Linux용 유니버설 설치 패키지를 제공한다. Windows에서는 PowerShell 7.2 이상에 대한 업데이트가 Microsoft Update 서비스를 통해 제공된다.[108]

  • PowerShell 7.3 (2022년)

이 버전에는 일부 일반 Cmdlet 업데이트 및 수정 사항, 릴리스 파이프라인에서 프레임워크 종속 패키지 테스트, 그리고 빌드 및 패키징 개선 사항이 포함되어 있다.[109]

  • PowerShell 7.4 (2023년)

.NET 8을 기반으로 한다. 웹 cmdlet은 기본적으로 UTF-8 문자 인코딩을 사용한다.[110][100]

5. 비슷한 명령어들과 cmdlet 비교

(Cmdlet)윈도우 파워셸
(다른 이름)cmd.exe / COMMAND.COM
(MS-DOS, 윈도우, OS/2, 등)Bash
(유닉스, BSD, 리눅스, 맥 오에스 텐 등)설명Get-Locationgl, pwdcdpwd현재 디렉터리/작업 디렉터리를 보여 준다.Set-Locationsl, cd, chdircd, chdircd현재 디렉터리를 바꾼다Clear-Hostcls, clearclsclear화면을 지운다[169]Copy-Itemcpi, copy, cpcopycp하나 이상의 파일 / 완전한 디렉터리 트리를 복사한다Get-Helphelp, manhelpman명령에 대한 도움말을 보여 준다Remove-Itemri, del, erase, rmdir, rd, rmdel, erase, rmdir, rdrm, rmdir파일 / 디렉터리를 지운다Rename-Itemrni, renren, renamemv파일 / 디렉터리의 이름을 바꾼다Move-Itemmi, move, mvmovemv파일 / 디렉터리를 새로운 위치로 옮긴다Get-ChildItemgci, dir, lsdirls현재 디렉터리의 모든 파일 / 디렉터리를 나열한다Write-Outputecho, writeechoecho문자열, 변수 등을 표준 출력(stdout)으로 출력한다Pop-Locationpopdpopdpopd현재 디렉터리를 맨 마지막에 스택으로 푸시(push)한 디렉터리로 바꾼다Push-Locationpushdpushdpushd현재 디렉터리를 스택으로 푸시(push)한다Set-Variablesv, setsetset변수 값을 설정하거나 새로 만든다Get-Contentgc, type, cattypecat파일의 내용을 보여 준다Select-Stringfind, findstrgrep패턴에 맞추어 줄들을 출력한다Get-Processgps, pstlist,[170] tasklist[171]ps현재 실행 중인 모든 프로세스를 나열한다Stop-Processspps, killkill,[170] taskkill[171]kill실행 중인 프로세스를 끝낸다Tee-Objecttee없음tee입력을 파일이나 변수로 파이프(pipe) 처리한 뒤 파이프라인에 따라 입력을 넘긴다


6. 리눅스

리눅스(우분투 20.04)에서 파워셸을 설치하고 사용하는 방법은 다음과 같다.[172]

```console

$ # Update the list of packages

$ sudo apt-get update

$ # Install pre-requisite packages.

$ sudo apt-get install -y wget apt-transport-https software-properties-common

$ # Download the Microsoft repository GPG keys

$ wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb

$ # Register the Microsoft repository GPG keys

$ sudo dpkg -i packages-microsoft-prod.deb

$ # Update the list of products

$ sudo apt-get update

$ # Enable the "universe" repositories

$ sudo add-apt-repository universe

$ # Install PowerShell

$ sudo apt-get install -y powershell

$ # Start PowerShell

$ pwsh

> exit

```

설치 후 터미널에서 `pwsh` 명령어를 통해 파워셸을 시작하고 `exit` 명령어를 통해 종료할 수 있다.

다음은 파워셸을 활용하는 예시이다.

'p'로 시작하는 모든 프로세스를 중지한다.

```powershell

PS> Get-Process p* | Stop-Process

```

1000MB 이상의 메모리를 사용하는 프로세스를 검색하여 중지한다.

```powershell

PS> Get-Process | Where { $_.WS -gt 1000MB } | Stop-Process

```

디렉터리에 포함된 모든 파일의 총 크기를 계산하여 출력한다.

```powershell

PS> Get-Childitem | Measure-Object -property length -sum

```

문자열에 포함된 소문자를 대문자로 변환한 문자열을 만든다.

```powershell

PS> "hello, world!".ToUpper()

```

`"internal"` 문자열의 5번째 문자 바로 뒤에 `"natio"` 문자열을 삽입하여 `"international"`을 얻는다.

```powershell

PS> "internal".Insert(5, "natio")

```

지정한 RSS 피드를 다운로드하고, 최신 8개 항목의 제목을 표시한다.

```powershell

PS> $rssUrl = "http://blogs.msdn.com/powershell/rss.aspx"

PS> $blog = [xml](New-Object System.Net.WebClient).DownloadString($rssUrl)

PS> $blog.rss.channel.item | Select title -first 8

```

변수 `$UserProfile`에 환경 변수 `UserProfile`의 값을 할당한다.

```powershell

PS> $UserProfile = $env:UserProfile

7. 응용 프로그램 지원

다양한 마이크로소프트 제품 및 타사 응용 프로그램에서 파워셸을 지원한다.

애플리케이션버전cmdlet제공자관리 GUI
Exchange Server2007402
Windows Server2008아니오
Microsoft SQL Server2008아니오
Microsoft SharePoint2010아니오
System Center Configuration Manager2012 R2400+아니오
System Center Operations Manager200774아니오
System Center Virtual Machine Manager2007
System Center Data Protection Manager2007아니오아니오
Windows Compute Cluster Server2007아니오
Microsoft Transporter Suite for Lotus Domino[122]08.02.001247아니오아니오
Microsoft PowerTools for Open XML[123]1.033아니오아니오
IBM WebSphere MQ[124]6.0.2.244아니오아니오
IoT Core 추가 기능[125]74알 수 없음알 수 없음
Quest Management Shell for Active Directory[126]1.795아니오아니오
Special Operations Software Specops Command[127]1.0아니오
VMware vSphere PowerCLI[128]6.5 R1500+
Internet Information Services[129]7.054아니오
Windows 7 문제 해결 센터[130]6.1아니오
Microsoft Deployment Toolkit[131]2010
NetApp PowerShell Toolkit[132][133]4.22000+
JAMS Scheduler – Job Access & Management System[134]5.052
UIAutomation[135]0.8432아니오아니오
Dell Equallogic[136]3.555아니오아니오
LOGINventory[137]5.8
SePSX[138]0.4.139아니오아니오


8. 대체 구현

Pash는 널리 알려진 Unix 셸인 bash를 이용한 말장난으로, Mono 프레임워크를 통해 파워셸을 오픈소스로 크로스 플랫폼 구현한 것이다.[139] 이그나시 무치닉(Igor Moochnick)이 C#으로 작성하고 GNU 일반 공중 사용 허가서에 따라 배포한 프로젝트였다. Pash 개발은 2008년에 중단되었다가 2012년 깃허브에서 다시 시작되었고,[140] 파워셸이 공식적으로 오픈소스이자 크로스 플랫폼으로 공개된 2016년에 최종적으로 중단되었다.[141]

9. 예제

powershell

'string' 문자열 중간에 'ABC'를 삽입한다.



PS > 'string'.Insert(1, 'ABC')

sABCtring



닷넷 객체의 정적 메소드를 호출한다.



PS > [System.Math]::Sqrt(16)

4



특정 RSS 피드에서 최근 8개 항목의 제목을 출력한다.



PS > $x = new-object xml

PS > $x.load('http://blogs.msdn.com/powershell/rss.aspx')

PS > $x.rss.channel.item | select title -f 8



'p'로 시작하는 모든 프로세스를 중지한다.

PS> Get-Process p* | Stop-Process

1000MB 이상의 메모리를 사용하는 프로세스를 검색하여 중지한다.

PS> Get-Process | Where { $_.WS -gt 1000MB } | Stop-Process

디렉터리에 포함된 모든 파일의 총 크기를 계산하여 출력한다.

PS> Get-Childitem | Measure-Object -property length -sum

문자열에 포함된 소문자를 대문자로 변환한 문자열을 만든다.

PS> "hello, world!".ToUpper()

`"internal"` 문자열의 5번째 문자 바로 뒤에 `"natio"` 문자열을 삽입하여 `"international"`을 얻는다.

PS> "internal".Insert(5, "natio")

지정한 RSS 피드를 다운로드하고, 최신 8개 항목의 제목을 표시한다.



PS> $rssUrl = "http://blogs.msdn.com/powershell/rss.aspx"

PS> $blog = [xml](New-Object System.Net.WebClient).DownloadString($rssUrl)

PS> $blog.rss.channel.item | Select title -first 8



변수 $UserProfile환경 변수 UserProfile의 값을 할당한다.

PS> $UserProfile = $env:UserProfile

참조

[1] 웹사이트 PowerShell https://apps.microso[...] 2024-10-24
[2] 웹사이트 Release v7.4.6 Release of PowerShell https://github.com/P[...] Microsoft 2024-10-22
[3] 웹사이트 PowerShell for every system! https://github.com/P[...] 2017-06-12
[4] 웹사이트 PowerShell and WPF: WTF https://blogs.msdn.m[...] Microsoft 2008-05-25
[5] 웹사이트 Announcing Windows 10 Insider Preview Build 14971 for PC https://blogs.window[...] 2016-11-17
[6] 웹사이트 PowerShell is replacing Command Prompt https://support.micr[...]
[7] 간행물 Extend Windows PowerShell With Custom Commands https://msdn.microso[...] Microsoft 2007-12-00
[8] 웹사이트 Exchange 2007: Get used to the command line http://www.techrepub[...] CBS Interactive 2007-01-04
[9] blog posting SQL Server Support for PowerShell! http://blogs.msdn.co[...] Microsoft 2007-11-13
[10] 웹사이트 Windows Server 2003 Delivers Improvements All Around https://www.pcmag.co[...] Ziff Davis 2003-04-23
[11] 서적 Shell of an Idea: The Untold History of PowerShell Don Gannon-Jones 2020
[12] 웹사이트 Monad Manifesto https://www.jsnover.[...] Microsoft 2002-08-08
[13] 팟캐스트 The Man Behind Windows PowerShell https://www.heavybit[...] Heavybit 2017-09-14
[14] 웹사이트 Windows PowerShell (Monad) Has Arrived https://blogs.msdn.m[...] Microsoft 2006-04-25
[15] blog posting Windows PowerShell & Windows Vista http://blogs.msdn.co[...] Microsoft 2006-11-15
[16] 웹사이트 Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0, and BITS 4.0) https://web.archive.[...] Microsoft 2013-09-30
[17] 뉴스 10 reasons why you should learn to use PowerShell https://www.techrepu[...] 2009-10-06
[18] 웹사이트 What is Pester and Why Should I Care? https://blogs.techne[...] 2015-12-14
[19] 웹사이트 PowerShell is open sourced and is available on Linux https://azure.micros[...] Microsoft 2016-08-18
[20] 웹사이트 PowerShell is Microsoft's latest open source release, coming to Linux, OS X https://arstechnica.[...] Condé Nast 2016-08-18
[21] 웹사이트 PowerShell/PowerShell https://github.com/P[...] 2016-08-18
[22] 웹사이트 PowerShell on Linux and Open Source! https://blogs.msdn.m[...] Microsoft 2016-08-18
[23] 웹사이트 Microsoft open sources PowerShell; brings it to Linux and Mac OS X https://www.zdnet.co[...] CBS Interactive 2016-08-18
[24] 웹사이트 PowerShell on Nano Server https://technet.micr[...] Microsoft 2016-10-20
[25] 서적 Shell of an Idea: The Untold History of PowerShell Don Gannon-Jones 2020
[26] 서적 Windows PowerShell in Action https://books.google[...] Manning 2008
[27] 서적 Shell of an Idea: The Untold History of PowerShell Don Gannon-Jones 2020
[28] 웹사이트 about_Command_Precedence https://technet.micr[...] Microsoft 2014-05-08
[29] 웹사이트 about Parsing - PowerShell https://docs.microso[...] 2021-09-07
[30] 웹사이트 Windows PowerShell Extended Type System http://msdn2.microso[...]
[31] 웹사이트 Windows PowerShell Cmdlets http://msdn2.microso[...]
[32] 웹사이트 Creating Your First Cmdlet http://msdn2.microso[...]
[33] 웹사이트 Get-Verb https://technet.micr[...] Microsoft 2014-05-08
[34] 웹사이트 Cmdlet Overview https://msdn.microso[...] Microsoft 2014-05-08
[35] 웹사이트 Adding parameters That Process Command Line Input http://msdn2.microso[...]
[36] 웹사이트 Adding parameters That Process Pipeline Input http://msdn2.microso[...] 2007-11-28
[37] 웹사이트 Windows PowerShell Providers https://technet.micr[...] 2010-10-14
[38] 웹사이트 PowerShell 1.0 Cmdlets https://social.techn[...] Microsoft 2012-09-29
[39] 웹사이트 PowerShell 2.0 Cmdlets https://social.techn[...] Microsoft 2012-07-10
[40] 서적 Windows Powershell 3.0 Step by Step Microsoft Press 2013
[41] 서적 Windows PowerShell Step by Step Microsoft Press
[42] 웹사이트 Windows PowerShell Owner's Manual: Piping and the Pipeline in Windows PowerShell https://technet.micr[...] Microsoft 2011-09-27
[43] 웹사이트 Windows PowerShell – Rethinking the Pipeline http://www.microsoft[...] Microsoft 2007-11-28
[44] 웹사이트 Windows PowerShell Object Concepts https://web.archive.[...] 2007-11-28
[45] 웹사이트 How PowerShell Formatting and Outputting REALLY works http://blogs.msdn.co[...] 2007-11-28
[46] 웹사이트 More – How does PowerShell formatting really work? http://blogs.msdn.co[...] 2007-11-28
[47] 웹사이트 about_Pipelines https://technet.micr[...] Microsoft 2014-05-08
[48] 웹사이트 about_Objects https://technet.micr[...] Microsoft 2014-05-08
[49] 웹사이트 about_Format.ps1xml https://technet.micr[...] Microsoft 2014-05-08
[50] 웹사이트 Anonymous Functions and Code Blocks in PowerShell http://defndo.com/po[...] 2012-01-21
[51] 웹사이트 Introduction to Windows PowerShell's Variables http://www.computerp[...] 2007-11-28
[52] 웹사이트 Byte Conversion https://technet.micr[...] 2013-11-15
[53] 웹사이트 Converting to size units (KB, MB, GB, TB, and PB) without using PowerShell multipliers http://www.powershel[...] 2013-05-20
[54] 웹사이트 about_Functions https://technet.micr[...] Microsoft 2013-11-15
[55] 웹사이트 Lightweight Testing with Windows PowerShell http://msdn.microsof[...] 2007-11-28
[56] 웹사이트 PowerShell Got Smart About Smart Quotes http://windowsitpro.[...] Penton Media 2013-11-15
[57] 웹사이트 About Special Characters https://docs.microso[...] 2019-06-20
[58] 웹사이트 Trap [Exception] { "In PowerShell" } http://huddledmasses[...] 2007-11-28
[59] 웹사이트 Running Windows PowerShell Scripts http://www.microsoft[...] 2007-11-28
[60] 웹사이트 about_Signing https://technet.micr[...] Microsoft 2013-11-15
[61] 서적 Windows PowerShell Quick Reference O'Reilly Media 2006-09
[62] 웹사이트 Windows PowerShell Desired State Configuration Overview https://msdn.microso[...] 2023-05-23
[63] 웹사이트 It's a Wrap! Windows PowerShell 1.0 Released! https://devblogs.mic[...] Microsoft 2006-11-14
[64] 웹사이트 PowerShell will be installed by default on Windows Server 08 R2 (WS08R2) and Windows 7 (W7)! http://blogs.msdn.co[...] Microsoft 2008-10-28
[65] 웹사이트 Windows Management Framework is here! http://blogs.msdn.co[...] 2009-10-27
[66] 웹사이트 Microsoft Support Knowledge Base: Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0, and BITS 4.0) http://support.micro[...] Support.microsoft.com 2011-09-23
[67] 웹사이트 574 Reasons Why We Are So Proud and Optimistic About W7 and WS08R2 http://blogs.msdn.co[...] Microsoft 2008-10-29
[68] 웹사이트 PowerShell: Creating Manageable Web Services https://web.archive.[...] 2015-07-19
[69] 웹사이트 What's New in CTP of PowerShell 2.0 http://blogs.msdn.co[...] 2007-11-28
[70] 웹사이트 Windows PowerShell V2 Community Technology Preview 2 (CTP2) – releaseNotes https://web.archive.[...] 2008-05-05
[71] 웹사이트 Differences between PowerShell 1.0 and PowerShell 2.0 https://web.archive.[...] 2010-06-26
[72] 웹사이트 Windows PowerShell: Writing Cmdlets in Script https://technet.micr[...] Microsoft 2010-05-01
[73] 웹사이트 GoGrid Snap-in – Managing Cloud Services with PowerShell http://blogs.msdn.co[...] Microsoft 2011-09-27
[74] 웹사이트 Emit-XML http://blogs.msdn.co[...] Microsoft 2011-09-27
[75] 웹사이트 Block Comments in V2 http://blogs.msdn.co[...] Microsoft 2011-09-27
[76] 웹사이트 PowerShell Version 3 is RTM! http://tfl09.blogspo[...] 2012-08-13
[77] 웹사이트 Windows Management Framework 3.0 http://www.microsoft[...] Microsoft 2012-09-04
[78] 웹사이트 Windows Management Framework 3.0 Community Technology Preview (CTP) #2 Available for Download http://blogs.msdn.co[...] Microsoft 2011-12-02
[79] 웹사이트 Windows Management Framework 3.0 https://www.microsof[...] Microsoft 2012-12-03
[80] 웹사이트 Windows PowerShell System Requirements https://msdn.microso[...] Microsoft 2017-04-20
[81] 서적 Introducing Windows 8: An Overview for IT Professionals http://blogs.msdn.co[...] Microsoft Press
[82] 웹사이트 Windows Management Framework 4.0 is now available http://blogs.msdn.co[...] Microsoft 2013-10-24
[83] 웹사이트 New Features in Windows PowerShell 4.0 http://www.powershel[...] 2013-06-25
[84] 웹사이트 Desired State Configuration in Windows Server 2012 R2 PowerShell https://web.archive.[...] Microsoft 2013-06-03
[85] 웹사이트 Thoughts from Microsoft TechEd North America http://blogs.splunk.[...] Splunk 2013-06-07
[86] 웹사이트 Windows Management Framework (WMF) 5.0 RTM packages has been republished https://blogs.msdn.m[...] Microsoft 2016-02-24
[87] 웹사이트 Q and A https://github.com/O[...] 2015-04-21
[88] 웹사이트 Windows Management Framework V5 Preview https://web.archive.[...] Microsoft 2015-04-21
[89] 웹사이트 #PSTip New PowerShell Commands in Windows 10 Anniversary Update http://www.powershel[...] 2016-08-02
[90] 웹사이트 What's New In Windows Server 2016 Standard Edition Part 9 – Management And Automation https://blogs.techne[...] 2016-09-04
[91] 웹사이트 Microsoft.PowerShell.LocalAccounts Module https://technet.micr[...] 2016-06-16
[92] 웹사이트 Announcing Windows Management Framework (WMF) 5.1 Preview https://blogs.msdn.m[...] 2016-07-16
[93] 웹사이트 WMF 5.1 https://www.microsof[...]
[94] 웹사이트 What is Windows PowerShell? - PowerShell https://learn.micros[...] 2024-03-07
[95] 웹사이트 Migrating from Windows PowerShell 5.1 to PowerShell 7 - PowerShell https://learn.micros[...] 2024-04-02
[96] 웹사이트 PowerShell Core 6.0: Generally Available (GA) and Supported! https://blogs.msdn.m[...] Microsoft 2018-01-11
[97] 웹사이트 PowerShell Core Support Lifecycle https://web.archive.[...] Microsoft 2018-01-10
[98] 웹사이트 Top 10 most exciting reasons to migrate https://techcommunit[...] Microsoft 2018-01-11
[99] 웹사이트 What's New in PowerShell Core 6.0 https://learn.micros[...] 2023-08-03
[100] 웹사이트 Understanding file encoding in VS Code and PowerShell - PowerShell https://learn.micros[...] 2023-11-29
[101] 웹사이트 Announcing PowerShell Core 6.1 https://devblogs.mic[...] Microsoft 2018-09-13
[102] 웹사이트 PowerShell/PowerShell https://github.com/P[...]
[103] 웹사이트 General Availability of PowerShell Core 6.2 https://devblogs.mic[...] Microsoft 2019-03-28
[104] 웹사이트 Microsoft Releases PowerShell 7 Preview https://redmondmag.c[...] 1105 Media Inc 2019-05-30
[105] 웹사이트 The Next Release of PowerShell – PowerShell 7 https://devblogs.mic[...] Microsoft 2019-04-05
[106] 웹사이트 PowerShell 7 Road Map https://devblogs.mic[...] Microsoft 2019-05-30
[107] 웹사이트 PowerShell 7 Preview 5 {{!}} PowerShell https://devblogs.mic[...] 2019-10-23
[108] 웹사이트 PowerShell 7.2 is the new version of Microsoft's next-generation shell https://www.itsfoss.[...] 2021-11-12
[109] 웹사이트 Release v7.3.0 Release of PowerShell · PowerShell/PowerShell https://github.com/P[...]
[110] 웹사이트 Webcmdlets set default charset encoding to UTF8 by CarloToso · Pull Request #18219 · PowerShell/PowerShell https://github.com/P[...]
[111] 웹사이트 Test-Connection https://technet.micr[...] Microsoft 2015-08-09
[112] 웹사이트 Tar and Curl Come to Windows! - Microsoft Tech Community - 382409 https://techcommunit[...] 2019-03-22
[113] 웹사이트 About Scripts https://docs.microso[...] Microsoft 2020-06-02
[114] 웹사이트 How to write a PowerShell module manifest https://docs.microso[...] Microsoft 2019-10-16
[115] 웹사이트 How to Write a PowerShell Script Module https://docs.microso[...] Microsoft 2019-11-22
[116] 웹사이트 How to Write a PowerShell Binary Module https://docs.microso[...] Microsoft 2016-11-13
[117] 웹사이트 About Types.ps1xml https://docs.microso[...] Microsoft 2020-06-02
[118] 웹사이트 Export-Clixml https://docs.microso[...] Microsoft
[119] 웹사이트 Export-Console https://docs.microso[...] Microsoft
[120] 웹사이트 About Session Configuration Files https://docs.microso[...] Microsoft 2020-06-02
[121] 웹사이트 New-PSRoleCapabilityFile https://docs.microso[...] Microsoft 2020-06-02
[122] 웹사이트 Microsoft Transporter Suite for Lotus Domino http://www.microsoft[...]
[123] 웹사이트 PowerTools for Open XML http://www.codeplex.[...]
[124] 웹사이트 MO74: WebSphere MQ – Windows PowerShell Library http://www-1.ibm.com[...]
[125] 웹사이트 IoT Core Add-ons command-line options https://docs.microso[...] 2018-10-15
[126] 웹사이트 PowerShell Commands for Active Directory by Quest Software http://www.quest.com[...]
[127] 웹사이트 PowerShell Remoting through Group Policy http://www.specopsso[...]
[128] 웹사이트 VMware vSphere PowerCLI https://www.vmware.c[...]
[129] 웹사이트 IIS7 PowerShell Provider Tech Preview 2 https://blogs.msdn.c[...]
[130] 웹사이트 Kudos to the Win7 Diagnostics Team http://blogs.msdn.co[...]
[131] 웹사이트 MDT 2010 New Feature #16: PowerShell support http://blogs.technet[...] 2009-07-10
[132] 웹사이트 Kudos to NetApp for Data ONTAP PowerShell ToolKit http://blogs.msdn.co[...]
[133] 웹사이트 PowerShell Toolkit 4.2 Announcement http://community.net[...] 2016-06-23
[134] 웹사이트 Heterogeneous Job Scheduling With PowerShell http://blogs.msdn.co[...]
[135] 웹사이트 UIAutomation PowerShell Extensions http://uiautomation.[...]
[136] 웹사이트 EqualLogic HIT-ME with PowerShell http://en.community.[...]
[137] 문서 LOGINventory
[138] 웹사이트 Selenium PowerShell eXtensions http://sepsx.codeple[...]
[139] 웹사이트 Pash http://pash.sourcefo[...] Dice Holdings, Inc.
[140] 웹사이트 Pash Project https://github.com/P[...]
[141] 웹사이트 Pash is now obsolete · Issue #429 · Pash-Project/Pash https://github.com/P[...] 2019-11-26
[142] 웹사이트 Cool Stuff about PowerShell 5.0 in Windows 10 https://blogs.techne[...] Microsoft 2018-09-28
[143] 웹사이트 Windows PowerShell のシステム要件 https://docs.microso[...] Microsoft Docs 2018-09-28
[144] 웹사이트 Microsoft、「PowerShell」をオープンソース化。LinuxやOS Xにも対応 https://mag.osdn.jp/[...] OSDN 2016-08-20
[145] 문서 Windows PowerShell 5.0 정보
[146] 웹사이트 Windows Management Framework (WMF) 5.0 RTM is now available https://blogs.msdn.m[...] 2018-09-28
[147] 웹사이트 Windows Management Framework (WMF) 5.0 currently removed from Download Center https://blogs.msdn.m[...] 2018-09-28
[148] 웹사이트 Windows Management Framework 5.0 (Superceeded by WMF 5.1 RTM version: http://aka.ms/wmf5download) https://www.microsof[...] Microsoft 2018-09-28
[149] 웹사이트 PowerShell Core 6.0: Generally Available (GA) and Supported! https://devblogs.mic[...] 2019-08-31
[150] 웹사이트 Nano Server の PowerShell https://docs.microso[...] 2019-08-31
[151] 웹사이트 MS、「PowerShell Core 6.0」を一般提供--「Linux」「macOS」もサポート https://japan.zdnet.[...] ZDNet Japan 2018-10-26
[152] 웹사이트 PowerShell Core 6.0 の新機能 https://docs.microso[...] Microsoft 2019-10-15
[153] 웹사이트 Announcing PowerShell Core 6.1 https://devblogs.mic[...] 2020-03-05
[154] 웹사이트 General Availability of PowerShell Core 6.2 https://devblogs.mic[...] 2020-03-05
[155] 웹사이트 Microsoft、「PowerShell Core 6.2」を公開、次期リリースは「PowerShell 7」に https://www.atmarkit[...] 2019-09-07
[156] 웹사이트 Announcing PowerShell 7.0 https://devblogs.mic[...] 2020-03-05
[157] 웹사이트 Microsoft、「PowerShell 7.0」を一般公開 ~三項演算子やnull結合演算子をサポート https://forest.watch[...] 2020-03-05
[158] 웹사이트 Announcing PowerShell 7.1 https://devblogs.mic[...] 2020-11-12
[159] 웹사이트 PowerShell https://docs.microso[...] Microsoft 2019-10-15
[160] 웹사이트 PowerShell https://docs.microso[...] Microsoft 2019-10-15
[161] 웹사이트 PowerShell https://docs.microso[...] Microsoft 2019-10-15
[162] 웹사이트 VSCode と PowerShell でのファイルのエンコードの概要 https://docs.microso[...] Microsoft 2019-10-15
[163] 웹사이트 PowerShell exe について - PowerShell https://learn.micros[...] Microsoft Learn 2023-05-10
[164] 웹사이트 Pwsh について - PowerShell https://learn.micros[...] Microsoft Learn 2023-05-10
[165] 웹사이트 PowerShell Gives You Wrongs https://gist.github.[...] 2020-02-09
[166] 웹인용 v7.4.3 Release of PowerShell https://github.com/P[...] 마이크로소프트 2024-07-03
[167] 웹인용 v7.4.0-preview.2 Release of PowerShell https://github.com/P[...] 마이크로소프트 2023-04-13
[168] 웹인용 PowerShell for every system! https://github.com/P[...] 2017-06-12
[169] 문서 Clear-Host 기능
[170] 문서 Windows NT4, 98, 2000 지원 정보
[171] 문서 Windows XP 이후 지원 정보
[172] 웹사이트 Microsoft Ignite - Linux에 PowerShell 설치 https://docs.microso[...]

관련 사건 타임라인

( 최근 20개의 뉴스만 표기 됩니다. )



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com