Computer >> 컴퓨터 >  >> 문제 해결 >> 컴퓨터 유지 보수

Windows 10에서 PowerShell로 할 수 있는 15가지 고급 작업

PowerShell은 초보 사용자에게 상당히 어렵고 낯설게 느껴질 수 있습니다. 텍스트 기반 인터페이스는 요즘 시대에 다소 구식으로 보일 수 있지만, 익숙해지면 컴퓨터를 상상하지 못했던 방식으로 완벽하게 통제할 수 있게 됩니다.

숙련된 전문가는 PowerShell을 활용해 시스템의 거의 모든 영역에서 다양한 작업을 수행할 수 있습니다. 물론 그런 경지에 도달하려면 기본기를 탄탄히 다지고 꾸준히 연습해야 합니다. 아래에서 소개하는 15가지 작업을 익혀두면 PowerShell이 무엇인지 감을 잡고, 그 활용 범위가 어디까지 뻗어 있는지 체감할 수 있을 것입니다.

관리자 권한 PowerShell 프롬프트 열기

본격적으로 시작하기 전에 먼저 관리자 권한으로 PowerShell을 실행해야 합니다. Windows 검색창에 Powershell을 입력한 뒤, 해당 결과를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택하면 됩니다.

Windows 10에서 PowerShell로 할 수 있는 15가지 고급 작업

또는 검색창에 PowerShell을 입력한 후 CTRL + SHIFT + ENTER 키를 눌러도 동일한 결과를 얻을 수 있습니다.

날짜 및 시간 설정하기

컴퓨터의 날짜를 변경하는 방법은 여러 가지가 있지만, 아래의 PowerShell 명령어는 간결해서 초보자 연습용으로 딱 좋습니다. 다만 남의 컴퓨터에서 이 값을 함부로 조정하는 일은 피하세요. 시스템 시계가 잘못 맞춰지면 Active Directory 환경 전체에 심각한 문제를 일으킬 수 있습니다.

관리자 권한 PowerShell 프롬프트를 연 뒤 다음 명령어를 입력해 보세요.

Set-Date -date "12/25/2016 7:30 AM"

엔터 키를 누르면 컴퓨터가 크리스마스 당일이라고 인식하는 것을 확인할 수 있습니다. 같은 명령어로 원래 시간과 날짜를 되돌려 배운 내용을 점검하거나, 설정 앱을 통해 자동으로 시간을 동기화하도록 되돌릴 수도 있습니다.

날짜 및 시간 조정하기

경우에 따라서는 날짜와 시간을 완전히 바꾸는 대신 살짝 조정하고 싶을 때가 있습니다. 이럴 때는 앞서 사용한 Set-Date cmdlet을 약간 다른 방식으로 활용하면 됩니다.

Set-Date (Get-Date).AddDays(2)

위 명령어는 현재 컴퓨터에 설정된 날짜를 불러온 뒤, 날짜를 지정한 값만큼 더하는 프로세스를 실행합니다. AddHours, AddMinutes, AddSeconds를 사용해 더 세밀하게 조정할 수도 있고, 숫자 앞에 마이너스(-) 기호를 붙이면 시간을 과거로 되돌릴 수도 있습니다.

파일 및 폴더 확인하기

PowerShell 명령어를 사용하면 파일 탐색기를 일일이 뒤지지 않고도 특정 파일이나 폴더가 존재하는지 손쉽게 확인할 수 있습니다. Test-Path cmdlet을 사용해 지정한 경로 끝에 무언가 있는지 검증하기만 하면 됩니다. 예를 들어 Documents 폴더 안의 PowerShell.xls 파일을 찾으려면 다음과 같은 명령어를 사용합니다(폴더 구조에 따라 경로는 달라집니다).

Test-Path c:\Users\Brad\Documents\PowerShell.xls

정확한 파일 이름을 몰라도 검색이 가능합니다. 별표(*)를 와일드카드로 사용하면 특정 확장자의 파일을 한 번에 찾을 수 있습니다.

Test-Path c:\Users\Brad\Documents\*.xls

파일 및 폴더 이름 바꾸기

