PowerShell을 활용한 자동화 스크립트 작성법

    목차
반응형

 

💡 PowerShell로 업무 자동화하기


✅ PowerShell 기본 개념

PowerShell은 객체 지향 기반의 스크립트 언어로, 기존 CMD보다 강력한 기능을 제공합니다.

1️⃣ PowerShell 실행 방법

  1. Win + XWindows PowerShell(관리자 권한으로 실행)
  2. Win + Rpowershell 입력 후 실행
  3. CMD에서 powershell 입력 후 실행

2️⃣ PowerShell 실행 정책 변경 (스크립트 실행 허용)

기본적으로 PowerShell은 스크립트 실행이 제한되어 있습니다. 이를 해제하려면 다음 명령어를 실행합니다.

Set-ExecutionPolicy RemoteSigned

RemoteSigned → 로컬 스크립트 실행 허용, 인터넷 다운로드 스크립트는 서명 필요


✅ PowerShell 기본 문법

1️⃣ 변수 사용

$이름 = "홍길동"
echo "안녕하세요, $이름 님!"

$변수명 형식으로 변수 선언

2️⃣ 조건문

$파일경로 = "C:\test.txt"
if (Test-Path $파일경로) {
    echo "파일이 존재합니다."
} else {
    echo "파일이 없습니다."
}

Test-Path → 파일 또는 폴더 존재 여부 확인

3️⃣ 반복문

for ($i=1; $i -le 5; $i++) {
    echo "현재 숫자: $i"
}

for문을 활용한 반복 실행


✅ 실무에서 활용할 수 있는 자동화 스크립트

1️⃣ 자동 백업 스크립트

$source = "C:\중요파일"
$destination = "D:\백업"
Copy-Item -Path $source -Destination $destination -Recurse -Force
Get-Date | Out-File -Append "D:\backup_log.txt"
echo "백업이 완료되었습니다."

Copy-Item → 폴더 및 파일 복사

Get-Date | Out-File → 현재 날짜 기록하여 로그 생성

2️⃣ 네트워크 설정 자동화

Write-Host "네트워크 설정 초기화 중..."
ipconfig /release
ipconfig /renew
ipconfig /flushdns
Write-Host "네트워크 초기화 완료"

네트워크 문제 발생 시 자동 실행 가능

작업 스케줄러에서 특정 시간마다 실행하도록 설정 가능

3️⃣ 로그 파일 자동 정리 (30일 이상 된 로그 삭제)

$logPath = "C:\Logs"
$limit = (Get-Date).AddDays(-30)
Get-ChildItem -Path $logPath -Filter "*.log" | Where-Object {$_.LastWriteTime -lt $limit} | Remove-Item -Force
Write-Host "오래된 로그 파일 삭제 완료"

30일 이상 된 로그 파일 자동 삭제

서버 유지보수 시 유용한 자동화 작업


🚀 PowerShell을 활용한 자동화 마무리

PowerShell을 활용하면 백업, 네트워크 설정, 로그 정리 등 다양한 작업을 자동화할 수 있습니다.

반복적인 작업 자동 실행 (백업, 네트워크 설정 등)
스크립트 실행 정책 변경 후 활용 가능
작업 스케줄러와 연동하여 자동 실행 가능

반응형