16가지 필수 PowerShell 명령어 알아보기

Windows PowerShell은 .NET 프레임워크를 기반으로 한 강력한 애플리케이션입니다. 이것은 cmdlet이라고 불리는 PowerShell 명령어에 의존합니다. 이들을 특정 순서로 결합함으로써 PowerShell 창에서 거의 모든 작업을 수행할 수 있습니다. 작동 방식을 설명하기 위해 가장 필수적인 PowerShell 명령어를 간추렸습니다.
알아두면 좋은 점: Windows에서 “Powershell.exe”를 찾을 수 없습니까? 이를 복구하는 방법을 배우세요.
목차
- PowerShell 명령어 사용 방법
- 필수 PowerShell 명령어
- Clear-Host 또는 Cls
- Convert-to-HTML
- Get-Command
- Get-Help
- Get-Process
- Get-Service
- Install-Module 또는 Install-Script
- mkdir, md, rmdir
- New-Item
- Remove-Item
- Set-ExecutionPolicy
- Select-Object 및 Sort-Object
- Start- 및 Stop-Process
- Suspend- 및 Resume-Service
- Test-Path
- Wait-Process
- 기타 필수 PowerShell 명령어
- 자주 묻는 질문
PowerShell 명령어 사용 방법
cmdlet을 사용하기 시작하려면 검색 메뉴에서 관리자 모드로 PowerShell을 실행해야 합니다.

필수 PowerShell 명령어
Windows의 PowerShell은 단순한 명령줄 인터페이스일 뿐만 아니라 실행하려는 모든 애플리케이션이나 프로세스를 실행할 수 있는 스크립팅 및 프로그래밍 창입니다. 수백 개의 cmdlet이 있지만, 시작하려면 가장 필수적인 것들만 배우면 됩니다.
1. Clear-Host 또는 Cls
타이핑하는 중 실수를 하셨거나, 무엇인가 계획대로 진행되지 않나요? 다행히 PowerShell에서는 다시 할 수 있는 방법이 있습니다. 유용한 clear-host 명령어를 사용하면 화면에서 전체 텍스트를 지울 수 있습니다. 화면의 아무 줄에나 명령을 입력하면 모든 것이 즉시 사라집니다.

Command Prompt에서 자주 사용하는 간단한 cls 명령어를 PowerShell에서도 사용할 수 있습니다. 이 두 가지 텍스트 지우기 명령어는 오류 메시지를 만났을 때 유용합니다.

Command Prompt나 PowerShell 창에서 입력 오류를 피하려면, 명령어를 복사하여 붙여넣으면 효율성이 향상됩니다.
팁: 이 가이드에서 설명한 대로 PowerShell을 사용하여 Windows 업데이트를 숨길 수 있습니다.
2. Convert-to-HTML
거대한 HTML 문자열을 가지는 것은 복잡한 PowerShell 스크린샷을 바라보는 것보다 더 미학적입니다. 스크립트 오류 및 기타 PowerShell 이벤트를 비기술 팀원과 공유해야 할 때 유용합니다.
모든 PowerShell 구성 요소는 PowerShell 화면에서 볼 수 있는 .NET 객체를 사용합니다. 이를 전체 브라우저 창에 표시하려면 Convert-to-HTML cmdlet을 사용하세요. 아래는 웹에서 모든 PowerShell 별칭을 보기 위한 예시입니다. “Invoke-Item” 이전에 별도의 줄을 사용하는 것을 잊지 마세요.
Get-Alias|ConvertTo-Html|Out-File aliases.htm
Invoke-Item aliases.htm
HTML 변환 명령을 실행하면 PowerShell은 다른 애플리케이션을 사용하여 출력 파일을 여는 것을 요청합니다. 브라우저를 사용하면 별칭과 같은 객체의 목록이 생성됩니다.

3. Get-Command
주로 두 가지 유형의 명령어가 있습니다: 별칭과 함수입니다. PowerShell 별칭은 함수나 cmdlet의 별명으로 기능합니다. Windows에는 기본적으로 몇 가지 별칭이 저장되어 있으며, Get-Command를 사용하여 이를 검색할 수 있습니다. 자신만의 별칭을 만들 수도 있습니다.

PowerShell의 다른 명령 유형은 함수입니다. 이러한 함수는 승인된 동사(예: “get”)와 간단한 명사(예: “StorageNode”)를 사용합니다.