파일 경로를 정확하게 입력하는 데 익숙해졌다면, PowerShell로 파일과 폴더의 이름을 빠르고 효율적으로 변경할 수 있습니다. Rename-Item cmdlet으로 시작한 뒤 기존 경로를 적고, 원하는 새 이름을 지정하면 됩니다.

Rename-Item c:\Users\Brad\Documents\PowerShellisDifficult.xls PowerShellisEasy.xls

파일 및 폴더 이동하기

Rename-Item cmdlet을 사용해 본 적이 있다면 파일과 폴더를 옮기는 것도 어렵지 않습니다. 새 이름을 지정하던 부분을 새 위치 경로로 바꿔주기만 하면 됩니다.

Move-Item c:\Users\Brad\Documents\PowerShellisEasy.xls c:\Users\Brad\Important Documents

앞서 소개한 와일드카드와 결합하면 특정 형식의 파일들을 한 번에 다른 폴더로 이동시킬 수도 있습니다.

Move-Item c:\Users\Brad\Documents\*.xls c:\Users\Brad\Important Documents

프로그램 실행하기

Invoke-Item cmdlet을 사용하면 PowerShell 프롬프트에서 애플리케이션이나 파일을 바로 실행할 수 있습니다.

Invoke-Item c:\Windows\System32\notepad.exe

또한 해당 애플리케이션이 Windows PATH 환경 변수에 등록되어 있다면, 이름만 입력하는 것으로도 동일한 결과를 얻을 수 있습니다.

notepad

기본 프로그램으로 파일 열기

이 cmdlet은 사실 파일을 여는 데 더 유용하게 쓰입니다. 다만 한 가지 주의할 점이 있습니다. Invoke-Item으로 파일을 열면 해당 확장자에 기본값으로 지정된 프로그램이 실행되므로, 미리 기본 앱 설정이 의도에 맞게 되어 있는지 확인해 두세요.

Invoke-Item c:\MakeUseOf\Hello.txt

파일 일괄 실행하기

Invoke-Item cmdlet은 앞서 사용한 와일드카드 별표(*)와 결합할 때 진가를 발휘합니다. 이 명령어 하나면 폴더 안의 파일 전체를 순식간에 열어버릴 수 있습니다.

Invoke-Item c:\MakeUseOf\*.txt

텍스트 파일 읽기

PowerShell의 텍스트 기반 인터페이스가 VLC처럼 다양한 파일 형식을 표시할 수는 없습니다. 하지만 Get-Content 명령어를 사용하면 .txt 파일의 내용을 깔끔하게 출력하는 데에는 최적입니다.

Get-Content c:\MakeUseOf\Hello.txt
Windows 10에서 PowerShell로 할 수 있는 15가지 고급 작업

특히 용량이 큰 문서라면 전체 내용 대신 미리보기만 필요할 때가 많습니다. 이럴 때는 -totalcount 매개변수를 활용하세요.

Get-Content c:\MakeUseOf\Hello.txt -totalcount 5
Windows 10에서 PowerShell로 할 수 있는 15가지 고급 작업

위 예제에서는 문서의 처음 다섯 줄만 화면에 출력됩니다.

텍스트 파일에 내용 추가하기

Add-Content cmdlet을 사용하면 단순히 읽는 것을 넘어 .txt 문서에 내용을 직접 추가할 수도 있습니다.

Add-Content c:\MakeUseOf\Hello.txt "written by Brad Jones"

다만 이 방식은 추가한 텍스트가 문서 맨 끝에 그대로 붙기 때문에, 원하는 결과가 아닐 수도 있습니다.

Windows 10에서 PowerShell로 할 수 있는 15가지 고급 작업

이럴 때 특수 문자를 사용하면 새 줄에 내용이 추가되도록 지정할 수 있습니다.

Add-Content c:\MakeUseOf\Hello.txt "`nwritten by Brad Jones"
Windows 10에서 PowerShell로 할 수 있는 15가지 고급 작업

PowerShell을 다루면서 기억해 두면 유용한 특수 문자가 몇 가지 더 있습니다. `b는 백스페이스, `t는 수평 탭을 생성하며, `'는 작은따옴표, `"는 큰따옴표를 출력합니다.

텍스트 파일 측정하기

