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