perfmon.exe는 Windows 성능 모니터(Performance Monitor) 프로그램의 실행 파일입니다.
이 도구는 시스템의 CPU, 메모리, 디스크, 네트워크 등 자원 사용량을 실시간으로 모니터링하거나, 로그를 기록해 분석할 때 사용됩니다.
✅ 주요 기능
- 실시간 모니터링
- CPU 사용률, 메모리 사용량, 디스크 I/O, 네트워크 트래픽 등 다양한 성능 카운터를 실시간으로 확인 가능.
- 그래프 형태 또는 숫자 형태로 표시.
- 데이터 로그 수집
- 일정 시간 동안 성능 데이터를 수집하여 파일(CSV, BLG 등)로 저장 가능.
- 이후 문제 분석, 리포트 작성에 활용.
- 경고 설정(Alert)
- 특정 임계값 초과 시 알림, 프로그램 실행, 로그 기록 등의 작업 수행.
- 시스템 진단
- 성능 문제(속도 저하, 리소스 부족 등)를 분석하는 데 유용.
✅ 실행 방법
- Windows 검색창에서 perfmon 입력 후 실행.
- 또는 명령 프롬프트(CMD) / PowerShell에서:
perfmon.exe
- 혹은 작업관리자 > CPU or 성능 > 리소스모니터 ( 메뉴가 좌 하단이나 우상단에 있습니다.)
✅ 주요 사용 시나리오
- 서버나 PC의 리소스 부족 문제 추적.
- 애플리케이션 성능 분석 (DB 서버, 웹 서버 등).
- 네트워크 병목 현상 파악.
- Windows 성능 최적화 작업 전후 비교.
결론 간혹 이놈으로 인해서 cpu100%를 넘을때있다...
이런떈 과감하게 프로세세를 죽여벼리자 !! 악성으로 감염된것이 아닌지 다시한번 체크 !!
어떻게 ?
perfmon.exe이 간혹 악성일 때가있나?네, 기본적으로 perfmon.exe는 Windows 시스템의 정식 구성 요소이며 보안상 안전한 프로그램입니다. 그러나 다음과 같은 경우 악성코드가 위장할 가능성이 있습니다.
✅ 악성코드로 위장할 가능성
- 위치가 다를 경우
- 정상 경로:
-
C:\Windows\System32\perfmon.exe
- 이 경로 외(예: C:\Users\...\Temp\perfmon.exe, C:\ProgramData\...)에 있다면 의심.
- 디지털 서명 없음
- 정상 파일은 Microsoft 서명을 포함.
- 이상한 CPU/네트워크 활동
- perfmon.exe는 원래 네트워크 통신을 하지 않습니다.
- 과도한 CPU 사용 또는 외부 서버 접속 시 악성일 가능성 있음.
✅ 확인 방법
- 파일 위치 확인
- 작업 관리자 → 프로세스 → perfmon.exe → 우클릭 → 파일 위치 열기
- 경로가 C:\Windows\System32\인지 확인.
- 디지털 서명 확인
- 파일 속성 → 디지털 서명 → Microsoft Corporation 확인.
- 명령어로 해시 검사→ 공식 해시와 비교(원하면 최신 해시값 제공 가능).
-
Get-FileHash "C:\Windows\System32\perfmon.exe"
- 악성코드 스캔
- Windows Defender 또는 VirusTotal 업로드로 검사.
👉 원하면, 정상 perfmon.exe의 크기와 SHA256 해시값 목록을 알려줄까요? 아니면 PowerShell로 perfmon.exe 안전성 자동 검사 스크립트 만들어줄게료.
✅ 1. 관리자 권한 PowerShell 열기
- Win + X → Windows PowerShell (관리자) 선택
또는 - 검색 → PowerShell → 관리자 권한 실행
✅ 2. 실행 정책 일시 변경 (현재 세션만)
보안 때문에 .ps1 파일은 기본적으로 차단되므로, 세션 동안만 허용:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass - 위치가 다를 경우
<#
Check-PerfmonIntegrity.ps1
- perfmon.exe(성능 모니터) 무결성/행위 점검
- 관리자 권한 권장 (네트워크/프로세스 소유자 조회 정확도 ↑)
#>
$ErrorActionPreference = 'Stop'
function Write-Result($label, $ok, $detail) {
$icon = if ($ok) { '[OK] ' } else { '[WARN] ' }
Write-Host ("{0}{1} -> {2}" -f $icon, $label, $detail) -ForegroundColor ($ok ? 'Green' : 'Yellow')
}
# 1) 대상 파일/프로세스 수집
$expectedPath = Join-Path $env:WINDIR 'System32\perfmon.exe'
# 실행 중 프로세스(여러 개일 수 있음)
$procs = Get-Process -Name perfmon -ErrorAction SilentlyContinue
# 파일 존재 확인 (실행 중이 아니더라도 파일 무결성 점검 가능)
$fileExists = Test-Path $expectedPath
Write-Result "파일 존재" $fileExists $expectedPath
if ($fileExists) {
$file = Get-Item $expectedPath
# 2) 디지털 서명 검증
$sig = Get-AuthenticodeSignature -FilePath $file.FullName
$isSignedByMS = $sig.Status -eq 'Valid' -and ($sig.SignerCertificate.Subject -match 'Microsoft' -or $sig.SignerCertificate.Issuer -match 'Microsoft')
Write-Result "디지털 서명" $isSignedByMS ("Status={0}; Signer='{1}'" -f $sig.Status, $sig.SignerCertificate.Subject)
# 3) 해시/크기 정보 (참고용: 빌드/업데이트에 따라 값은 달라질 수 있음)
$hash = Get-FileHash -Path $file.FullName -Algorithm SHA256
Write-Host ("[INFO] 경로: {0}" -f $file.FullName)
Write-Host ("[INFO] 파일 크기: {0:N0} bytes" -f $file.Length)
Write-Host ("[INFO] SHA256: {0}" -f $hash.Hash)
} else {
Write-Host "[INFO] 예상 경로에 perfmon.exe가 없습니다. (미설치/손상/리다이렉션 가능)"
}
# 4) 실행 중인 perfmon.exe 행위 점검
if (-not $procs) {
Write-Host "[INFO] 실행 중인 perfmon.exe 프로세스가 없습니다."
} else {
foreach ($p in $procs) {
Write-Host "`n===== 프로세스 PID $($p.Id) ====="
$path = $null
try {
$path = (Get-Process -Id $p.Id -FileVersionInfo).FileName
} catch { }
$pathOk = ($path -ne $null) -and ($path -ieq $expectedPath)
Write-Result "프로세스 경로" $pathOk ($path ?? '<알 수 없음>')
# 4-1) 네트워크 연결 (perfmon.exe가 바깥으로 통신하는 건 일반적이지 않음)
try {
$conns = Get-NetTCPConnection -ErrorAction Stop | Where-Object { $_.OwningProcess -eq $p.Id }
} catch { $conns = @() }
$hasNet = $conns.Count -gt 0
Write-Result "네트워크 연결" (-not $hasNet) ($hasNet ? ($conns | Select-Object -First 5 | ForEach-Object { "$($_.LocalAddress):$($_.LocalPort) -> $($_.RemoteAddress):$($_.RemotePort) [$($_.State)]" } | Out-String).Trim() : '연결 없음')
# 4-2) CPU 사용률 샘플링 (짧게 1초)
$cpuBefore = (Get-Process -Id $p.Id).CPU
Start-Sleep -Seconds 1
$cpuAfter = (Get-Process -Id $p.Id -ErrorAction SilentlyContinue)?.CPU
if ($cpuAfter -ne $null) {
$cpuDelta = $cpuAfter - $cpuBefore
# 논리코어/샘플링 1초 감안한 대략적 사용률(%) 추정
$logicalCores = (Get-CimInstance Win32_ComputerSystem).NumberOfLogicalProcessors
$cpuPct = [math]::Round(($cpuDelta * 100.0) / 1 / $logicalCores, 1)
Write-Result "CPU 사용률(대략)" ($cpuPct -lt 10) ("약 {0}% (1초 샘플)" -f $cpuPct)
} else {
Write-Host "[INFO] CPU 샘플링 불가(프로세스 종료/권한 문제)."
}
}
}
# 5) 추가 검사: System32 외 위치에 존재하는 perfmon.exe 탐색 (위장 가능성)
$otherPerfmons = Get-ChildItem -Path $env:SystemDrive\ -Recurse -Filter perfmon.exe -ErrorAction SilentlyContinue `
| Where-O
PowerShell: Check-PerfmonIntegrity.ps1 파일로 아래를 저장하고 powershell에서 실행한다.
실행이 안되면
PowerShell 스크립트(.ps1)는 기본적으로 보안 정책 때문에 바로 실행되지 않습니다.
아래 단계대로 하면 안전하게 실행할 수 있어요.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
이 아래 배너는 쿠팡 파트너스 링크입니다. 클릭하고 구매하시면 일정액으 수수료를 제가 받게됩니다.
눈이 안좋아지시는분들 많으시죠? 소티스 광고 많이 나오던데. 먹어보니 역시 좋더군요..저도 꾸준히 먹고있습니다.
https://link.coupang.com/a/cMmeSQ
솔티스 타마플렉스 관절&연골 프로텍션 5days, 10정, 5세트 - 글루코사민 | 쿠팡
현재 별점 4.3점, 리뷰 1093개를 가진 솔티스 타마플렉스 관절&연골 프로텍션 5days, 10정, 5세트! 지금 쿠팡에서 더 저렴하고 다양한 글루코사민 제품들을 확인해보세요.
www.coupang.com
https://link.coupang.com/a/cMmfdM
로켓배송으로 빠르게, 로켓와우 멤버십으로 할인과 무료 반품까지 | 쿠팡
쿠팡 로켓배송, 로켓프레시, 로켓직구, 로켓럭셔리까지 쿠팡 멤버십으로 모든 헤택을 한 번에 누려보세요. 쿠팡 와우회원은 무료배송도 가능합니다
www.coupang.com
'Windows' 카테고리의 다른 글
윈도우 C를디스크 용량부족으로 250GB에서 1TB로 고스트복제 후 부팅안되는문제 해결법 (0) | 2025.09.02 |
---|---|
윈도우 네트워크 드라이브 설정시 암호 틀림 문제! (1) | 2025.08.04 |
모든사용자에서 윈도우스토어 python지우기 (0) | 2024.03.12 |
윈도우11 홈버전에서 administrator 암호 변경과 활성화 방법 (2) | 2024.02.12 |
윈도우11에서 컴퓨터 관리 사용자 관리 방법 (1) | 2024.02.12 |