이름을 알 수 없는 특정 파일을 찾고 있거나, 하루 코딩 작업으로 얼마나 많은 코드를 생산했는지 궁금할 때가 있죠. PowerShell은 텍스트 파일의 줄 수를 효율적으로 계산하는 방법을 제공합니다. 다음 명령어를 사용해 보세요.

Get-Content c:\MakeUseOf\Hello.txt | Measure-Object
Windows 10에서 PowerShell로 할 수 있는 15가지 고급 작업

여기서는 두 개의 cmdlet을 함께 사용했습니다. cmdlet을 조합하는 이 기법은 PowerShell을 깊이 있게 다룰수록 점점 더 중요해집니다.

보안 및 시스템 관리

컴퓨터에 평소와 다른 이상 현상이 나타나면, 평소 문제를 진단하던 통로 자체를 사용할 수 없는 경우가 있습니다. 이런 상황에서 PowerShell로 동일한 정보를 조회하는 방법을 알고 있다면 매우 유용합니다.

Get-Service는 꼭 기억해 둘 만한 cmdlet입니다. 호출하면 컴퓨터에 설치된 모든 서비스와 현재 상태가 함께 표시됩니다.

Get-Service

좀 더 복잡한 명령어를 사용하면 원하는 종류의 서비스 정보만 골라 볼 수도 있습니다.

Get-Service | Where-Object {$_.status -eq "stopped"}

이 명령어는 각 개별 객체(명령어에서 $_로 표현됨)의 상태를 확인해 현재 중지된 서비스만 표시합니다. stoppedrunning으로 바꾸면 반대로 실행 중인 서비스 목록을 얻을 수 있습니다.

서비스 다시 시작하기

문제의 원인이 되는 서비스를 찾아냈다면 PowerShell에서 바로 재시작할 수 있습니다.

Restart-Service dbupdate

시스템이 사용하는 복잡한 내부 이름 대신, 표시 이름으로 서비스를 지정할 수 있는 매개변수도 있습니다.

Restart-Service -displayname "Dropbox Update Service"

서비스 설정 변경하기

간단한 재시작만으로 해결되지 않는 서비스 문제도 있습니다. 부팅 시 자동으로 시작되는 문제의 서비스가 있다면 PowerShell로 시작 설정을 변경할 수 있습니다.

Set-Service dbupdate -startuptype "manual"

목적에 따라 manual 대신 "automatic" 또는 "disabled"를 사용할 수도 있습니다.

멈춘 앱 새로 고침하기

앱이 스플래시 화면에서 멈추거나 실행조차 되지 않으면 정말 답답합니다. Windows 10은 기존 프로그램보다 앱을 강조했는데, 이런 소프트웨어는 사용자에게 문제 해결의 여지를 거의 주지 않는 경우가 많습니다.

그러나 PowerShell을 활용하면 이런 문제를 우회할 수 있습니다. MakeUseOf 독자 Gary Beaty가 공유한 팁입니다.

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

지금까지 다룬 명령어 중 가장 복잡한 형태이므로, 모든 요소를 완벽히 이해하지 못해도 실망할 필요는 없습니다. 다만 이 글에서 배운 cmdlet, 매개변수 등의 개념을 바탕으로 위 명령어가 어떤 흐름인지 어느 정도는 해석해 볼 수 있을 것입니다.

다음 단계

이 15가지 기법은 PowerShell이 할 수 있는 일의 극히 일부에 불과한 입문 과정입니다. 더 깊이 파고들려면 약간의 코딩 지식이나 최소한 배우려는 의지가 필요하지만, 투자한 시간만큼 확실한 보람을 얻을 수 있습니다.

마이크로소프트의 Windows PowerShell Owner's Manual이 좋은 출발점입니다. 이후에는 PowerShell 서브레딧(Reddit)도 살펴볼 만합니다. 게시판의 대다수 사용자가 전문가라 처음에는 벅차게 느껴질 수 있지만, 숙련자들이 어떤 일을 해내는지 직접 보며 실력 향상의 동기를 얻기에 좋은 곳입니다.

PowerShell 사용에 도움이 필요하신가요? 아니면 여러분의 노하우를 나누고 싶으신가요? 아래 댓글로 의견을 남겨주세요!