다음을 통해 공유


이벤트로그 정보

간단한 설명

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

긴 설명

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

Windows PowerShell 이벤트 로그는 응용 프로그램 및 서비스 로그 그룹에 있습니다. Windows PowerShell 로그는 Windows 이벤트 기술을 사용하지 않는 클래식 이벤트 로그입니다. 로그를 보려면 클래식 이벤트 로그용으로 설계된 cmdlet(예: Get-EventLog.

Windows PowerShell 이벤트 로그 보기

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

Get-EventLog -LogName "Windows PowerShell"

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

예를 들어 이벤트 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-Help Get-EventLog" 및 "Get-Help Get-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 속성을 TRUE로 설정하여 Windows PowerShell 모듈 및 스냅인의 cmdlet 및 함수에 대한 실행 이벤트를 기록할 수 있습니다. Windows PowerShell 2.0에서 이 기능은 스냅인에만 사용할 수 있습니다.

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

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

Import-Module <ModuleName>
$m = Get-Module <ModuleName>
$m.LogPipelineExecutionDetails = $true

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

$m = Get-PSSnapin <SnapInName> [-Registered]
$m.LogPipelineExecutionDetails = $True

로깅을 사용하지 않도록 설정하려면 동일한 명령 시퀀스를 사용하여 속성 값을 FALSE($false)로 설정합니다.

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

모듈에 대해 "모듈 로깅 켜기"가 설정되면 모듈의 LogPipelineExecutionDetails 속성 값은 모든 세션에서 TRUE이며 변경할 수 없습니다.

Turn On Module Logging 그룹 정책 설정은 다음 그룹 정책 경로에 있습니다.

Computer Configuration\
  Administrative Templates\
    Windows Components\
     Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

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

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

보안 및 감사

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

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

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

비고

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

또한 참조하십시오

Get-EventLog

Get-WmiObject

그룹 정책 설정 정보

환경 설정 변수에 대하여