💙 PowerShell을 활용한 서버 자동화 및 모니터링 기초

PowerShell 튜토리얼

고급 난이도
튜토리얼 타입
10/17 등록일

PowerShell을 활용한 서버 자동화 및 모니터링 기초

고급
태그
튜토리얼 가이드 학습 자동화 모니터링
## 학습 목표
서버 관리 작업을 PowerShell 스크립트로 자동화하고 실시간 상태 모니터링 시스템을 구축하는 능력을 길러줍니다.

## 준비사항
- Windows Server 환경 또는 Hyper-V 기반 가상 머신
- PowerShell 5.1 이상 설치
- 네트워크 및 서버 관리 기본 지식
- Visual Studio Code 또는 PowerShell ISE 편집기

## 단계별 진행

### 1단계: 기초 설정
PowerShell 환경을 구성하고 서버 연결 설정합니다. 예: Remote Registry 서비스 활성화

### 2단계: 핵심 구현
서버 상태 모니터링 스크립트 개발, 로그 분석 및 자동 백업 기능 구현

### 3단계: 고급 기능
모듈화된 스크립트 작성, 이벤트 로그 실시간 추적, 알림 시스템 통합

### 4단계: 완성 및 테스트
실제 서버 환경에서 스크립트 검증, 오류 처리 추가, 배포 준비

## 다음 학습 단계
- Azure Automation과의 연동
- DSC(DSC Configuration) 활용한 상태 관리
- WMI/ CIM을 통한 고급 모니터링
코드 예제
// 1단계: 서버 연결 설정
$server = "localhost"
Invoke-Command -ComputerName $server -ScriptBlock {
    Get-Service | Where-Object { $_.Status -eq "Running" }
}

// 2단계: 디스크 공간 모니터링
$threshold = 80
Get-WmiObject -Class Win32_LogicalDisk | ForEach-Object {
    if ($_.FreeSpace / $_.Size * 100 -lt $threshold) {
        Write-Warning "경고: $($($_.Name)) 디스크 사용률 $($($_.FreeSpace / $_.Size * 100))%"
    }
}

// 3단계: 이벤트 로그 분석
Get-WinEvent -FilterHashtable @{Logname="System"; ProviderName="Microsoft-Windows-Eventlog"} | Where-Object {
    $_.TimeCreated -gt (Get-Date).AddDays(-1) -and 
    $_.LevelDisplayName -eq "Error"
} | Select-Object TimeCreated, Message

// 4단계: 자동 백업 스크립트
$backupPath = "C:\Backups\"
Get-ChildItem -Path C:\ | Where-Object { $_.PSIsContainer } | ForEach-Object {
    $folderName = $_.Name
    Compress-Archive -Path "$($_.FullName)\*" -DestinationPath ".\$folderName.zip"
    Move-Item -Path ".\$folderName.zip" -Destination $backupPath
}
등록일: 2025년 10월 17일 20:58
언어 정보
언어
PowerShell
카테고리
Microsoft
인기도
#21
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요