다음을 통해 공유


Get-EventLog

로컬 또는 원격 컴퓨터의 이벤트 로그에 있는 항목 또는 이벤트 로그 목록을 가져옵니다.

구문

Get-EventLog [-AsString] [-ComputerName <string[]>] [-List] [<CommonParameters>]

Get-EventLog [-LogName] <string> [[-InstanceId] <Int64[]>] [-After <DateTime>] [-AsBaseObject] [-Before <DateTime>] [-ComputerName <string[]>] [-EntryType <string[]>] [-Index <Int32[]>] [-Message <string>] [-Newest <int>] [-Source <string[]>] [-UserName <string[]>] [<CommonParameters>]

설명

Get-EventLog cmdlet은 로컬 및 원격 컴퓨터에 있는 이벤트 및 이벤트 로그를 가져옵니다.

Get-EventLog의 매개 변수 값을 사용하여 이벤트를 검색할 수 있습니다. Get-EventLog는 지정된 모든 속성 값과 일치하는 이벤트만 가져옵니다.

EventLog 명사(EventLog cmdlet)를 포함하는 cmdlet은 기본 이벤트 로그에서만 작동합니다. Windows Vista 이상에서 Windows 이벤트 로그 기술을 사용하는 로그로부터 이벤트를 가져오려면 Get-WinEvent를 사용합니다.

매개 변수

-After <DateTime>

지정한 날짜 및 시간 이후에 발생한 이벤트만 가져옵니다. Get-Date cmdlet에서 반환된 개체와 같은 DateTime 개체를 입력합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-AsBaseObject

각 이벤트에 대한 표준 System.Diagnostics.EventLogEntry 개체를 반환합니다. 이 매개 변수가 없으면 Get-EventLog는 추가 EventLogName, Source 및 InstanceId 속성이 있는 확장된 PSObject 개체를 반환합니다.

이 매개 변수의 효과를 확인하려면 이벤트를 Get-Member cmdlet으로 파이프하고 결과의 TypeName 값을 검토합니다.

필수 여부

false

위치

named

기본값

False

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-AsString

개체 대신 문자열로 출력을 반환합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Before <DateTime>

지정한 날짜 및 시간 이전에 발생한 이벤트만 가져옵니다. Get-Date cmdlet에서 반환된 개체와 같은 DateTime 개체를 입력합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-ComputerName <string[]>

원격 컴퓨터를 지정합니다. 기본값은 로컬 컴퓨터입니다.

원격 컴퓨터의 NetBIOS 이름, IP(인터넷 프로토콜) 주소 또는 정규화된 도메인 이름을 입력합니다. 로컬 컴퓨터를 지정하려면 컴퓨터 이름, 점(.) 또는 "localhost"를 입력합니다.

이 매개 변수는 Windows PowerShell 원격에 독립적입니다. 원격 명령을 실행하도록 컴퓨터를 구성하지 않은 경우에도 Get-EventLog의 ComputerName 매개 변수를 사용할 수 있습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-EntryType <string[]>

지정된 항목 유형의 이벤트만 가져옵니다. 유효한 값은 Error, Information, FailureAudit, SuccessAudit 및 Warning입니다. 기본값은 모든 이벤트입니다.

필수 여부

false

위치

named

기본값

모든 이벤트

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Index <Int32[]>

지정된 인덱스 값의 이벤트만 가져옵니다.

필수 여부

false

위치

named

기본값

모든 이벤트

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-InstanceId <Int64[]>

지정된 인스턴스 ID를 가진 이벤트만 가져옵니다.

필수 여부

false

위치

2

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-List

컴퓨터의 이벤트 로그 목록을 가져옵니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-LogName <string>

이벤트 로그를 지정합니다. 하나의 이벤트 로그에 대한 로그 이름(LogDisplayName이 아닌 Log 속성의 값)을 입력합니다. 와일드카드 문자는 사용할 수 없습니다. 이 매개 변수는 필수 사항입니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Message <string>

메시지에 지정된 문자열이 포함된 이벤트를 가져옵니다. 이 속성을 사용하여 특정 단어나 구가 포함된 메시지를 검색할 수 있습니다. 와일드카드를 사용할 수 있습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

true

-Newest <int>

검색되는 최대 이벤트 수를 지정합니다. Get-EventLog는 로그의 최신 이벤트를 시작으로 지정된 수의 이벤트를 가져옵니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Source <string[]>

지정된 원본에 의해 로그에 기록된 이벤트를 가져옵니다. 와일드카드를 사용할 수 있습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

true

-UserName <string[]>

지정된 사용자 이름과 연결된 이벤트만 가져옵니다. 이름이나 이름 패턴(예: User01, User* 또는 Domain01\User*)을 입력합니다. 와일드카드를 사용할 수 있습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

true

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

없음

입력을 이 cmdlet으로 파이프할 수 없습니다.

출력

System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String

LogName 매개 변수가 지정된 경우 출력은 EventLogEntry 개체(System.Diagnostics.EventLogEntry) 컬렉션입니다. List 매개 변수만 지정된 경우 출력은 EventLog 개체(System.Diagnostics.EventLog) 컬렉션입니다. List 및 AsString 매개 변수가 둘 다 지정된 경우 출력은 Strings(System.String) 컬렉션입니다.

예 1

C:\PS>get-eventlog -list

설명
-----------
이 명령은 컴퓨터의 이벤트 로그 정보를 표시합니다.