우리는 환경 변수로 알려진 컴퓨터 이름과 함께 “Select-object” 함수를 사용하여 로컬 컴퓨터의 이름을 표시합니다.
$env:computername |Select-Object
함수는 고급 PowerShell 코딩의 출발점입니다. Start-process와 같은 함수를 사용하여 매개변수 및 변수를 설정하여 자신만의 배치 스크립트를 만들고 일련의 작업을 실행할 수 있습니다.
4. Get-Help
PowerShell에는 특정 모듈에 대한 다양한 도움말 기사를 한 번에 표시하는 자체 학습 문제 해결 cmdlet인 Get-Help가 있습니다. 도움말을 받기 위해 출력의 끝에 명령어를 입력하십시오. 도움말 콘텐츠의 업데이트된 버전을 허용하려면 Y를 누를 필요가 있습니다.

Get-help를 통해 다양한 도움말 옵션이 있습니다. 예를 들어, Get-process가 무엇을 하는지 및 그 정확한 구문을 배우고자 하는 경우, 다음을 입력합니다:
Get-Help Get-Process
팁: PC에서 활동을 모니터링하는 키로거가 걱정되시나요? Windows에서 키로거를 감지하는 방법을 알아보세요.
5. Get-Process
Get-Process는 로컬 장치 또는 원격 컴퓨터에서 실행 중인 프로세스의 전체 목록을 테이블 형식으로 나열하는 필수 PowerShell 명령어입니다.

더 자세한 프로세스 정보를 얻으려면 프로세스 ID(PID)나 프로세스 이름과 같은 다른 매개변수를 지정해야 합니다.

찾아야 할 프로세스를 정의할 때 포함할 수 있는 많은 특정 매개변수가 있습니다:
- MB로 파일 크기를 지정하여 프로세스 나열
- 우선 순위를 기준으로 프로세스 나열
- 프로세스의 소유자 찾기
6. Get-Service
Windows 컴퓨터에는 많은 실행 중인 프로그램과 프로세스가 있습니다. 작업 관리자를 통해 직접 볼 수 있지만, Get-service를 사용하여 전체 목록을 보는 것이 더 쉽고, 나중에 이를 HTML로 변환할 수도 있습니다.

정확한 서비스 이름을 기억하지 못하시나요? 알고 있는 몇 글자와 함께 와일드카드 기호(*)를 사용할 수 있습니다.
Get-service "xyz*"
Get-Service와 함께 작동하는 몇 가지 일반적인 플래그에는 -DisplayName, -DependentServices, -InputObject, 및 -RequiredServices가 포함됩니다.
7. Install-Module 또는 Install-Script
PowerShell은 Microsoft Teams, McAfee Security, Bing Translator, 최신 Xbox 게임 등 Windows 소프트웨어를 위한 소프트웨어 패키지를 설치하기 위한 가장 안전한 옵션 중 하나입니다. 모든 사용자에게 PowerShell에서 지원되는 소프트웨어의 전체 목록을 보려면 다음을 입력하세요:
Get-AppxPackage -AllUsers
더 나은 방법은 원하는 패키지를 PowerShell Gallery에서 검색하는 것입니다. 최신 소프트웨어 패키지를 위한 단일 출처입니다. 패키지를 찾으면 Install-module, Install-Script, 또는 Install-Package와 같은 명령어를 입력합니다. 다음은 지뢰 찾기 게임을 설치하는 예입니다.
Install-Script -Name Minesweeper
패키지가 PowerShell을 통해 설치될 때까지 몇 초 또는 몇 분을 기다립니다. 이후 Windows에서 사용할 수 있게 됩니다.

또 다른 유용한 명령어는 Find-package로, 컴퓨터 또는 웹에서 소프트웨어 패키지를 검색합니다.
팁: Window Package Manager를 사용하여 프로그램을 설치하고 업데이트할 수도 있습니다.
8. mkdir, md, rmdir
mkdir는 원주율 PowerShell 명령어가 아닙니다. 그러나 new-item의 별칭으로 광범위하게 사용되며 디렉터리를 생성합니다. 이 구문은 DOS와 Linux에서 매우 인기가 있습니다. 원하시는 이름으로 mkdir를 사용하면 빈 폴더가 생성됩니다.
mkdir "귀하의 빈 폴더 이름."PowerShell이 방금 만든 폴더를 가리키게 하려면 간단한 cd 명령어를 사용하세요.
cd "방금 생성된 폴더의 이름."
새로 생성된 폴더는 항상 C:\Windows\System32 경로에 위치하지만, 다른 폴더를 가리키기 위해 cd를 사용할 수 있습니다.

