Windows PowerShell 스크립팅 튜토리얼
PowerShell 스크립팅을 사용하면 보고서를 가져오는 것부터 계정을 대량으로 업데이트하는 것까지, 반복적인 Windows 및 Active Directory 작업을 자동화할 수 있습니다. 이 튜토리얼은 기본부터 시작합니다. 변수, 파이프라인, 반복문, 함수 등을 다룬 다음, 오늘 바로 실행할 수 있는 스크립트까지 단계적으로 확장해 나갑니다. AD 계정 및 컴퓨터 관리, 파일 시스템 작업, 스크립트 스케줄링에 대한 전체 가이드를 다운로드하세요. 필요할 때 바로 사용할 수 있는 동작하는 스크립트를 준비해 두실 수 있습니다.
PowerShell 명령 스크립팅 튜토리얼(PDF) 다운로드
PowerShell 스크립트는 어떻게 작성하나요?
PowerShell 스크립트는 .ps1 확장자로 저장한 일반 텍스트 파일입니다. 어떤 텍스트 편집기에서도 작성할 수 있지만, 대부분의 사람들은 구문 강조, 자동완성, 통합 디버깅을 위해 PowerShell 확장 기능이 있는 Visual Studio Code를 사용합니다. 명령을 한 줄에 하나씩 입력한 뒤 파일을 저장하고 실행하세요.
작게 시작하세요. 값을 가져와 출력하는 두 줄짜리 스크립트는 모든 PowerShell 사용자가 의존하는 핵심 루프를 익히게 해줍니다: 작성, 실행, 조정. 섹션이 무엇을 하는지 적어두기 위해 줄의 맨 앞에 # 를 사용한 주석을 추가하세요. 몇 달 뒤에 읽게 될 스크립트는 스스로를 잘 설명해 주지 않는 경우가 드물기 때문입니다. 이 튜토리얼은 이전 개념 위에 다음 개념을 쌓아가므로, 초보자도 처음부터 끝까지 순서대로 따라갈 수 있습니다.
기본 PowerShell 명령은 무엇인가요?
cmdlet이라고 불리는 PowerShell 명령은 동사-명사 패턴을 따르기 때문에 읽고 의미를 짐작하기가 쉽습니다: Get-, Set-, New-, and Remove-. 몇 개의 cmdlet만 알아도 대부분의 첫날 작업을 처리할 수 있습니다:
Get-Help: 모든 cmdlet의 구문과 예제를 찾아보세요Get-Command: 현재 세션에서 사용할 수 있는 모든 cmdlet을 나열합니다Get-Member: 개체의 속성과 메서드를 확인합니다Get-Process: 실행 중인 프로세스를 확인합니다Get-ChildItem: 파일, 폴더 또는 레지스트리 키를 나열합니다
다음과 같이 입력하세요: Get-Help <cmdlet name> -Examples 상기할 필요가 있을 때 언제든지 사용하세요. PowerShell의 기본 제공 도움말은 거의 모든 cmdlet을 다룹니다. 치트 시트는 이를 작업별로 정리하므로 스크립트 중간에 찾을 필요가 없습니다.
PowerShell 스크립트를 실행하려면 어떻게 해야 하나요?
PowerShell을 열고 스크립트 폴더로 이동한 다음 다음과 같이 실행하세요: .\scriptname.ps1. 메시지에 스크립트를 로드할 수 없다고 나오면(스크립트 실행이 비활성화되어 있기 때문), 스크립트가 아니라 PowerShell의 실행 정책이 이를 차단하고 있는 것입니다.
실행 정책에는 여러 수준이 있으며, 잠금 상태부터 완전히 허용 상태까지 다양합니다. 잘못된 수준을 선택하면 아예 진행이 막히거나, 반대로 시스템이 노출될 수 있습니다. 이 가이드는 각 수준을 설명하고, 일상적인 스크립팅에서 적절한 균형을 이루는 수준이 무엇인지, 그리고 이를 안전하게 설정하는 정확한 명령을 안내합니다.
변수, 반복문, 함수는 어떻게 사용하나요?
변수는 $ 접두사를 사용해 값을 저장합니다. 예: $name = "Server01" . 변수에는 텍스트, 숫자 또는 전체 객체를 저장할 수 있으며, PowerShell이 유형을 알아서 처리해 줍니다.
반복문은 컬렉션에 대해 어떤 작업을 반복합니다. 가장 자주 사용하는 것은 foreach 루프입니다:
foreach ($user in $users) {
Write-Host $user.Name
}
함수 패키지는 재사용 가능한 로직을 제공하므로, 한 번만 작성하고 자주 호출할 수 있습니다:
function Get-Greeting($name) {
"Hello, $name"
}
각 개념마다 바로 붙여 넣고 필요에 맞게 조정할 수 있는 짧고 실행 가능한 예제가 제공됩니다.
Active Directory에서 PowerShell로 무엇을 자동화할 수 있나요?
RSAT(원격 서버 관리 도구)와 함께 설치되는 PowerShell의 ActiveDirectory 모듈은 디렉터리 작업을 위해 특별히 제작된 cmdlet을 추가합니다. 흔한 성과는 다음과 같습니다:
- 활동하지 않는 계정에 대한 보고 with
Search-ADAccount -AccountInactive - 특정 OU에서 사용자를 찾으려면
Get-ADUser -SearchBase - 일괄로 비밀번호 재설정 방법:
Set-ADAccountPassword - 그룹 멤버십을 감사하려면
Get-ADGroupMember
이 튜토리얼의 실습 예제는 각 항목의 패턴을 보여주므로, 빈 스크립트부터 시작하지 않고도 자신의 환경에 맞게 조정할 수 있습니다.
장기적으로 스크립트를 관리하고 싶지 않은 팀을 위해, 목적에 맞게 제작된 도구로 동일한 AD reporting 및 change tracking을 맞춤 코드 없이 수행할 수 있습니다.
자주 묻는 질문(FAQ)
공유하기