Windows Server 2025 / 서버 관리에 필요한 PowerShell 명령·도움말·파이프라인 기초
PowerShell은 명령의 결과를 단순한 화면 글자가 아닌 속성을 가진 객체로 다룹니다. Get 명령으로 상태를 조회하고 Where-Object·Select-Object·Sort-Object를 연결하면 서버 정보를 조건에 맞게 골라 확인할 수 있습니다.
실행 환경과 도움말을 확인합니다
이 실습은 Windows Server 2025의 Windows PowerShell 5.1에서 실행할 수 있는 조회 명령을 사용합니다. PowerShell 7을 별도로 설치했다면 모듈과 명령 호환성을 구분해야 합니다. 조회 자체에 관리자 권한이 필요 없는 명령도 있지만, 서버 관리 권한이 제한된 계정에서는 일부 정보가 보이지 않을 수 있습니다.
$PSVersionTable Get-Command Get-Service Get-Help Get-Service -Examples
Get-Command는 명령이 현재 세션에 있는지, Get-Help는 사용법과 매개변수를 확인하는 데 사용합니다. 도움말 파일이 충분하지 않아도 무조건 외부 스크립트를 내려받아 실행하지 말고 공식 문서에서 같은 명령의 버전을 확인하세요. 명령 이름은 보통 동사-명사 형식이며 Get과 Set의 의미가 다릅니다.
객체의 속성을 먼저 살펴봅니다
서비스 조회 결과는 이름, 표시 이름, 상태 등 여러 속성을 가집니다. 화면의 열 순서를 외워 문자열을 자르기보다 객체 속성을 사용하세요. PowerShell 객체 설명은 이런 속성과 파이프라인의 관계를 다룹니다.
Get-Service | Select-Object -First 5 Get-Service | Get-Member Get-Service -Name WinRM | Select-Object Name,DisplayName,Status
Get-Member에서는 속성과 메서드를 구분해서 볼 수 있습니다. 메서드는 동작을 수행할 수 있으므로 이름만 보고 호출하지 않습니다. 실습은 조회와 필터만 사용하고 서비스를 중지하거나 시작하지 않습니다.
파이프라인으로 조건을 연결합니다
세로선 |는 앞 명령이 내보낸 객체를 다음 명령으로 전달합니다. 아래 예시는 실행 중인 서비스만 선택하고 이름순으로 정렬한 뒤 필요한 열을 남깁니다. $_는 현재 처리 중인 객체를 뜻합니다.
Get-Service |
Where-Object { $_.Status -eq 'Running' } |
Sort-Object Name |
Select-Object Name,DisplayName,Status
비교 실습에서는 같은 명령의 Running만 Stopped로 바꿔 보세요. 선택되는 서비스 집합이 달라지는지 확인한 뒤 원래 값으로 되돌립니다. 이는 조회 조건 변경이므로 실제 서비스 상태는 바뀌지 않습니다.
-eq는 같음, -ne는 다름, -gt는 큼을 비교하는 연산자입니다. -like는 패턴 비교에 사용합니다. 숫자를 비교할 때 표시된 문자열을 그대로 쓰면 의도한 수치 비교와 달라질 수 있으므로 속성의 형식도 확인합니다.
변수와 단위를 명시한 결과를 만듭니다
아래 예시는 고정 디스크를 조회하여 용량과 여유 공간을 GiB 단위로 계산합니다. PowerShell의 1GB는 1,073,741,824바이트이므로 표시 이름에도 단위의 의미를 드러냈습니다. 드라이브 구성에 따라 행 수와 값은 달라집니다.
$labDisks = Get-CimInstance Win32_LogicalDisk -Filter 'DriveType=3'
$labDisks | Select-Object DeviceID,
@{Name='SizeGiB';Expression={[math]::Round($_.Size / 1GB,1)}},
@{Name='FreeGiB';Expression={[math]::Round($_.FreeSpace / 1GB,1)}}
변수에는 화면 표가 아니라 디스크 객체가 들어 있습니다. 같은 $labDisks를 다른 조건으로 필터링할 수도 있습니다. Format-Table은 사람이 읽을 마지막 화면에 사용하고, 이후 CSV로 저장할 데이터 앞에는 넣지 않습니다. 서식용 객체로 바뀌면 원래 데이터의 열을 저장하기 어려워집니다.
조회와 변경 명령을 구분합니다
- 먼저 Get-Command와 도움말로 명령과 매개변수를 확인합니다.
- Get으로 현재 값을 기록한 뒤 변경 필요성을 판단합니다.
- 변경 명령이 -WhatIf를 지원하면 예정 작업을 검토합니다.
- 운영 영향과 복구 방법은 -WhatIf 결과와 별도로 확인합니다.
- 스크립트는 읽을 수 있는 .ps1 파일로 보관하고 필요한 실행 위치를 기록합니다.
명령을 찾을 수 없다는 오류는 오타, 모듈 미설치 또는 다른 PowerShell 버전일 수 있습니다. 권한 오류와 구분하세요. 관리 작업이 막혔다고 실행 정책과 보안 기능을 한꺼번에 해제하지 않고, 신뢰한 스크립트와 조직의 실행 정책에 맞는 방법을 사용합니다.









