PowerShell 명령어 15가지 총정리! CMD와의 차이까지 한눈에 정리

PowerShell 명령어
PowerShell 명령어 썸네일

PowerShell 명령어는 마이크로소프트가 만든 명령줄 셸이자 스크립트 언어예요. 객체 기반이며, .NET 객체를 주고받기 때문에 좀 더 직관적이면서 강력하게 시스템을 제어할 수 있어요.

PowerShell 명령어 기본 특징과 탐색 명령

Get‑Command

  • 사용 가능한 모든 명령(cmdlet)을 보여주는 명령이에요.
  • 특정 모듈이나 이름을 기준으로 찾고 싶을 때 와일드카드를 사용할 수 있어요.

Get‑Help

  • 명령어의 사용법, 설명, 예시를 보여줘요.
  • ‑Examples 옵션을 붙이면 예시까지 확인할 수 있어요.

Get‑Verb, Get‑Member

  • Get‑Verb: 사용할 수 있는 ‘동사 목록’을 알려줘요. 어떤 동사가 많이 쓰이는지 이해할 수 있어요.
  • Get‑Member: 출력된 객체가 가진 속성과 메서드를 확인할 수 있어요.

PowerShell의 구조, 명령어, 스크립트 작성 방법 등 공식적인 정보를 확인하고 싶으시다면 공식 사이트 마이크로소프트에서 직접 제공하는 공식 자료 확인을 하시면 도움이 됩니다.

PowerShell Documentation

파일, 폴더, 시스템을 다루는 명령

Get‑ChildItem (alias: ls, dir, gci)

  • 현재 폴더나 지정한 경로의 파일과 폴더 목록을 보여줘요.
  • ‑File, ‑Directory 옵션을 이용해서 파일만, 폴더만 볼 수도 있어요.

Copy‑Item, Move‑Item, Remove‑Item

  • Copy‑Item: 파일이나 폴더를 복사
  • Move‑Item: 파일이나 폴더를 이동 또는 이름 변경
  • Remove‑Item: 파일이나 폴더를 삭제.

Get‑Content (alias: cat, gc, type)

  • 파일 내용을 화면에 보여줘요.

Get‑Location (alias: pwd, cd)

  • 현재 작업 중인 폴더 경로를 알려줘요.

프로세스·서비스·시스템 정보 확인

Get‑Process

  • 실행 중인 프로그램(프로세스)들의 정보를 보여줘요.
  • ‑IncludeUserName, ‑FileVersionInfo 등의 옵션으로 세부 정보까지 확인할 수 있어요.

Stop‑Process

  • 실행 중인 프로세스를 이름이나 ID로 종료시켜요.

Get‑Service

  • 시스템의 서비스 상태를 볼 수 있어요.
  • ‑DependentServices 같은 옵션으로 관련된 서비스까지 확인 가능.

객체 및 출력 결과 가공 관련 명령

Where‑Object (? alias)

  • 조건에 맞는 객체만 골라내요(필터)!
  • 예: Get-Service | Where-Object { $_.Status -eq “Running” }.

ForEach‑Object (% alias)

  • 입력된 각 객체에 대해 특정 작업을 반복 수행할 수 있어요.

결과 저장 및 출력 형식 변환

ConvertTo‑Html, ConvertTo‑Xml

  • 명령 결과를 HTML 또는 XML 형식으로 변환해서 파일로 저장할 수 있어요!
  • 예: Get‑Process | ConvertTo‑Html > report.html.

Out‑File / >

  • 결과를 텍스트 파일로 저장할 수 있어요.
  • 예: Get‑Service > services.txt.

시스템, 변수, 별칭 등 기타 유용 명령

Get‑ComputerInfo / Get‑WmiObject

  • 시스템 정보 전체, 또는 WMI를 통해 자세한 정보를 가져올 수 있어요.

$psversiontable, $host

  • 현재 사용 중인 PowerShell 버전과 호스트 정보를 확인해요.

Set‑ExecutionPolicy

  • 스크립트 실행 정책을 설정할 때 사용해요.

Get‑Alias, Get‑Alias –Definition

  • 별칭(alias)을 확인하거나, 별칭이 어떤 cmdlet인지 알아볼 수 있어요.

PowerShell 바로 꺼짐 원인과 해결 방법 5가지

Windows 명령 프롬프트(CMD)와 PowerShell 명령어의 차이점

Windows에는 두 가지 대표적인 명령줄 도구가 있어요. 하나는 **명령 프롬프트(CMD)**이고, 다른 하나는 **PowerShell(파워셸)**이에요. 둘 다 검은 화면에 텍스트로 명령을 입력해서 컴퓨터를 조작하는 방식이지만, 내부 구조와 기능은 꽤 많이 달라요. 그냥 겉모습만 비슷하다고 같은 건 절대 아니에요!

