다음을 통해 공유


about_Eventlogs

간단한 설명

이 문서에서는 PowerShell이 Windows 이벤트 로그에 이벤트를 기록하는 방법을 설명합니다.

자세한 설명

Windows PowerShell은 "Windows PowerShell"이라는 Windows 이벤트 로그를 만들어 Windows PowerShell 이벤트를 기록합니다. 이벤트 뷰어 또는 cmdlet과 같은 이벤트를 가져오는 cmdlet을 사용하여 이 로그를 Get-EventLog 볼 수 있습니다. 기본적으로 Windows PowerShell 엔진 및 공급자 이벤트는 이벤트 로그에 기록되지만 이벤트 로그 기본 설정 변수를 사용하여 이벤트 로그를 사용자 지정할 수 있습니다. 예를 들어 Windows PowerShell 명령에 대한 이벤트를 추가할 수 있습니다.

Windows PowerShell 이벤트 로그는 프로그램 엔진 시작 및 중지, Windows PowerShell 공급자 시작 및 중지와 같은 Windows PowerShell 작업의 세부 정보를 기록합니다. Windows PowerShell 명령에 대한 세부 정보를 기록할 수도 있습니다.

Windows PowerShell 이벤트 로그 보기

이벤트 뷰어 또는 및 Get-WmiObject cmdlet을 사용하여 Windows PowerShell 이벤트 로그를 Get-EventLog 볼 수 있습니다. Windows PowerShell 로그의 내용을 보려면 다음을 입력합니다.

Get-EventLog -LogName "Windows PowerShell"

이벤트 및 해당 속성을 검사하려면 cmdlet, Group-Object cmdlet 및 동사(Formatcmdlet)를 포함하는 Format cmdlet을 사용합니다Sort-Object.

예를 들어 이벤트 ID별로 그룹화된 로그의 이벤트를 보려면 다음을 입력합니다.

Get-EventLog "Windows PowerShell" | Format-Table -GroupBy EventID

또는 다음을 입력합니다.

Get-EventLog "Windows PowerShell" |
  Sort-Object EventID |
  Group-Object EventID

모든 클래식 이벤트 로그를 보려면 다음을 입력합니다.

Get-EventLog -List

cmdlet을 Get-WmiObject 사용하여 이벤트 관련 WMI(Windows Management Instrumentation) 클래스를 사용하여 이벤트 로그를 검사할 수도 있습니다. 예를 들어 이벤트 로그 파일의 모든 속성을 보려면 다음을 입력합니다.

Get-WmiObject Win32_NTEventlogFile |
  where LogFileName -EQ "Windows PowerShell" |
  Format-List -Property *

Win32 이벤트 관련 WMI 클래스를 찾으려면 다음을 입력합니다.

Get-WmiObject -List | where Name -Like "win32*event*"

자세한 내용은 Get-EventLogGet-WmiObject를 참조하세요.

Windows PowerShell 이벤트 로그에 대한 이벤트 선택

이벤트 로그 기본 설정 변수를 사용하여 Windows PowerShell 이벤트 로그에 기록되는 이벤트를 확인할 수 있습니다.

이벤트 로그 기본 설정 변수는 6개입니다. 세 가지 로깅 구성 요소 각각에 대해 엔진(Windows PowerShell 프로그램), 공급자 및 명령의 두 변수입니다. LifeCycleEvent 변수는 일반 시작 및 중지 이벤트를 기록합니다. 상태 변수는 오류 이벤트를 기록합니다.

다음 표에서는 이벤트 로그 기본 설정 변수를 나열합니다.

변수 설명
$LogEngineLifeCycleEvent PowerShell의 시작 및 중지를 기록합니다.
$LogEngineHealthEvent PowerShell 프로그램 오류를 기록합니다.
$LogProviderLifeCycleEvent PowerShell 공급자의 시작 및 중지를 기록합니다.
$LogProviderHealthEvent PowerShell 공급자 오류를 기록합니다.
$LogCommandLifeCycleEvent 명령의 시작 및 완료를 기록합니다.
$LogCommandHealthEvent 로그 명령 오류

(Windows PowerShell 공급자에 대한 자세한 내용은 about_Providers 참조하세요.)

기본적으로 다음 이벤트 유형만 사용하도록 설정됩니다.

  • $LogEngineLifeCycleEvent
  • $LogEngineHealthEvent
  • $LogProviderLifeCycleEvent
  • $LogProviderHealthEvent

이벤트 형식을 사용하도록 설정하려면 해당 이벤트 형식에 대한 기본 설정 변수를 .로 $true설정합니다. 예를 들어 명령 수명 주기 이벤트를 사용하도록 설정하려면 다음을 입력합니다.

