IT 기술 문서
PowerShell 자동화 스크립트 심화 가이드 – 실무 적용 사례
- it2033 2일 전 2025.02.03 13:05
-
- 7
- 0
PowerShell로 더욱 강력한 자동화 구현하기
PowerShell은 단순한 명령어 실행을 넘어서 자동화, 유지보수, 시스템 관리까지 확장할 수 있는 강력한 스크립트 언어입니다.
이번 글에서는 고급 PowerShell 활용법, 실무에서 유용한 자동화 스크립트 패턴, 그리고 작업 스케줄러 연동을 포함한 자동화 사례를 소개합니다.
PowerShell 스크립트 실행 정책과 환경 설정
기본적으로 PowerShell은 보안 정책으로 인해 스크립트 실행이 제한되어 있습니다.
1️⃣ 실행 정책 변경 (스크립트 실행 허용)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
✅ RemoteSigned → 로컬에서 만든 스크립트 실행 가능, 인터넷 다운로드 스크립트는 서명 필요
✅ Unrestricted → 모든 스크립트 실행 허용 (주의 필요!)
2️⃣ 관리자 권한으로 PowerShell 실행
Win + X
→ Windows PowerShell(관리자) 선택또는
Start-Process powershell -Verb RunAs
실행
PowerShell을 활용한 자동화 스크립트 패턴
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️⃣ 오래된 로그 파일 자동 정리
$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일 이상 된 로그 파일 자동 삭제
✅ 서버 유지보수 시 유용한 자동화 작업
4️⃣ 서비스 자동 모니터링 및 재시작
$service = Get-Service -Name "wuauserv"
if ($service.Status -ne "Running") {
Restart-Service -Name "wuauserv"
Write-Host "Windows 업데이트 서비스가 재시작되었습니다."
} else {
Write-Host "서비스가 정상 작동 중입니다."
}
✅ Windows 업데이트 서비스 자동 모니터링
✅ 서비스가 비정상적으로 종료될 경우 자동 재시작
PowerShell과 작업 스케줄러 연동
PowerShell 스크립트를 특정 시간에 자동 실행하려면 **작업 스케줄러(Task Scheduler)**와 연동하면 됩니다.
1️⃣ 작업 스케줄러에 PowerShell 스크립트 추가 (명령어 사용)
schtasks /create /tn "DailyNetworkReset" /tr "powershell.exe -File C:\scripts\network_reset.ps1" /sc daily /st 03:00 /ru SYSTEM
✅ 매일 오전 3시에 네트워크 설정 초기화 실행
✅ 관리자 권한 문제를 방지하기 위해 /ru SYSTEM
옵션 사용
2️⃣ 작업 스케줄러에서 등록된 작업 실행 및 확인
schtasks /query /tn "DailyNetworkReset" # 등록된 작업 확인
schtasks /run /tn "DailyNetworkReset" # 즉시 실행
schtasks /delete /tn "DailyNetworkReset" # 작업 삭제
✅ 명령어 한 줄로 작업 등록, 실행, 삭제 가능
✅ GUI 없이 빠르게 작업 설정 가능
PowerShell 자동화 활용 마무리
PowerShell을 활용하면 파일 관리, 네트워크 설정, 서비스 모니터링, 백업, 로그 정리 등 다양한 작업을 자동화할 수 있습니다.
✅ 반복적인 유지보수 작업 자동 실행 가능
✅ 작업 스케줄러와 연동하여 자동 실행 가능
✅ 관리자 권한 문제 해결을 위한 실행 정책 설정 방법 포함
- 다음글윈도우 작업 스케줄러(Task Scheduler)와 배치파일(.bat) 연동 가이드2025.02.03
댓글목록
등록된 댓글이 없습니다.