PowerShell을 사용하여 시스템 이벤트를 효과적으로 로깅하는 방법



PowerShell은 시스템 이벤트를 자세히 살펴보는 데 매우 유용합니다.특히 PC가 마지막으로 재부팅되거나 종료된 시간을 일일이 수동으로 로그를 뒤지지 않고 추적하고 싶을 때 유용합니다.시간을 크게 절약해 줄 뿐만 아니라, 익숙해지면 시스템 상태를 모니터링하거나 최근 시스템 이벤트에 대한 궁금증을 해소하는 다양한 방법을 찾을 수 있습니다.처음에는 명령어가 다소 복잡해 보일 수 있지만, 조금만 살펴보면 금방 이해할 수 있습니다.다만, 특히 심층적인 로그 분석이나 자동화 작업을 할 때는 관리자 권한으로 PowerShell을 실행해야 한다는 점을 기억하세요.

PowerShell에서 마지막 재시작 시간을 확인하고 종료를 추적하는 방법

PowerShell 스크립트를 사용하여 컴퓨터가 마지막으로 재시작된 시간을 확인합니다.

시스템 재부팅 시점을 확인하는 대표적인 방법입니다.시스템 속도가 느리거나 시작 문제를 해결하는 경우, 이 정보를 빠르게 확인하여 최근 재부팅 여부를 판단할 수 있습니다.이 명령어는 시스템 시작 및 종료와 관련된 특정 이벤트 ID를 검색하고 가장 최근 이벤트만 표시하므로 사용하기 쉽습니다.일부 시스템에서는 이벤트 로그 크기나 시간 차이 때문에 바로 감지되지 않을 수 있으므로, 결과가 정확하지 않은 경우 잠시 후 다시 실행하거나 이벤트 로그 설정을 확인해 보세요.최상의 결과를 얻고 관리자 권한으로 PowerShell을 실행하는 것이 좋습니다.명령어는 다음과 같습니다.

Get-WinEvent -LogName System | Where-Object {$_. Id -eq 6005 -or $_. Id -eq 6006 -or $_. Id -eq 6008} | Select-Object -Last 1 | Format-List

이 명령은 시작 이벤트 ID(6005, 6006, 6008)를 가져오는데, 6008은 시스템 강제 종료(충돌 또는 전원 장애)를 나타냅니다.”Select-Object -Last 1″ 명령은 가장 최근 이벤트만 추출하므로 로그 파일이 너무 많지 않다면 상당히 정확한 마지막 재시작 타임스탬프를 얻을 수 있습니다.날짜/시간, 이벤트 설명, 소스 정보와 같은 세부 정보도 확인할 수 있습니다.

PowerShell을 사용하여 최근 몇 번의 시스템 종료를 확인하십시오.

컴퓨터가 마지막으로 종료된 시점을 확인하려면 이벤트 ID 13을 찾아보세요.이 이벤트는 운영체제가 정상적으로 종료되거나 오류로 인해 종료될 때마다 “시스템” 이벤트 로그에 기록됩니다.최근 10개의 종료 기록을 가져오려면 다음 명령어를 사용하세요.

Get-EventLog -Newest 10 -LogName "System" -InstanceID "13"

이 명령은 최근 종료 이벤트를 표 형식으로 깔끔하게 정리해 보여줍니다.타임스탬프, 이벤트 세부 정보 등을 확인하고 종료 빈도나 시점을 분석할 수 있습니다.부팅 문제를 해결하거나 시스템 활동에 대해 궁금할 때 유용합니다.

시스템이 마지막으로 다시 시작된 시점을 확인하세요.

마찬가지로 시스템이 마지막으로 시작된 시점을 확인하려면 이벤트 ID 12를 찾으세요.이것이 바로 “시스템 시작됨” 메시지입니다.위와 같은 방식으로 인스턴스 ID를 12로 변경하기만 하면 됩니다.