상기와 같은 목적을 위해 mkdir를 md로 대체할 수 있습니다. 디렉터리의 내용을 제거하려면 rmdir(remove directory) 명령어를 사용하세요:
rmdir "빈 콘텐츠가 있는 폴더의 이름."
9. New-Item
mkdir 및 md와 같은 별칭과 달리, New-item은 PowerShell에서 새 항목을 생성하고 값을 설정하는 공식 cmdlet입니다. 이 명령을 사용하여 파일과 폴더를 생성할 수 있을 뿐만 아니라 레지스트리 키와 항목을 만들 수 있습니다.
New-item명령어를 사용하여 새 디렉터리를 생성하려면 다음을 입력하세요:
New-item -Path "디렉터리 경로 위치\" -Name "귀하의 선택한 이름" -ItemType "directory"- 디렉터리가 생성되면, 해당 폴더 안에
New-item을 사용하여 새 파일을 배치할 수 있습니다.
New-item -Path "생성된 디렉터리 경로 위치\" -Name "파일 이름.txt" -ItemType "file" -Value "귀하의 선택한 텍스트를 삽입."
- 새로 생성된 파일은 해당 목적지 폴더에 있을 수 있습니다.

10. Remove-Item
특정 폴더에서 .TXT, .DOC, .PDF, .WMV와 같은 확장자를 가진 모든 파일을 제거하고 싶으신가요? 먼저 cd를 사용하여 정확한 폴더 경로를 지정한 다음, 아래와 같이 Remove-Item cmdlet을 사용합니다:
Remove-Item * -Include *(filetype) -Exclude *(Any variable or number)
위의 방법은 숨겨진 파일이나 읽기 전용 파일을 식별하고 제거하거나 특수 문자가 있는 파일을 삭제하는 데 유용합니다.
알아두면 좋은 점: PC에서 파일을 제거하는 데 문제가 있으신가요? Windows에서 삭제할 수 없는 파일을 강제로 삭제하는 방법을 배우세요.
11. Set-ExecutionPolicy
보안 목적상, PowerShell은 구성 파일, 스크립트 및 기타 매개변수에 영향을 미치는 자체 실행 정책을 가지고 있습니다. 이 보안 기능은 Set-executionPolicy 명령어를 사용하여 수행할 수 있으며, -force와 같은 플래그와 함께 사용되면 기존 항목을 덮어씁니다. 다음과 같은 구문을 따릅니다.
Set-ExecutionPolicy
[-ExecutionPolicy]
[[-Scope]]
[-Force]
[-WhatIf]
[-Confirm]
[]예를 들어, Set-ExecutionPolicy 명령어를 사용하여 Chocolatey 소프트웨어를 설치하는 코드는 다음과 같이 표시됩니다. 실행되면 컴퓨터에 공식 Chocolatey 소프트웨어를 다운로드하고 설치합니다.
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol =[System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
12. Select-Object 및 Sort-Object
폴더나 하위 폴더에 많은 파일과 확장자가 있을 경우, 미리 정의된 속성을 기준으로 오름차순 또는 내림차순으로 정렬하거나 선택하고 싶을 수 있습니다. 이때 cmdlet Sort-Object 및 Select-Object가 여러 개체를 한 번에 재배치하는 데 도움을 줄 수 있습니다.
정렬 및 선택은 다양한 폴더의 모든 파일과 컴퓨터의 기존 프로세스에 적용할 수 있습니다. 아래는 메가바이트 단위의 작업 집합(WS) 크기를 기준으로 가장 중요한 10개 프로세스를 정렬하고 선택하는 예시입니다.
Get-process | Sort-Object -Property WS | Select-Object -Last "항목 수"
역사적 정보와 같은 다양한 매개변수에 대해 정렬 및 선택을 사용할 수 있으며, 메모장 파일에 포함된 모든 항목을 정렬하거나 컴퓨터의 다양한 이벤트를 정렬하는 데 사용할 수 있습니다.
13. Start- 및 Stop-Process
Windows에서 새 프로세스를 시작하거나 기존 프로세스를 중지하고 싶을 때, PowerShell cmdlet을 사용하여 이를 신속하게 달성할 수 있습니다.
프로세스를 신속하게 종료하려면 Stop-Process cmdlet을 사용하세요. 아래 예시는 WordPad의 프로세스를 종료하는 방법을 보여줍니다.
Stop-Process -Name "Process or Application name"
동일하게 PowerShell 창에서 새로운 애플리케이션을 직접 시작하려면 Start-Process cmdlet과 -FilePath 플래그를 입력합니다.
Start-Process -FilePath "Application name"
팁: Windows에서 실행 중인 백그라운드 애플리케이션과 프로세스를 중지하는 방법을 배우세요. 자원을 소모하고 있습니다.
14. Suspend- 및 Resume-Service
실행 중인 서비스를 시작하거나 중지하는 대신, 직접 일시 중지할 수 있습니다. Suspend-service cmdlet 사용은 간단하며 현재 사용하지 않는 서비스의 RAM 및 CPU 사용량을 줄이는 데 도움이 됩니다.
참고: 중지할 서비스의 이름을 얻으려면 Get-service를 사용할 수 있습니다.
Suspend-Service -DisplayName "Service full name"
종료된 서비스는 간단한 Resume-Service 명령어로 나중에 다시 시작할 수 있습니다. 시스템에 부정적인 영향을 주지 않고 일시 중지할 수 있는 서비스가 무엇인지 확실하지 않은 경우, 다음 명령어를 사용하세요:
Get-Service | Where-Object {$_.CanPauseAndContinue -eq "True"} | Suspend-Service -Confirm
15. Test-Path
프로그래밍에서 파일 경로 오류를 피하려면 구문에서 파일 경로가 정확한지 확실히 해야 합니다. 파일 탐색기를 통해 항상 확인할 수 있지만, 더 정확한 방법은 Test-Path cmdlet을 사용하는 것으로, 주어진 경로가 존재하는지에 대한 답을 “True” 또는 “False”로 제공할 수 있습니다.
Test-Path -Path "경로 이름"
이 명령어를 수정하여 특정 파일의 가용성을 테스트하고, 레지스트리 경로의 정확성을 확인하며, 특정 파일 유형 외 다른 파일이 컴퓨터에 있는지 여부를 결정할 수 있습니다.
16. Wait-Process
여러 프로세스가 동시에 실행되고 있을 때, 그중 하나 이상이 중지된 후 다시 사용할 수 있도록 기다리려고 할 수 있습니다. Wait-Process cmdlet이 큰 도움이 될 수 있습니다. PowerShell이 프로세스가 중지되기 전에 기다릴 타임아웃을 지정할 수 있습니다.
Wait-Process -Name "Process name" -Timeout (초 단위)
기타 필수 PowerShell 명령어
위의 PowerShell 명령어 외에도 다음 cmdlet과 함수를 배우는 것도 유용합니다:
Echo는 PowerShell 콘솔에 값을 출력하는 데 사용되는 cmdlet입니다.Get-Host는 Windows에서 PowerShell을 호스팅하는 프로그램의 전체 세부정보를 제공합니다.Test-JSON은 문자열이 유효한 JSON 객체인지 테스트하는 데 사용되는 고급 cmdlet입니다.Trace-command는 전체 표현식이나 명령을 추적하여 포함된 매개변수 및 플래그를 찾습니다.Write-output은 이름에서 알 수 있듯이 콘솔 창에서 마지막 명령의 출력을 제공합니다.
팁: 시스템에서 제거하지 않도록 악성코드처럼 보일 수 있는 합법적인 Windows 프로세스를 신속하게 확인하세요.
자주 묻는 질문
“PowerShell 스크립트가 cmdlet의 이름으로 인식되지 않음” 오류를 해결하려면 어떻게 해야 하나요?
PowerShell이 cmdlet의 이름을 인식하지 않는 경우, 경로 변수가 올바르게 설정되지 않았을 수 있습니다. 잘못된 폴더 경로를 수정하여 경로 변수를 수정하면 됩니다.
PowerShell에서 오류 출력을 변수로 캡처하려면 어떻게 해야 하나요?
PowerShell에는 다양한 cmdlet을 입력할 때 모든 오류 출력을 캡처하도록 설계된 오류 변수 매개변수인 $ErrorVariable이 있습니다. 이는 문제 해결에 사용할 수 있습니다.
Image credit: DepositPhotos. 모든 스크린샷은 Sayak Boral에 의해 제공됩니다.