$LogCommandLifeCycleEvent

또는 다음을 입력합니다.

$LogCommandLifeCycleEvent = $true

이벤트 형식을 사용하지 않도록 설정하려면 해당 이벤트 형식에 대한 기본 설정 변수를 .로 $false설정합니다. 예를 들어 명령 수명 주기 이벤트를 사용하지 않도록 설정하려면 다음을 입력합니다.

$LogProviderLifeCycleEvent = $false

Windows PowerShell 엔진 및 핵심 공급자가 시작되었음을 나타내는 이벤트를 제외하고 모든 이벤트를 사용하지 않도록 설정할 수 있습니다. 이러한 이벤트는 Windows PowerShell 프로필을 실행하기 전과 호스트 프로그램이 명령을 수락할 준비가 되기 전에 생성됩니다.

변수 설정은 현재 Windows PowerShell 세션에만 적용됩니다. 모든 Windows PowerShell 세션에 적용하려면 Windows PowerShell 프로필에 추가합니다.

로깅 모듈 이벤트

Windows PowerShell 3.0부터 모듈 및 스냅인의 LogPipelineExecutionDetails 속성을 설정 하여 Windows PowerShell 모듈 및 스냅인의 cmdlet 및 함수에 대한 실행 이벤트를 기록할 $true수 있습니다. Windows PowerShell 2.0에서 이 기능은 스냅인에만 사용할 수 있습니다.

LogPipelineExecutionDetails 속성 값이면 Windows PowerShell은 $true세션의 cmdlet 및 함수 실행 이벤트를 이벤트 뷰어 Windows PowerShell 로그에 씁니다. 이 설정은 현재 세션에서만 적용됩니다.

모듈에서 cmdlet 및 함수의 실행 이벤트 로깅을 사용하도록 설정하려면 다음 명령 시퀀스를 사용합니다.

Import-Module Microsoft.PowerShell.Archive
$m = Get-Module Microsoft.PowerShell.Archive
$m.LogPipelineExecutionDetails = $true

스냅인에서 cmdlet의 실행 이벤트 로깅을 사용하도록 설정하려면 다음 명령 순서를 사용합니다.

$m = Get-PSSnapin Microsoft.PowerShell.Core
$m.LogPipelineExecutionDetails = $True

로깅을 사용하지 않도록 설정하려면 동일한 명령 순서를 사용하여 속성 값을 $false.로 설정합니다.

모듈 로깅 그룹 정책 설정 기능을 사용하여 모듈 및 스냅인 로깅을 사용하거나 사용하지 않도록 설정할 수도 있습니다. 정책 값에는 모듈 및 스냅인 이름 목록이 포함됩니다. 와일드카드가 지원됩니다.

모듈에 대해 모듈 로깅을 설정하면 모듈의 LogPipelineExecutionDetails 속성 값이 $true 모든 세션에 있으며 변경할 수 없습니다.

"모듈 로깅 켜기" 그룹 정책 설정은 다음 그룹 정책 경로에 있습니다.

Computer Configuration\
  Administrative Templates\
    Windows Components\
     Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

사용자 구성 정책이 컴퓨터 구성 정책보다 우선하며, 두 정책 모두 모듈 및 스냅인의 LogPipelineExecutionDetails 속성 값보다 우선합니다.

이 그룹 정책 설정에 대한 자세한 내용은 about_Group_Policy_설정 참조하세요.

보안 및 감사

Windows PowerShell 이벤트 로그는 활동을 나타내고 문제 해결을 위한 운영 세부 정보를 제공하도록 설계되었습니다.

그러나 대부분의 Windows 기반 애플리케이션 이벤트 로그와 마찬가지로 Windows PowerShell 이벤트 로그는 보안을 유지하도록 설계되지 않았습니다. 보안을 감사하거나 기밀 또는 독점 정보를 기록하는 데 사용하면 안 됩니다.

이벤트 로그는 사용자가 읽고 이해할 수 있도록 설계되었습니다. 사용자는 로그에서 읽고 로그에 쓸 수 있습니다. 악의적인 사용자는 로컬 또는 원격 컴퓨터에서 이벤트 로그를 읽고, 거짓 데이터를 기록한 다음, 해당 활동의 로깅을 방지할 수 있습니다.

주의

모듈 작성자의 작성자는 모듈에 로깅 기능을 추가할 수 있습니다. 자세한 내용은 Windows PowerShell 모듈 작성을 참조 하세요.

참고 항목