Get-EventLog
로컬 컴퓨터 또는 원격 컴퓨터에서 이벤트 로그의 이벤트 또는 이벤트 로그 목록을 가져옵니다.
구문
Get-EventLog
[-LogName] <String>
[-ComputerName <String[]>]
[-Newest <Int32>]
[-After <DateTime>]
[-Before <DateTime>]
[-UserName <String[]>]
[[-InstanceId] <Int64[]>]
[-Index <Int32[]>]
[-EntryType <String[]>]
[-Source <String[]>]
[-Message <String>]
[-AsBaseObject]
[<CommonParameters>]
Get-EventLog
[-ComputerName <String[]>]
[-List]
[-AsString]
[<CommonParameters>]
Description
cmdlet은 Get-EventLog
로컬 및 원격 컴퓨터에서 이벤트 및 이벤트 로그를 가져옵니다. 기본적으로 Get-EventLog
로컬 컴퓨터에서 로그를 가져옵니다. 원격 컴퓨터에서 로그를 얻으려면 ComputerName 매개 변수를 사용합니다.
매개 변수 및 속성 값을 사용하여 Get-EventLog
이벤트를 검색할 수 있습니다. cmdlet은 지정된 속성 값과 일치하는 이벤트를 가져옵니다.
명사 포함 EventLog
PowerShell cmdlet은 애플리케이션, 시스템 또는 보안과 같은 Windows 클래식 이벤트 로그에서만 작동합니다. Windows Vista 이상 Windows 버전 Get-WinEvent
에서 Windows 이벤트 로그 기술을 사용하는 로그를 얻으려면 .
참고 항목
Get-EventLog
는 사용되지 않는 Win32 API를 사용합니다. 결과가 정확하지 않을 수 있습니다. 대신 cmdlet을 Get-WinEvent
사용합니다.
예제
예제 1: 로컬 컴퓨터에서 이벤트 로그 가져오기
다음은 로컬 컴퓨터에서 사용할 수 있는 이벤트 로그 목록을 표시하는 예제입니다. 로그 열의 이름은 LogName 매개 변수와 함께 사용하여 이벤트를 검색할 로그를 지정합니다.
Get-EventLog -List
Max(K) Retain OverflowAction Entries Log
------ ------ -------------- ------- ---
15,168 0 OverwriteAsNeeded 20,792 Application
15,168 0 OverwriteAsNeeded 12,559 System
15,360 0 OverwriteAsNeeded 11,173 Windows PowerShell
cmdlet은 Get-EventLog
List 매개 변수를 사용하여 사용 가능한 로그를 표시합니다.
예제 2: 로컬 컴퓨터의 이벤트 로그에서 최근 항목 가져오기
이 예제에서는 시스템 이벤트 로그에서 최근 항목을 가져옵니다.
Get-EventLog -LogName System -Newest 5
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13820 Jan 17 19:16 Error DCOM 10016 The description for Event...
13819 Jan 17 19:08 Error DCOM 10016 The description for Event...
13818 Jan 17 19:06 Information Service Control... 1073748864 The start type of the Back...
13817 Jan 17 19:05 Error DCOM 10016 The description for Event...
13815 Jan 17 19:03 Information Microsoft-Windows... 35 The time service is now sync...
cmdlet은 Get-EventLog
LogName 매개 변수를 사용하여 시스템 이벤트 로그를 지정합니다. Newest 매개 변수는 5개의 가장 최근 이벤트를 반환합니다.
예제 3: 이벤트 로그에서 특정 수의 항목에 대한 모든 원본 찾기
이 예제에서는 시스템 이벤트 로그의 가장 최근 항목 1000개에 포함된 모든 원본을 찾는 방법을 보여 줍니다.
$Events = Get-EventLog -LogName System -Newest 1000
$Events | Group-Object -Property Source -NoElement | Sort-Object -Property Count -Descending
Count Name
----- ----
110 DCOM
65 Service Control Manager
51 Microsoft-Windows-Kern...
14 EventLog
14 BTHUSB
13 Win32k
cmdlet은 Get-EventLog
LogName 매개 변수를 사용하여 시스템 로그를 지정합니다. 최신 매개 변수는 1000개의 가장 최근 이벤트를 선택합니다. 이벤트 개체는 변수에 $Events
저장됩니다. 개체는 $Events
파이프라인 아래로 cmdlet으로 Group-Object
전송됩니다.
Group-Object
는 Property 매개 변수를 사용하여 개체를 원본별로 그룹화하고 각 원본의 개체 수를 계산합니다. NoElement 매개 변수는 출력에서 그룹 멤버를 제거합니다.
cmdlet은 Sort-Object
Property 매개 변수를 사용하여 각 원본 이름의 개수를 기준으로 정렬합니다.
내림차순 매개 변수는 목록을 가장 높은 개수에서 가장 낮은 수로 순서대로 정렬합니다.
예제 4: 특정 이벤트 로그에서 오류 이벤트 가져오기
이 예제에서는 시스템 이벤트 로그에서 오류 이벤트를 가져옵니다.
Get-EventLog -LogName System -EntryType Error
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13296 Jan 16 13:53 Error DCOM 10016 The description for Event ID '10016' in Source...
13291 Jan 16 13:51 Error DCOM 10016 The description for Event ID '10016' in Source...
13245 Jan 16 11:45 Error DCOM 10016 The description for Event ID '10016' in Source...
13230 Jan 16 11:07 Error DCOM 10016 The description for Event ID '10016' in Source...
cmdlet은 Get-EventLog
LogName 매개 변수를 사용하여 시스템 로그를 지정합니다. EntryType 매개 변수는 이벤트를 필터링하여 오류 이벤트만 표시합니다.
예제 5: InstanceId 및 원본 값을 사용하여 이벤트 로그에서 이벤트 가져오기
이 예제에서는 특정 InstanceId 및 원본에 대한 시스템 로그에서 이벤트를 가져옵니다.
Get-EventLog -LogName System -InstanceId 10016 -Source DCOM
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13245 Jan 16 11:45 Error DCOM 10016 The description for Event ID '10016' in Source...
13230 Jan 16 11:07 Error DCOM 10016 The description for Event ID '10016' in Source...
13219 Jan 16 10:00 Error DCOM 10016 The description for Event ID '10016' in Source...
cmdlet은 Get-EventLog
LogName 매개 변수를 사용하여 시스템 로그를 지정합니다. InstanceID 매개 변수는 지정된 인스턴스 ID를 가진 이벤트를 선택합니다. Source 매개 변수는 이벤트 속성을 지정합니다.
예제 6: 여러 컴퓨터에서 이벤트 가져오기
이 명령은 Server01, Server02 및 Server03의 세 컴퓨터에서 시스템 이벤트 로그에서 이벤트를 가져옵니다.
Get-EventLog -LogName System -ComputerName Server01, Server02, Server03
cmdlet은 Get-EventLog
LogName 매개 변수를 사용하여 시스템 로그를 지정합니다. ComputerName 매개 변수는 쉼표로 구분된 문자열을 사용하여 이벤트 로그를 가져올 컴퓨터를 나열합니다.
예제 7: 메시지에 특정 단어를 포함하는 모든 이벤트 가져오기
이 명령은 이벤트 메시지의 특정 단어를 포함하는 시스템 이벤트 로그의 모든 이벤트를 가져옵니다. 지정된 메시지 매개 변수의 값이 메시지의 콘텐츠에 포함되지만 PowerShell 콘솔에 표시되지 않을 수 있습니다.
Get-EventLog -LogName System -Message *description*
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13821 Jan 17 19:17 Error DCOM 10016 The description for Event ID '10016'...
13820 Jan 17 19:16 Error DCOM 10016 The description for Event ID '10016'...
13819 Jan 17 19:08 Error DCOM 10016 The description for Event ID '10016'...
cmdlet은 Get-EventLog
LogName 매개 변수를 사용하여 시스템 이벤트 로그를 지정합니다. Message 매개 변수는 각 이벤트의 메시지 필드에서 검색할 단어를 지정합니다.
예제 8: 이벤트의 속성 값 표시
이 예제에서는 이벤트의 모든 속성 및 값을 표시하는 방법을 보여 있습니다.
$A = Get-EventLog -LogName System -Newest 1
$A | Select-Object -Property *
EventID : 10016
MachineName : localhost
Data : {}
Index : 13821
Category : (0)
CategoryNumber : 0
EntryType : Error
Message : The description for Event ID '10016' in Source 'DCOM'...
Source : DCOM
ReplacementStrings : {Local,...}
InstanceId : 10016
TimeGenerated : 1/17/2019 19:17:23
TimeWritten : 1/17/2019 19:17:23
UserName : username
Site :
Container :
cmdlet은 Get-EventLog
LogName 매개 변수를 사용하여 시스템 이벤트 로그를 지정합니다. Newest 매개 변수는 가장 최근의 이벤트 개체를 선택합니다. 개체는 변수에 $A
저장됩니다. 변수의 $A
개체가 파이프라인 아래로 cmdlet으로 Select-Object
전송됩니다.
Select-Object
는 별표(*
)와 함께 Property 매개 변수를 사용하여 개체의 모든 속성을 선택합니다.
예제 9: 원본 및 이벤트 ID를 사용하여 이벤트 로그에서 이벤트 가져오기
이 예제에서는 지정된 원본 및 이벤트 ID에 대한 이벤트를 가져옵니다.
Get-EventLog -LogName Application -Source Outlook | Where-Object {$_.EventID -eq 63} |
Select-Object -Property Source, EventID, InstanceId, Message
Source EventID InstanceId Message
------ ------- ---------- -------
Outlook 63 1073741887 The Exchange web service request succeeded.
Outlook 63 1073741887 Outlook detected a change notification.
Outlook 63 1073741887 The Exchange web service request succeeded.
cmdlet은 Get-EventLog
LogName 매개 변수를 사용하여 애플리케이션 이벤트 로그를 지정합니다. 원본 매개 변수는 응용 프로그램 이름인 Outlook을 지정합니다. 개체는 파이프라인 아래로 cmdlet으로 Where-Object
전송됩니다. 파이프라인 Where-Object
의 각 개체에 대해 cmdlet은 변수 $_.EventID
를 사용하여 이벤트 ID 속성을 지정된 값과 비교합니다. 개체는 파이프라인 아래로 cmdlet으로 Select-Object
전송됩니다. Select-Object
에서는 Property 매개 변수를 사용하여 PowerShell 콘솔에 표시할 속성을 선택합니다.
예제 10: 속성별로 이벤트 및 그룹 가져오기
Get-EventLog -LogName System -UserName NT* | Group-Object -Property UserName -NoElement |
Select-Object -Property Count, Name
Count Name
----- ----
6031 NT AUTHORITY\SYSTEM
42 NT AUTHORITY\LOCAL SERVICE
4 NT AUTHORITY\NETWORK SERVICE
cmdlet은 Get-EventLog
LogName 매개 변수를 사용하여 시스템 로그를 지정합니다. UserName 매개 변수에는 사용자 이름의 일부를 지정하는 별표(*
) 와일드카드가 포함됩니다. 이벤트 개체는 파이프라인을 cmdlet으로 Group-Object
보냅니다. Group-Object
는 Property 매개 변수를 사용하여 UserName 속성을 사용하여 개체를 그룹화하고 각 사용자 이름에 대한 개체 수를 계산하도록 지정합니다. NoElement 매개 변수는 출력에서 그룹 멤버를 제거합니다. 개체는 파이프라인 아래로 cmdlet으로 Select-Object
전송됩니다.
Select-Object
에서는 Property 매개 변수를 사용하여 PowerShell 콘솔에 표시할 속성을 선택합니다.
예제 11: 특정 날짜 및 시간 범위 동안 발생한 이벤트 가져오기
이 예제에서는 지정된 날짜 및 시간 범위에 대한 시스템 이벤트 로그에서 오류 이벤트를 가져옵니다. 이전 및 이후 매개 변수는 날짜 및 시간 범위를 설정하지만 출력에서 제외됩니다.
$Begin = Get-Date -Date '1/17/2019 08:00:00'
$End = Get-Date -Date '1/17/2019 17:00:00'
Get-EventLog -LogName System -EntryType Error -After $Begin -Before $End
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13821 Jan 17 13:40 Error DCOM 10016 The description for Event ID...
13820 Jan 17 13:11 Error DCOM 10016 The description for Event ID...
...
12372 Jan 17 10:08 Error DCOM 10016 The description for Event ID...
12371 Jan 17 09:04 Error DCOM 10016 The description for Event ID...
cmdlet은 Get-Date
Date 매개 변수를 사용하여 날짜와 시간을 지정합니다. DateTime 개체는 변수 및 $End
변수에 $Begin
저장됩니다. cmdlet은 Get-EventLog
LogName 매개 변수를 사용하여 시스템 로그를 지정합니다. EntryType 매개 변수는 오류 이벤트 유형을 지정합니다. 날짜 및 시간 범위는 After 매개 변수 및 변수와 $Begin
Before 매개 변수 및 $End
변수에 의해 설정됩니다.
매개 변수
-After
지정된 날짜 및 시간 이후에 발생한 이벤트를 가져옵니다. After 매개 변수 날짜 및 시간은 출력에서 제외됩니다. cmdlet에서 반환하는 값과 같은 DateTime 개체를 Get-Date
입력합니다.
형식: | DateTime |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-AsBaseObject
이 cmdlet은 각 이벤트에 대한 표준 System.Diagnostics.EventLogEntry 개체를 반환한다는 것을 나타냅니다. 이 매개 변수가 없으면 추가 EventLogName, Get-EventLog
Source 및 InstanceId 속성을 사용하여 확장된 PSObject 개체를 반환합니다.
이 매개 변수의 효과를 보려면 이벤트를 cmdlet으로 Get-Member
파이프하고 결과에서 TypeName 값을 검사합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-AsString
이 cmdlet은 출력을 개체 대신 문자열로 반환한다는 것을 나타냅니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Before
지정된 날짜 및 시간 이전에 발생한 이벤트를 가져옵니다. Before 매개 변수 날짜 및 시간은 출력에서 제외됩니다. cmdlet에서 반환하는 값과 같은 DateTime 개체를 Get-Date
입력합니다.
형식: | DateTime |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ComputerName
이 매개 변수는 원격 컴퓨터의 NetBIOS 이름, IP(인터넷 프로토콜) 주소 또는 FQDN(정규화된 도메인 이름)을 지정합니다.
ComputerName 매개 변수를 지정 Get-EventLog
하지 않으면 기본적으로 로컬 컴퓨터가 사용됩니다. 또한 매개 변수는 점(.
)을 허용하여 로컬 컴퓨터를 지정합니다.
ComputerName 매개 변수는 Windows PowerShell 원격을 사용하지 않습니다. 컴퓨터가 원격 명령을 실행하도록 구성되지 않은 경우에도 ComputerName 매개 변수와 함께 사용할 Get-EventLog
수 있습니다.
형식: | String[] |
별칭: | Cn |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-EntryType
문자열 배열로 이 cmdlet이 가져오는 이벤트의 항목 형식을 지정합니다.
이 매개 변수에 허용되는 값은 다음과 같습니다.
- Error
- 정보
- FailureAudit
- SuccessAudit
- Warning
형식: | String[] |
별칭: | ET |
허용되는 값: | Error, Information, FailureAudit, SuccessAudit, Warning |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Index
이벤트 로그에서 가져올 인덱스 값을 지정합니다. 매개 변수는 쉼표로 구분된 값 문자열을 허용합니다.
형식: | Int32[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-InstanceId
이벤트 로그에서 가져올 인스턴스 ID를 지정합니다. 매개 변수는 쉼표로 구분된 값 문자열을 허용합니다.
형식: | Int64[] |
Position: | 1 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-List
컴퓨터의 이벤트 로그 목록을 표시합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-LogName
하나의 이벤트 로그의 이름을 지정합니다. 로그 이름을 찾으려면 .를 사용합니다 Get-EventLog -List
. 와일드카드 문자를 사용할 수 있습니다. 이 매개 변수는 필수입니다.
형식: | String |
별칭: | LN |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-Message
이벤트 메시지의 문자열을 지정합니다. 이 매개 변수를 사용하여 특정 단어 또는 구가 포함된 메시지를 검색할 수 있습니다. 와일드카드가 허용됩니다.
형식: | String |
별칭: | MSG |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-Newest
최신 이벤트로 시작하고 지정된 수의 이벤트를 가져옵니다. 예를 들어 -Newest 100
이벤트 수가 필요합니다. 반환되는 최대 이벤트 수를 지정합니다.
형식: | Int32 |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Source
이 cmdlet이 가져오는 로그에 기록된 원본을 문자열 배열로 지정합니다. 와일드카드가 허용됩니다.
형식: | String[] |
별칭: | ABO |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-UserName
이벤트와 연결된 사용자 이름을 문자열 배열로 지정합니다. 이름 또는 이름 패턴(예: User01
, User*
또는 Domain01\User*
.)을 입력합니다. 와일드카드가 허용됩니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
입력
None
입력을 .에 파이프할 Get-EventLog
수 없습니다.
출력
System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String
LogName 매개 변수를 지정하면 출력은 System.Diagnostics.EventLogEntry 개체의 컬렉션입니다.
List 매개 변수만 지정하면 출력은 System.Diagnostics.EventLog 개체의 컬렉션입니다.
List 및 AsString 매개 변수를 모두 지정하면 출력은 System.String 개체의 컬렉션입니다.
참고
이 cmdlet은 Get-EventLog
Get-WinEvent
Windows PE(Windows 사전 설치 환경)에서 지원되지 않습니다.
관련 링크
PowerShell