CMD는 오래된 도구, PowerShell은 진화한 도구

CMD (명령 프롬프트)

CMD는 도스(DOS) 시절부터 사용되던 명령줄 도구의 후손이에요. 지금도 윈도우에 기본으로 포함되어 있어서 cmd만 입력하면 바로 실행되죠. 주로 간단한 명령어 실행, 파일 복사, 폴더 이동 같은 기본적인 작업에 많이 쓰여요.

Windows 명령 프롬프트에서 dir 명령어를 실행한 결과 화면. C:\Users\kim 경로의 폴더 목록이 표시되어 있음.
CMD에서 dir 명령어를 실행해 현재 폴더(C:\Users\kim)의 파일과 디렉터리 목록을 출력한 모습

예를 들어,

dir

이렇게 입력하면 현재 폴더에 있는 파일이나 폴더 목록을 보여줘요. 아주 심플하죠.

PowerShell

PowerShell은 윈도우 시스템 관리 작업을 훨씬 더 강력하게 처리할 수 있게 만들어진 도구예요. 단순한 텍스트 기반이 아니라, **객체(Object)**를 기반으로 하기 때문에 데이터를 더 다양하고 정확하게 다룰 수 있어요.

같은 dir 명령을 PowerShell에서 입력해도 실행은 되는데, 실제로는 Get-ChildItem이라는 명령어로 처리돼요. 이 명령어는 파일 정보뿐만 아니라, 그 정보들을 각각의 객체로 나눠서 전달해줘요. 그래서 뒤에 파이프라인(|)을 써서 결과를 필터링하거나, 다른 명령어로 넘기는 게 가능하답니다.

주요 차이점 하나씩 보기

1. 기반 구조

  • CMD: 텍스트 기반
  • PowerShell: 객체 기반 (.NET 객체)

PowerShell에서는 명령어를 실행하면 단순한 문자열이 아니라, 프로그램 내부에서 실제로 사용할 수 있는 형태로 데이터가 전달돼요. 그래서 정보를 더 정확하게 가공할 수 있어요.

2. 명령어 스타일

  • CMD: 짧고 간단한 명령어 (dir, copy, del 등)
  • PowerShell: 동사-명사 조합의 형태 (Get-Process, Set-Item, Remove-Item 등)

PowerShell은 명령어만 봐도 뭐 하는 일인지 직관적으로 알 수 있어요. 영어 단어만 조금 알면 금방 익힐 수 있다는 장점이 있어요.

3. 스크립트 기능

  • CMD: .bat 파일로 단순한 명령어 모음 실행 가능
  • PowerShell: .ps1 파일로 훨씬 복잡한 로직 구현 가능 (조건문, 반복문, 함수 등)

PowerShell은 거의 프로그래밍 언어처럼 사용할 수 있어서, 반복 작업을 자동화하거나 시스템을 모니터링하는 스크립트를 만들 때 훨씬 유리해요.

4. 에러 처리 및 로깅

  • CMD: 에러 메시지만 출력
  • PowerShell: Try-Catch 문을 통해 에러를 잡고 처리 가능

예를 들어 어떤 명령어가 실패했을 때, 그냥 멈추는 대신에 “실패했을 경우 이 명령어를 실행해라!” 같은 로직을 넣을 수 있어요.

5. 확장성

  • CMD: 기능이 제한적이고 확장 어려움
  • PowerShell: 모듈을 통해 기능 추가 가능 (예: Azure, Active Directory 등)

PowerShell은 필요한 기능이 있다면 모듈을 설치해서 쓸 수 있어요. 꼭 시스템 관리자가 아니라도, 클라우드 작업이나 개발 자동화에도 많이 쓰여요.

실제 명령어 예시 비교

작업CMD 명령어PowerShell 명령어
현재 폴더 목록 보기dirGet-ChildItem 또는 ls
파일 복사copy a.txt b.txtCopy-Item a.txt b.txt
프로세스 보기(불가능하거나 매우 제한적)Get-Process
시스템 서비스 목록(거의 불가능)Get-Service
반복문 처리거의 불가능foreach ($x in $list) { ... }
조건문 사용불편하거나 불가능if ($a -gt 5) { Write-Output "OK" }

요약하자면!

CMD는 아주 기본적인 작업에는 아직도 유용하지만, PowerShell은 훨씬 강력하고, 다양한 작업에 적합한 도구예요. 단순한 파일 복사부터, 시스템 전체를 관리하는 자동화 스크립트까지 전부 처리할 수 있는 범용 도구인 셈이죠.

둘 다 사용할 줄 알면 좋지만, 앞으로는 PowerShell 쪽에 더 익숙해지는 게 훨씬 도움이 될 거예요. 특히 IT 관리, 자동화, 시스템 모니터링 같은 걸 하게 된다면 말이죠!

댓글 남기기