예 2

C:\PS>get-eventlog -newest 5 -logname application

설명
-----------
이 명령은 응용 프로그램 이벤트 로그의 가장 최근 5개 항목을 표시합니다.





예 3

C:\PS>$events = get-eventlog -logname system -newest 1000

C:\PS> $events | group-object -property source -noelement | sort-object -property count -descending

Count Name
----- ----
   75 Service Control Manager
   12 Print
    6 UmrdpService
    2 DnsApi
    2 DCOM
    1 Dhcp
    1 TermDD
    1 volsnap

설명
-----------
이 예에서는 시스템 이벤트 로그의 가장 최근 1000개 항목에 나타난 모든 원본을 찾는 방법을 보여 줍니다.

첫 번째 명령은 시스템 이벤트 로그에서 가장 최근 1000개 항목을 가져와서 $events 변수에 저장합니다. 

두 번째 명령은 파이프라인 연산자(|)를 사용하여 $events의 이벤트를 Group-Object cmdlet으로 보냅니다. 그러면 이 cmdlet은 Source 속성 값을 기준으로 항목을 그룹화합니다. 또한 두 번째 파이프라인 연산자를 사용하여 그룹화된 이벤트를 Sort-Object cmdlet으로 보내고 그러면 이 cmdlet은 가장 자주 나타나는 원본이 앞에 나열되도록 이벤트를 내림차순으로 정렬합니다.

원본은 이벤트 로그 항목의 여러 속성 중 하나입니다. 이벤트 로그 항목의 모든 속성을 보려면 이벤트를 Get-Member cmdlet으로 파이프합니다.





예 4

C:\PS>get-eventlog -logname System -EntryType Error

설명
-----------
이 명령은 시스템 이벤트 로그에서 오류 이벤트만 가져옵니다.





예 5

C:\PS>get-eventlog -logname System -instanceID 3221235481 -Source "DCOM"

설명
-----------
이 명령은 시스템 로그에서 InstanceID가 3221235481이고 Source 값이 "DCOM"인 이벤트를 가져옵니다.





예 6

C:\PS>get-eventlog -logname "Windows PowerShell" -computername localhost, Server01, Server02

설명
-----------
이 명령은 Server01, Server02 및 "localhost"라는 로컬 컴퓨터의 "Windows PowerShell" 이벤트 로그에서 이벤트를 가져옵니다.





예 7

C:\PS>get-eventlog -logname "Windows PowerShell" -message "*failed*"

설명
-----------
이 명령은 Windows PowerShell 이벤트 로그에서 메시지 값에 "failed"라는 단어가 포함된 모든 이벤트를 가져옵니다.





예 8

C:\PS>$a = get-eventlog -log System -newest 1

C:\PS> $a | format-list -property *

EventID            : 7036
MachineName        : Server01
Data               : {}
Index              : 10238
Category           : (0)
CategoryNumber     : 0
EntryType          : Information
Message            : The description for Event ID
Source             : Service Control Manager
ReplacementStrings : {WinHTTP Web Proxy Auto-Disco
InstanceId         : 1073748860
TimeGenerated      : 4/11/2008 9:56:05 PM
TimeWritten        : 4/11/2008 9:56:05 PM
UserName           :
Site               :
Container          :

설명
-----------
이 예에서는 이벤트의 모든 속성 값을 표시하는 방법을 보여 줍니다. 

첫 번째 명령은 시스템 이벤트 로그에서 가장 최근 이벤트를 가져와서 $a 변수에 저장합니다. 

두 번째 명령은 파이프라인 연산자(|)를 사용하여 $a의 이벤트를 Format-List 명령으로 보내고 그러면 이 명령은 이벤트의 모든(*) 속성을 표시합니다.





예 9

C:\PS>get-eventlog -log application -source outlook | where {$_.eventID -eq 34}

설명
-----------
이 명령은 응용 프로그램 이벤트 로그에서 원본이 Outlook이고 이벤트 ID가 34인 이벤트를 가져옵니다. Get-EventLog에 EventID 매개 변수가 없는 경우에도 Where-Object cmdlet을 사용하여 이벤트 속성 값을 기준으로 이벤트를 선택할 수 있습니다.





예 10

C:\PS>get-eventlog -log system -username NT* | group-object -property username -noelement | format-table Count, Name -auto

Count Name
----- ----
 6031 NT AUTHORITY\SYSTEM
   42 NT AUTHORITY\LOCAL SERVICE
    4 NT AUTHORITY\NETWORK SERVICE

설명
-----------
이 명령은 시스템 이벤트 로그의 이벤트를 해당 UserName 속성 값을 기준으로 그룹화하여 반환합니다. Get-EventLog 명령은 UserName 매개 변수를 사용하여 사용자 이름이 "NT*"로 시작하는 이벤트만 가져옵니다.





예 11

C:\PS>$May31 = get-date 5/31/08

C:\PS> $July1 = get-date 7/01/08

C:\PS> get-eventlog -log "Windows PowerShell" -entrytype Error -after $may31 -before $july1

설명
-----------
이 명령은 Windows PowerShell 이벤트 로그에서 2008년 6월에 발생한 모든 오류를 가져옵니다.





참고 항목

개념

Get-WinEvent
Clear-EventLog
Limit-EventLog
New-EventLog
Remove-EventLog
Show-EventLog
Write-EventLog
Get-WinEvent