주변을 보면 윈도 운영체제를 사용하는 사람이 굉장히 많은 것을 알 수 있다.
이러한 환경에서 PowerShell은 자동화 스크립트와 같이 우리 업무의 효율을 높여줄 수 있고,
운영체제의 기능들과 상호작용이 필요한 경우 매우 편리하게 작용한다.
놀랍게도 나는 사지방에 cmd가 막혀있어 반강제로 접했다🤣
파워쉘을 이용한 악성코드 사례가 상당히 많은 만큼 알아두면 좋을 것 같고
때마침 정리가 잘 된 글을 발견하여 같이 따라가 보려 한다.
앞으로의 과정은 해당 글을 참고하여 진행할 예정이다
Windows Server의 경우 작업 표시줄에 고정되어 있는 것이 일반적이지만, 다른 버전(Client)이나 없다면 위 사진과 같은 방법으로 찾을 수 있다.
명령어의 법칙 : Verb-Noun
명령어는 보통 (동사-명사)의 형태로 구성되어있다.
예를 들어 컴퓨터를 끄는 명령은 Stop-Computer이고, 명령어를 검색하는 Get-Command 등을 생각하면 쉽다.
몇 가지 명령들과 함께 이해해 보자
Get-Date
날짜를 받아오는 명령이다.
Get-Process
프로세스 정보를 출력해 준다.
Start-Process
프로세스를 시작하며, 아래 코드와 같이 특정 웹 주소와 함께 입력하면 웹 브라우저를 통해 열어준다.
Start-Process 'https://www.google.com'
Stop-Computer
컴퓨터를 종료하는 명령이다. 아래 코드를 그대로 입력해 보자
Stop-Computer -WhatIf
실행 시키면 아래 뭐라고 출력이 되어있다.
이는 -WhatIf 옵션의 결과로, 명령 실행시 어떤 동작을 수행하는지 알 수 있다.
-WhatIf는 모든 명령어와 사용 가능한 옵션이다.
이밖에도 수많은 명령어가 존재한다. 이에 대한 내용은 아래 Get-Command에서 살펴보자
검색하자 : Get-Command
Get-Command는 사용 가능한 PowerShell 명령어들을 보여준다.
이를 활용하여 다양한 명령어들을 알아보자
Get으로 시작하는 명령의 특징을 알겠는가?
바로 무언가를 변경하지 않고 출력해 주기만을 한다는 것이다.
이러한 명령어들은 아래 코드와 같이 확인 가능하다.
Get-Command -Verb Get
참고로 이 중에서 Get-Host는 해당 시스템, 특히 PowerShell의 정보를 보여주는 명령어이다.
-Verb옵션을 통해 동사 부분을 필터링했다면, 명사 부분도 가능하다.
아래 코드를 입력해 보자
Get-Command -Noun Date
날짜와 관련된 명령들이 출력된다.
-Verb, -Noun 옵션과 함께 세부적인 검색이 가능하다는 것을 알 수 있다.
위 옵션 말고도 *기호를 이용한 wildcard 검색도 가능하다. 실행 방법은 아래 코드와 같다.
Get-Command *restart*
두 가지 명령 합치기
두 가지 명령을 동시에 실행할 수도 있다. (따지고 보면 한 줄로)
Start-Sleep
Start-Sleep 명령은 특정 시간만큼 멈추게 한다.
아래 코드를 실행시켜 보면, 10초 동안 shell이 멈추는 것을 알 수 있다.
Start-Sleep -Seconds 10
이번엔 Start-Sleep과 위에서 살펴본 Restart-Computer를 합쳐보자
방법은 간단하다.
세미콜론(;)을 통해 나누어 입력해 주면 된다.
Start-Sleep -Seconds 3600; Restart-Computer
위 코드를 실행시키면 PowerShell을 도중에 끄지 않는 이상, 3600초 후에 컴퓨터가 재시작한다.
추가적으로, 도중에 명령 수행 과정을 멈추고 싶다면 CTRL + C를 하면 된다.
요약
명령어는 Verb-Noun의 형태이다.
ex) Stop-Computer, Get-Command, ...
Get-Date : 날짜를 받아온다
Get-Process : 프로세스 정보를 받아온다
Get-Host : 해당 시스템의 정보를 받아온다
Get-Command : 사용가능한 명령어를 받아온다 (-Verb, -Noun, *wildcard*)
Start-Process : 프로세스를 시작한다
Start-Sleep : 프로그램을 멈춘다 (-Seconds)
Stop-Computer : 컴퓨터를 종료한다
Restart-Computer : 컴퓨터를 재시작한다
참고
https://sid-500.com/2017/12/28/powershell-for-beginners-part-2-the-philosophy-verb-noun/
https://sid-500.com/2017/12/26/powershell-for-beginners-part-1-the-console-and-the-first-command/
'programming ⌨ > 파워쉘 PowerShell' 카테고리의 다른 글
나를 위한 PowerShell(5) : Pipeline과 출력 형식 (0) | 2024.02.29 |
---|---|
나를 위한 PowerShell(4) : 개인 설정과 ISE (0) | 2024.02.28 |
나를 위한 PowerShell(3) : Execution Policy와 우회 (0) | 2024.02.26 |
나를 위한 PowerShell(2) : 매개변수의 종류 (1) | 2024.02.25 |