Get-EventLog -Newest 10 -LogName "System" -InstanceID "12"

이 명령어를 사용하면 기기가 마지막으로 꺼진 상태에서 켜진 상태를 확인할 수 있습니다.이는 업데이트나 유지보수 일정을 잡기 전에 유용한 정보가 될 수 있습니다.자동화를 선호한다면 이 명령어를 주기적으로 실행하고 기록을 남기도록 스크립트를 작성할 수도 있습니다.

Windows는 이러한 정보를 상당히 일관되게 기록하기 때문에, PowerShell 명령어를 사용하면 마치 시스템 일기를 빠르게 확인할 수 있습니다.다만, 로그 파일이 주기적으로 순환되거나 삭제될 수 있으므로, 이러한 로그 파일이 영구적으로 보존되지 않거나 로그가 잘려나간 경우 첫 번째 이벤트가 누락될 수 있다는 점에 유의해야 합니다.또한, 권한 문제가 발생하는 경우 PowerShell을 관리자 권한으로 실행해 보세요.종종 문제가 해결됩니다.

PowerShell을 사용하여 시스템 이벤트를 기록하는 또 다른 방법

보다 직접적인 접근 방식을 선호하고, 특히 기존 명령줄 도구에 이미 익숙하다면 PowerShell 설명서에서 다양한 명령어를 살펴볼 수 있습니다.예를 들어, 최근 10번의 종료 기록을 찾는 명령어는 Get-EventLog -Newest 10 -LogName "System" -InstanceID "13"매우 간단하며, 결과는 깔끔한 표 형식으로 제공됩니다.따라서 어떤 로그 항목이 무엇에 해당하는지 추측할 필요 없이 데이터가 바로 표시됩니다.

시스템이 마지막으로 다시 시작된 시간을 확인하려면 ID를 12로 바꾸기만 하면 됩니다.간단하죠? 이러한 명령을 자동화하거나 스크립트를 만들거나 모니터링 시스템에 통합할 수도 있습니다. PowerShell은 이러한 작업을 수행하기에 충분히 유연합니다.

  • 로그가 누락되었거나 명령이 실패하는 경우 PowerShell이 ​​관리자 권한으로 실행되고 있는지 확인하십시오.
  • 로그는 순환되거나 삭제될 수 있으므로 최근 항목이 누락될 수 있다는 점에 유의하십시오.
  • 이 명령어를 사용하면 시스템 시작/종료 이벤트의 타임라인을 빠르게 확인할 수 있습니다.

이러한 명령어를 이것저것 시도해 보는 것만으로도 시스템 활동을 놀라울 정도로 명확하게 파악할 수 있습니다.항상 완벽한 것은 아니지만, 윈도우 로그를 수동으로 하나하나 확인하는 것보다는 훨씬 낫습니다.

마무리

PowerShell은 단순히 복잡한 스크립팅 도구가 아닙니다.어떤 환경에서는 바로 작동했지만, 다른 환경에서는 관리자 권한으로 실행하거나 로그 설정을 조정해야 했습니다.윈도우가 때때로 필요 이상으로 복잡하게 만드는 경향이 있으니 어느 정도 이해가 갑니다.어쨌든 시스템 이벤트를 추적하는 데 관심이 있다면 이러한 명령어가 도움이 될 것입니다.익숙해지면 그리 어렵지 않고, 컴퓨터가 실제로 내부적으로 어떤 작업을 하고 있는지 파악하는 데 유용한 방법입니다.

요약

  • PowerShell 명령어를 사용하여 마지막 시작/종료 이벤트를 찾으세요.
  • PowerShell을 관리자 권한으로 실행하여 모든 권한을 확보하십시오.
  • 기록을 유지하기 위해 이벤트 ID와 로그를 주기적으로 확인하세요.
  • 정기적인 모니터링이 필요하다면 스크립트를 사용하여 자동화하세요.

이게 도움이 되길 바라요



이 글이 도움이 되었나요?