Computer >> 컴퓨터 >  >> 시스템 >> Windows

PowerShell vs 명령 프롬프트: CMD 명령어와 상응하는 PowerShell 명령어 총정리

PowerShell은 마이크로소프트가 자사의 명령 프롬프트(Command Prompt)를 대체하기 위해 개발한 강력한 도구입니다. 마이크로소프트는 이전에 PowerShell을 오픈 소스로 공개하고, Ubuntu, CentOS, Red Hat Enterprise Linux, OpenSUSE, Fedora 등 다양한 리눅스 배포판과 macOS의 최신 버전으로 확장 지원하겠다고 발표한 바 있습니다. 이후에는 Windows에 기본 탑재되던 기존 PowerShell보다 훨씬 많은 기능을 제공하는 PowerShell Core도 선보였습니다. PowerShell은 시스템 관리자를 위해 설계되었으며, 명령 프롬프트의 대안이 되는 것을 목표로 합니다. 크로스 플랫폼으로 확장됨에 따라 사용자는 서로 다른 운영 체제와 환경에서도 동일하게 작업할 수 있는 큰 이점을 얻게 되었습니다.

PowerShell vs 명령 프롬프트: CMD 명령어와 상응하는 PowerShell 명령어 총정리

그동안 PowerShell은 더 많은 cmdlet(파워셸 명령어)을 지원하도록 꾸준히 개선되어 왔으며, 덕분에 다양한 작업을 유연하게 처리할 수 있게 되었습니다. Windows 전용 소프트웨어와 서비스를 운영하는 조직을 위해 마이크로소프트는 Windows Server, Azure Active Directory, Exchange 등 자사 서비스들을 PowerShell로 관리할 수 있도록 구축해 왔습니다. GUI 기반 구성 관리 도구를 사용하는 것보다 서비스를 더 효율적으로 운영할 수 있고, 장기적으로 많은 운영 비용 절감에도 도움이 됩니다.

PowerShell에서 실행할 수 있는 CMD 명령어와 그에 상응하는 명령어

이번 글에서는 명령 프롬프트(CMD)의 기본 명령어 중 PowerShell 명령줄에서도 실행할 수 있는 것들을 하나씩 살펴보겠습니다.

PowerShell vs 명령 프롬프트: CMD 명령어와 상응하는 PowerShell 명령어 총정리

1. 디렉터리 이동하기

명령줄에서 원하는 위치로 이동하는 것은 아주 간단합니다. 명령 프롬프트에서 cd를 사용한다면, PowerShell에서는 다음 명령어를 사용하면 됩니다.

Set-Location "<PATH>"

2. 폴더 내용 목록 확인하기

폴더 안의 모든 내용을 나열하면 디렉터리 트리를 탐색하는 데 큰 도움이 됩니다. 명령 프롬프트에서는 dir을 사용하지만, PowerShell에서는 다음 명령어 하나면 충분합니다.

Get-ChildItem

이 명령어는 해당 디렉터리 안의 모든 파일과 폴더를 한 번에 보여 줍니다.

3. 파일·폴더 이름 변경하기

GUI 중심의 운영 체제에서 이름 변경은 당연한 기능처럼 여겨지지만, 원격 시스템에서 파일이나 폴더의 이름을 바꿔야 할 때는 명령줄이 필요합니다. 명령 프롬프트에서는 rename 명령어를 사용하지만, PowerShell에서는 다음과 같이 사용합니다.

Rename-Item "Path/of/the/file.txt" -NewName "NewNameOfTheFile.csv"

이 명령어를 사용하면 해당 파일의 이름뿐만 아니라 확장자까지 함께 변경할 수 있습니다.

PowerShell vs 명령 프롬프트: CMD 명령어와 상응하는 PowerShell 명령어 총정리

4. 명령어 도움말 확인하기

명령어는 알겠는데 정확한 용도가 궁금할 때, 명령 프롬프트의 /? 옵션은 큰 도움이 됩니다. 다행히 PowerShell에도 이러한 기능이 빠져 있지 않습니다. 다음 명령어로 특정 cmdlet의 역할을 확인할 수 있습니다.

Get-Help "CMDLET NAME"

5. 실행 중인 프로세스 종료하기

PowerShell이 있다면 작업 관리자에 의존하지 않고도 실행 중인 프로세스를 손쉽게 종료할 수 있습니다. 명령 프롬프트에서는 taskkill이 유용한 명령어인데, PowerShell에서는 다음과 같이 사용합니다.

Stop-Process -Name "ApplicationName.exe"

6. 원격 컴퓨터 종료하기

여기서 소개할 명령어는 학교나 교육기관에서 특히 자주 사용되는, 매우 실용적인 명령어입니다. 원격 컴퓨터나 서버 세션을 종료할 때 활용할 수 있습니다. 명령 프롬프트에서는 shutdown -s를 사용하지만, PowerShell에서는 다음 명령어로 원격 컴퓨터를 종료할 수 있습니다.

Stop-Computer -ComputerName "HostName1","HostName2","Gateway or Address"

7. 원격 컴퓨터 재시작하기

컴퓨터 종료와 마찬가지로, 명령 프롬프트의 shutdown -r에 해당하는 PowerShell 명령어는 다음과 같습니다.

Restart-Computer -ComputerName "HostNameNew","Gateway or Address"

8. 그룹 정책 강제 갱신하기

시스템의 그룹 정책(Group Policy)에 새로운 변경 사항이 적용되었을 때 이를 즉시 반영하려면 정책을 강제로 갱신해야 합니다. 명령 프롬프트에서는 gpupdate /force를 사용했지만, PowerShell에서는 다음 명령어로 문제없이 처리할 수 있습니다.

Invoke-GPUpdate -Computer "Name of the Host" -Force

9. 변수 설정하기

명령 프롬프트에서 변수를 설정하려면 다음과 같이 입력해야 합니다.

SET VariableName = "Value of the Variable"

반면 PowerShell에서는 $ 기호 하나로 모든 것이 해결됩니다. 다음과 같이 간단하게 변수를 선언할 수 있습니다.

$VariableName="Value of the Variable"

10. 컴퓨터를 도메인에 가입시키기

컴퓨터를 도메인에 가입시키는 작업 역시 생각보다 간단합니다. 명령 프롬프트에서는 다음 명령어를 사용합니다.

netdom /domain:domainName /user:userName /password:passwordForTheDomain member hostname /add

PowerShell에서는 다음 명령어를 활용하면 됩니다.

Add-Computer -DomainName "Domain" -Credential "Domain\Username" -Restart

CMD와 PowerShell, 무엇이 더 나을까?

자세히 살펴보면, 기본적인 명령 프롬프트 명령어들이 PowerShell에서는 오히려 조금 더 복잡해 보일 수 있습니다. 하지만 위에서 소개한 도메인 가입 명령어처럼 복잡한 작업을 수행할 때는 반대로 명령 프롬프트 쪽이 PowerShell보다 훨씬 복잡해집니다.

따라서 전반적으로는 명령 프롬프트보다 PowerShell을 사용하는 것이 더 나은 선택이라고 할 수 있습니다. 여기에 다양한 플랫폼과 환경에서도 사용할 수 있다는 점까지 더해지면 그 장점은 더욱 분명해집니다.

마이크로소프트가 명령 프롬프트를 일방적으로 대체하는 방식이 아니라, PowerShell을 지속적으로 발전시켜 자연스럽게 더 나은 선택지로 만들어 가기를 기대해 봅니다.

PowerShell vs 명령 프롬프트: CMD 명령어와 상응하는 PowerShell 명령어 총정리