Get-WinEvent
로컬 및 원격 컴퓨터의 이벤트 로그 및 이벤트 추적 로그 파일에서 이벤트를 가져옵니다.
구문
Get-WinEvent
[[-LogName] <string[]>]
[-MaxEvents <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-FilterXPath <string>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-ListLog] <string[]>
[-ComputerName <string>]
[-Credential <pscredential>]
[-Force]
[<CommonParameters>]
Get-WinEvent
[-ListProvider] <string[]>
[-ComputerName <string>]
[-Credential <pscredential>]
[<CommonParameters>]
Get-WinEvent
[-ProviderName] <string[]>
[-MaxEvents <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-FilterXPath <string>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-Path] <string[]>
[-MaxEvents <long>]
[-Credential <pscredential>]
[-FilterXPath <string>]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-FilterXml] <xml>
[-MaxEvents <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-FilterHashtable] <hashtable[]>
[-MaxEvents <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-Force]
[-Oldest]
[<CommonParameters>]
Description
Get-WinEvent
cmdlet은 시스템 및 애플리케이션 로그와 같은 클래식 로그를 포함하여 이벤트 로그에서 이벤트를 가져옵니다. cmdlet은 Windows Vista에 도입된 Windows 이벤트 로그 기술로 생성된 이벤트 로그에서 데이터를 가져옵니다. 또한 ETW(Windows용 이벤트 추적)에서 생성된 로그 파일의 이벤트는. 기본적으로 Get-WinEvent
이벤트 정보를 최신에서 가장 오래된 순서로 반환합니다.
Get-WinEvent
이벤트 로그 및 이벤트 로그 공급자를 나열합니다. 명령을 중단하려면 ctrlGet-WinEvent
XPath 쿼리, 구조적 XML 쿼리 및 해시 테이블 쿼리를 사용하여 이벤트를 필터링할 수 있습니다.
관리자 권한으로 PowerShell을 실행하지 않는 경우 로그에 대한 정보를 검색할 수 없다는 오류 메시지가 표시될 수 있습니다.
예제
예제 1: 로컬 컴퓨터에서 모든 로그 가져오기
이 명령은 로컬 컴퓨터의 모든 이벤트 로그를 가져옵니다. 로그는 Get-WinEvent
가져오는 순서대로 나열됩니다. 클래식 로그가 먼저 검색된 후 새 Windows 이벤트 로그가 표시됩니다.
로그의 RecordCount null이거나 비어 있거나 0일 수 있습니다.
Get-WinEvent -ListLog *
LogMode MaximumSizeInBytes RecordCount LogName
------- ------------------ ----------- -------
Circular 15532032 14500 Application
Circular 1052672 117 Azure Information Protection
Circular 1052672 3015 CxAudioSvcLog
Circular 20971520 ForwardedEvents
Circular 20971520 0 HardwareEvents
Get-WinEvent
cmdlet은 컴퓨터에서 로그 정보를 가져옵니다.
ListLog 매개 변수는 별표(*
) 와일드카드를 사용하여 각 로그에 대한 정보를 표시합니다.
예제 2: 클래식 설치 로그 가져오기
이 명령은 클래식 설치 로그를 나타내는 EventLogConfiguration 개체를 가져옵니다. 개체에는 파일 크기, 공급자, 파일 경로 및 로그 사용 여부와 같은 로그에 대한 정보가 포함됩니다.
Get-WinEvent -ListLog Setup | Format-List -Property *
FileSize : 69632
IsLogFull : False
LastAccessTime : 3/13/2019 09:41:46
LastWriteTime : 3/13/2019 09:41:46
OldestRecordNumber : 1
RecordCount : 23
LogName : Setup
LogType : Operational
LogIsolation : Application
IsEnabled : True
IsClassicLog : False
SecurityDescriptor : O:BAG:SYD: ...
LogFilePath : %SystemRoot%\System32\Winevt\Logs\Setup.evtx
MaximumSizeInBytes : 1052672
LogMode : Circular
OwningProviderName : Microsoft-Windows-Eventlog
ProviderNames : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel :
ProviderKeywords :
ProviderBufferSize : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency : 1000
ProviderControlGuid :
Get-WinEvent
cmdlet은 ListLog 매개 변수를 사용하여 설치 로그를 지정합니다. 개체가 파이프라인 아래로 Format-List
cmdlet으로 전송됩니다.
Format-List
별표() 와일드카드와 함께 *
매개 변수를 사용하여 각 속성을 표시합니다.
예제 3: 서버에서 이벤트 로그 가져오기
이 명령은 이벤트를 포함하는 로컬 컴퓨터에서만 이벤트 로그를 가져옵니다. 로그의 RecordCount null 또는 0일 수 있습니다. 이 예제에서는 $_
변수를 사용합니다. 자세한 내용은 about_Automatic_Variables를 참조하세요.
Get-WinEvent -ListLog * -ComputerName localhost | Where-Object { $_.RecordCount }
LogMode MaximumSizeInBytes RecordCount LogName
------- ------------------ ----------- -------
Circular 15532032 14546 Application
Circular 1052672 117 Azure Information Protection
Circular 1052672 2990 CxAudioSvcLog
Circular 1052672 9 MSFTVPN Setup
Circular 1052672 282 OAlerts
Get-WinEvent
cmdlet은 컴퓨터에서 로그 정보를 가져옵니다.
ListLog 매개 변수는 별표(*
) 와일드카드를 사용하여 각 로그에 대한 정보를 표시합니다. Where-Object
cmdlet으로 보냅니다.
Where-Object
$_.RecordCount
사용하여 데이터가 포함된 로그만 반환합니다.
$_
파이프라인의 현재 개체를 나타내는 변수입니다.
RecordCount null이 아닌 값을 가진 개체의 속성입니다.
예제 4: 여러 서버에서 이벤트 로그 가져오기
이 예제에서는 Server01, Server02 및 Server03의 세 컴퓨터에서 Application 이벤트 로그를 나타내는 개체를 가져옵니다. ForEach 키워드는 ComputerName 매개 변수가 하나의 값만 허용하기 때문에 사용됩니다. 자세한 내용은 about_Foreach참조하세요.
$S = 'Server01', 'Server02', 'Server03'
ForEach ($Server in $S) {
Get-WinEvent -ListLog Application -ComputerName $Server |
Select-Object LogMode, MaximumSizeInBytes, RecordCount, LogName,
@{name='ComputerName'; expression={$Server}} |
Format-Table -AutoSize
}
LogMode MaximumSizeInBytes RecordCount LogName ComputerName
------- ------------------ ----------- ------- ------------
Circular 15532032 14577 Application Server01
Circular 15532032 9689 Application Server02
Circular 15532032 5309 Application Server03
변수 $S
Server01, Server02및 Server03세 개의 서버를 저장합니다.
ForEach 문은 루프를 사용하여 ($Server in $S)
각 서버를 처리합니다. 중괄호({ }
)의 스크립트 블록은 Get-WinEvent
명령을 실행합니다.
ListLog 매개 변수는 Application 로그를 지정합니다.
ComputerName 매개 변수는 변수 $Server
사용하여 각 서버에서 로그 정보를 가져옵니다.
개체는 파이프라인을 Select-Object
cmdlet으로 보냅니다. Format-Table
cmdlet으로 보내져 PowerShell 콘솔에 출력을 표시합니다.
AutoSize 매개 변수는 화면에 맞게 출력의 형식을 지정합니다.
예제 5: 이벤트 로그 공급자 및 로그 이름 가져오기
이 명령은 이벤트 로그 공급자 및 해당 공급자가 작성하는 로그를 가져옵니다.
Get-WinEvent -ListProvider *
Name : .NET Runtime
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Get-WinEvent
cmdlet은 컴퓨터에서 로그 정보를 가져옵니다.
ListProvider 매개 변수는 별표(*
) 와일드카드를 사용하여 각 공급자에 대한 정보를 표시합니다. 출력에서 이름 공급자이고 LogLinks 공급자가 쓰는 로그입니다.
예제 6: 특정 로그에 쓰는 모든 이벤트 로그 공급자 가져오기
이 명령은 애플리케이션 로그에 쓰는 모든 공급자를 가져옵니다.
(Get-WinEvent -ListLog Application).ProviderNames
.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management
Get-WinEvent
cmdlet은 컴퓨터에서 로그 정보를 가져옵니다.
ListLog 매개 변수는 Application 사용하여 해당 로그에 대한 개체를 가져옵니다.
ProviderNames 개체의 속성이며 Application 로그에 쓰는 공급자를 표시합니다.
예제 7: 특정 문자열을 포함하는 이벤트 로그 공급자 이름 가져오기
이 명령은 공급자 이름에 특정 문자열을 포함하는 이름을 가진 이벤트 로그 공급자를 가져옵니다.
Get-WinEvent -ListProvider *Policy*
Name : Group Policy Applications
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : Group Policy Client
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : Group Policy Data Sources
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Get-WinEvent
cmdlet은 컴퓨터에서 로그 정보를 가져옵니다.
ListProvider 매개 변수는 별표(*
) 와일드카드를 사용하여 공급자 이름 내의 Policy 찾습니다.
예제 8: 이벤트 공급자가 생성하는 이벤트 ID 가져오기
이 명령은 Microsoft-Windows-GroupPolicy 이벤트 공급자가 이벤트 설명과 함께 생성하는 이벤트 ID를 나열합니다.
(Get-WinEvent -ListProvider Microsoft-Windows-GroupPolicy).Events | Format-Table Id, Description
Id Description
-- -----------
1500 The Group Policy settings for the computer were processed successfully...
1501 The Group Policy settings for the user were processed successfully...
4115 Group Policy Service started.
4116 Started the Group Policy service initialization phase.
4117 Group Policy Session started.
Get-WinEvent
cmdlet은 컴퓨터에서 로그 정보를 가져옵니다. Format-Table
cmdlet으로 보냅니다.
Format-Table
이벤트 개체의 ID 및 설명 표시합니다.
예제 9: 이벤트 개체 속성에서 로그 정보 가져오기
이 예제에서는 이벤트 개체 속성을 사용하여 로그의 내용에 대한 정보를 가져오는 방법을 보여 줍니다. 이벤트 개체는 변수에 저장되고 이벤트 ID 및 수준따라 그룹화되고 계산됩니다.
PS> $Event = Get-WinEvent -LogName 'Windows PowerShell'
PS> $Event.Count
195
PS> $Event | Group-Object -Property Id -NoElement | Sort-Object -Property Count -Descending
Count Name
----- ----
147 600
22 400
21 601
3 403
2 103
PS> $Event | Group-Object -Property LevelDisplayName -NoElement
Count Name
----- ----
2 Warning
193 Information
Get-WinEvent
cmdlet은 LogName 매개 변수를 사용하여 Windows PowerShell 이벤트 로그를 지정합니다. 이벤트 개체는 $Event
변수에 저장됩니다.
$Event.Count
$Event
변수의 Count 속성을 사용하여 기록된 총 이벤트 수를 표시합니다.
$Event
변수는 파이프라인을 Group-Object
cmdlet으로 보냅니다.
Group-Object
속성 매개 변수를 사용하여 ID 속성을 지정하고 id개체 수를 계산합니다. NoElement 매개 변수는 개체 출력에서 다른 속성을 제거합니다. 그룹화된 개체는 파이프라인 아래로 Sort-Object
cmdlet으로 전송됩니다.
$Event
변수는 파이프라인을 Group-Object
cmdlet으로 보냅니다.
예제 10: 이름에 지정된 문자열이 있는 오류 이벤트 가져오기
이 예제에서는 로그 이름의 쉼표로 구분된 문자열을 사용합니다. 출력은 오류 또는 경고 및 로그 이름과 같은 수준으로 그룹화됩니다.
Get-WinEvent -LogName *PowerShell*, Microsoft-Windows-Kernel-WHEA* | Group-Object -Property LevelDisplayName, LogName -NoElement | Format-Table -AutoSize
Count Name
----- ----
1 Error, PowerShellCore/Operational
26 Information, Microsoft-Windows-Kernel-WHEA/Operational
488 Information, Microsoft-Windows-PowerShell/Operational
77 Information, PowerShellCore/Operational
9835 Information, Windows PowerShell
19 Verbose, PowerShellCore/Operational
444 Warning, Microsoft-Windows-PowerShell/Operational
512 Warning, PowerShellCore/Operational
Get-WinEvent
cmdlet은 컴퓨터에서 로그 정보를 가져옵니다.
LogName 매개 변수는 별표(*
) 와일드카드와 함께 쉼표로 구분된 문자열을 사용하여 로그 이름을 지정합니다. 개체는 파이프라인을 Group-Object
cmdlet으로 보냅니다. Format-Table
cmdlet으로 전송됩니다.
Format-Table
AutoSize 매개 변수를 사용하여 열의 서식을 지정합니다.
Count 열에는 각 이벤트의 총 수가 포함됩니다.
이름 열에는 그룹화된 LevelDisplayName 및 LogName포함됩니다.
예제 11: 보관된 이벤트 로그에서 이벤트 가져오기
Get-WinEvent
저장된 로그 파일에서 이벤트 정보를 가져올 수 있습니다. 이 샘플에서는 로컬 컴퓨터에 저장된 보관된 PowerShell 로그를 사용합니다.
Get-WinEvent -Path 'C:\Test\Windows PowerShell.evtx'
ProviderName: PowerShell
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
3/15/2019 13:54:13 403 Information Engine state is changed from Available to Stopped...
3/15/2019 13:54:13 400 Information Engine state is changed from None to Available...
3/15/2019 13:54:13 600 Information Provider "Variable" is Started...
3/15/2019 13:54:13 600 Information Provider "Function" is Started...
3/15/2019 13:54:13 600 Information Provider "FileSystem" is Started...
Get-WinEvent
cmdlet은 컴퓨터에서 로그 정보를 가져옵니다.
Path 매개 변수는 디렉터리 및 파일 이름을 지정합니다.
예제 12: 보관된 이벤트 로그에서 특정 수의 이벤트 가져오기
이러한 명령은 보관된 이벤트 로그에서 특정 수의 이벤트를 가져옵니다.
Get-WinEvent
최대 이벤트 수 또는 가장 오래된 이벤트를 가져올 수 있는 매개 변수가 있습니다. 이 샘플에서는 C:\Test\PowerShellCore Operational.evtx저장된 보관된 PowerShell 로그를 사용합니다.
PS> Get-WinEvent -Path 'C:\Test\PowerShellCore Operational.evtx' -MaxEvents 100
ProviderName: PowerShellCore
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
3/15/2019 09:54:54 4104 Warning Creating Scriptblock text (1 of 1):...
3/15/2019 09:37:13 40962 Information PowerShell console is ready for user input
3/15/2019 07:56:24 4104 Warning Creating Scriptblock text (1 of 1):...
...
3/7/2019 10:53:22 40961 Information PowerShell console is starting up
3/7/2019 10:53:22 8197 Verbose Runspace state changed to Opening
3/7/2019 10:53:22 8195 Verbose Opening RunspacePool
Get-WinEvent
cmdlet은 컴퓨터에서 로그 정보를 가져옵니다.
Path 매개 변수는 디렉터리 및 파일 이름을 지정합니다.
MaxEvents 매개 변수는 100개의 레코드가 최신 레코드에서 가장 오래된 레코드로 표시되도록 지정합니다.
예제 13: Windows용 이벤트 추적
ETW(Windows용 이벤트 추적)는 이벤트가 발생할 때 로그에 이벤트를 씁니다. 이벤트는 가장 오래된 것에서 최신 순서로 저장됩니다. 보관된 ETW 파일은 .etl
같은 저장됩니다.
이벤트는 로그에 기록되는 순서대로 나열되므로 가장 오래된 매개 변수가 필요합니다.
PS> Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest | Sort-Object -Property TimeCreated -Descending | Select-Object -First 100
Get-WinEvent
cmdlet은 보관된 파일에서 로그 정보를 가져옵니다.
Path 매개 변수는 디렉터리 및 파일 이름을 지정합니다.
가장 오래된 매개 변수는 이벤트가 기록되는 순서대로 가장 오래된 것에서 최신으로 출력하는 데 사용됩니다. 개체는 파이프라인을 Sort-Object
cmdlet으로 Sort-Object
TimeCreated 속성 값으로 개체를 내림차순으로 정렬합니다. 개체는 100개의 최신 이벤트를 표시하는 Select-Object
cmdlet으로 파이프라인 아래로 전송됩니다.
예제 14: 이벤트 추적 로그에서 이벤트 가져오기
이 예제에서는 이벤트 추적 로그 파일(.etl
) 및 보관된 Windows PowerShell 로그 파일(.evtx
)에서 이벤트를 가져오는 방법을 보여 줍니다. 여러 파일 형식을 단일 명령으로 결합할 수 있습니다.
파일에 동일한 형식의 .etl
매개 변수가 필요하지만 가장 오래된 매개 변수는 각 파일에 적용됩니다.
PS> Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest | Where-Object { $_.Id -eq '403' }
Get-WinEvent
cmdlet은 보관된 파일에서 로그 정보를 가져옵니다.
Path 매개 변수는 쉼표로 구분된 목록을 사용하여 각 파일 디렉터리와 파일 이름을 지정합니다.
가장 오래된 매개 변수는 이벤트가 기록되는 순서대로 가장 오래된 것에서 최신으로 출력하는 데 사용됩니다. 개체는 파이프라인을 Where-Object
cmdlet으로 보냅니다. $_
변수는 파이프라인의 현재 개체를 나타내고 ID 이벤트 ID 속성입니다.
예제 15: 이벤트 로그 결과 필터링
이 예제에서는 이벤트 로그에서 이벤트를 필터링하고 선택하는 다양한 방법을 보여 줍니다. 이러한 모든 명령은 Windows PowerShell 이벤트 로그에서 지난 24시간 동안 발생한 이벤트를 가져옵니다.
필터 메서드는 Where-Object
cmdlet을 사용하는 것보다 더 효율적입니다. 필터는 개체가 검색될 때 적용됩니다.
Where-Object
모든 개체를 검색한 다음 모든 개체에 필터를 적용합니다.
# Using the Where-Object cmdlet:
PS> $Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
PS> Get-WinEvent -LogName 'Windows PowerShell' | Where-Object { $_.TimeCreated -ge $Yesterday }
# Using the FilterHashtable parameter:
PS> $Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
PS> Get-WinEvent -FilterHashtable @{ LogName='Windows PowerShell'; Level=3; StartTime=$Yesterday }
# Using the FilterXML parameter:
PS> Get-WinEvent -FilterXML "<QueryList><Query><Select Path='Windows PowerShell'>*[System[Level=3 and TimeCreated[timediff(@SystemTime)<= 86400000]]]</Select></Query></QueryList>"
# Using the FilterXPath parameter:
PS> Get-WinEvent -LogName 'Windows PowerShell' -FilterXPath "*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]"
예제 16: FilterHashtable을 사용하여 애플리케이션 로그에서 이벤트 가져오기
이 예제에서는 FilterHashtable 매개 변수를 사용하여 Application 로그에서 이벤트를 가져옵니다. 해시 테이블은 키/값 쌍을 사용합니다. FilterHashtable 매개 변수에 대한 자세한 내용은 FilterHashtable사용하여 Get-WinEvent 쿼리 만들기를 참조하세요. 해시 테이블에 대한 자세한 내용은 about_Hash_Tables참조하세요.
$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }
Get-Date
cmdlet은 AddDays 메서드를 사용하여 현재 날짜 2일 전의 날짜를 가져옵니다. date 개체는 $Date
변수에 저장됩니다.
Get-WinEvent
cmdlet은 로그 정보를 가져옵니다.
FilterHashtable 매개 변수는 출력을 필터링하는 데 사용됩니다.
LogName 키는 값을 Application 로그로 지정합니다.
StartTime 키는 $Date
변수에 저장된 값을 사용합니다.
예제 17: FilterHashtable을 사용하여 애플리케이션 오류 가져오기
이 예제에서는 FilterHashtable 매개 변수를 사용하여 지난 주 내에 발생한 Internet Explorer 애플리케이션 오류를 찾습니다.
$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{ Logname='Application'; ProviderName='Application Error'; Data='iexplore.exe'; StartTime=$StartTime }
Get-Date
cmdlet은 AddDays 메서드를 사용하여 현재 날짜 7일 이전의 날짜를 가져옵니다. date 개체는 $StartTime
변수에 저장됩니다.
Get-WinEvent
cmdlet은 로그 정보를 가져옵니다.
FilterHashtable 매개 변수는 출력을 필터링하는 데 사용됩니다.
LogName 키는 값을 Application 로그로 지정합니다. $StartTime
변수에 저장된 값을 사용합니다.
매개 변수
-ComputerName
이 cmdlet이 이벤트 로그에서 이벤트를 가져오는 컴퓨터의 이름을 지정합니다. NetBIOS 이름, IP(인터넷 프로토콜) 주소 또는 컴퓨터의 FQDN(정규화된 도메인 이름)을 입력합니다. 기본값은 localhost
원격 컴퓨터에서 이벤트 로그를 얻으려면 원격 액세스를 허용하도록 이벤트 로그 서비스에 대한 방화벽 포트를 구성합니다.
이 cmdlet은 PowerShell 원격을 사용하지 않습니다. 컴퓨터가 원격 명령을 실행하도록 구성되지 않은 경우에도 ComputerName 매개 변수를 사용할 수 있습니다.
형식: | String |
별칭: | Cn |
Position: | Named |
Default value: | Local computer |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Credential
이 작업을 수행할 수 있는 권한이 있는 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다.
User01 또는 Domain01\User01같은 사용자 이름을 입력합니다. 또는 cmdlet에서 생성된 개체와 같은 Get-Credential
개체를 입력합니다. 사용자 이름을 입력하면 암호를 입력하라는 메시지가 표시됩니다. 매개 변수 이름만 입력하면 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다.
형식: | PSCredential |
Position: | Named |
Default value: | Current user |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-FilterHashtable
하나 이상의 이벤트 로그에서 이벤트를 선택하는 해시 테이블 형식의 쿼리를 지정합니다. 쿼리에는 하나 이상의 키/값 쌍이 있는 해시 테이블이 포함되어 있습니다.
해시 테이블 쿼리에는 다음과 같은 규칙이 있습니다.
- 키와 값은 대/소문자를 구분하지 않습니다.
- 와일드카드 문자는 LogName 및 ProviderName 키와 연결된 값에서만 유효합니다.
- 각 키는 각 해시 테이블에 한 번만 나열할 수 있습니다.
-
경로 값은
.etl
,.evt
및.evtx
로그 파일에 대한 경로를 사용합니다. - LogName, 경로및 ProviderName 키를 동일한 쿼리에서 사용할 수 있습니다.
- UserID 키는 유효한 SID(보안 식별자) 또는 유효한 System.Security.Principal.NTAccount 개체생성하는 데 사용할 수 있는 도메인 계정 이름을 사용할 수 있습니다.
- 데이터 값은 명명되지 않은 필드에서 이벤트 데이터를 가져옵니다. 예를 들어 클래식 이벤트 로그의 이벤트입니다.
-
<named-data>
키는 명명된 이벤트 데이터 필드를 나타냅니다.
Get-WinEvent
키/값 쌍을 해석할 수 없는 경우 키는 이벤트의 이벤트 데이터에 대한 대/소문자를 구분하는 이름으로 해석합니다.
유효한 Get-WinEvent
키/값 쌍은 다음과 같습니다.
- LogName
-
ProviderName=
<String[]>
-
경로=
<String[]>
-
키워드=
<Long[]>
-
ID=
<Int32[]>
-
수준=
<Int32[]>
-
StartTime=
<DateTime>
-
EndTime=
<DateTime>
- UserID
-
데이터=
<String[]>
<named-data>
=<String[]>
형식: | Hashtable[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-FilterXml
이 cmdlet이 하나 이상의 이벤트 로그에서 이벤트를 선택하는 구조적 XML 쿼리를 지정합니다.
유효한 XML 쿼리를 생성하려면
XML 쿼리를 사용하여 여러 XPath 문이 포함된 복잡한 쿼리를 만듭니다. XML 형식을 사용하면 쿼리에서 이벤트를 제외하는 XML 요소 표시 안 함도 사용할 수 있습니다. 이벤트 로그 쿼리에 대한 XML 스키마에 대한 자세한 내용은 쿼리 스키마 및 MSDN 라이브러리의 이벤트 선택 XML 이벤트 쿼리 섹션을 참조하세요.
형식: | XmlDocument |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-FilterXPath
이 cmdlet이 하나 이상의 로그에서 이벤트를 선택하는 XPath 쿼리를 지정합니다.
XPath 언어에 대한 자세한 내용은 MSDN 라이브러리의 이벤트 선택XPath 참조 및 선택 필터 섹션을 참조하세요.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Force
다른 이벤트 로그 외에도 디버그 및 분석 로그를 가져옵니다. 이름 매개 변수 값에 와일드카드 문자가 포함된 경우 디버그 또는 분석 로그를 얻으려면 Force 매개 변수가 필요합니다.
기본적으로 Get-WinEvent
cmdlet은 디버그 또는 분석 로그의 전체 이름을 지정하지 않는 한 이러한 로그를 제외합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ListLog
이벤트 로그를 지정합니다. 쉼표로 구분된 목록에 이벤트 로그 이름을 입력합니다. 와일드카드가 허용됩니다. 모든 로그를 얻으려면 별표(*
) 와일드카드를 사용합니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-ListProvider
이 cmdlet이 가져오는 이벤트 로그 공급자를 지정합니다. 이벤트 로그 공급자는 이벤트 로그에 이벤트를 쓰는 프로그램 또는 서비스입니다.
쉼표로 구분된 목록에 공급자 이름을 입력합니다. 와일드카드가 허용됩니다. 컴퓨터의 모든 이벤트 로그 공급자를 얻으려면 별표(*
) 와일드카드를 사용합니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-LogName
이 cmdlet에서 이벤트를 가져오는 이벤트 로그를 지정합니다. 쉼표로 구분된 목록에 이벤트 로그 이름을 입력합니다. 와일드카드가 허용됩니다. 로그 이름을 Get-WinEvent
cmdlet으로 파이프할 수도 있습니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | True |
-MaxEvents
반환되는 최대 이벤트 수를 지정합니다. 정수(예: 100)를 입력합니다. 기본값은 로그 또는 파일의 모든 이벤트를 반환하는 것입니다.
형식: | Int64 |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Oldest
이 cmdlet은 이벤트를 가장 오래된 순서로 가져옵니다. 기본적으로 이벤트는 최신 순서로 반환됩니다.
이 매개 변수는 .etl
및 .evt
파일과 디버그 및 분석 로그에서 이벤트를 가져오는 데 필요합니다. 이러한 파일에서 이벤트는 가장 오래된 순서로 기록되며 이벤트는 가장 오래된 순서로만 반환될 수 있습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Path
이 cmdlet에서 이벤트를 가져오는 이벤트 로그 파일의 경로를 지정합니다. 쉼표로 구분된 목록에 로그 파일의 경로를 입력하거나 와일드카드 문자를 사용하여 파일 경로 패턴을 만듭니다.
Get-WinEvent
.evt
, .evtx
및 .etl
파일 이름 확장명을 가진 파일을 지원합니다. 동일한 명령에 다른 파일 및 파일 형식의 이벤트를 포함할 수 있습니다.
형식: | String[] |
별칭: | PSPath |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | True |
-ProviderName
이 cmdlet이 이벤트를 가져오는 이벤트 로그 공급자를 문자열 배열로 지정합니다. 쉼표로 구분된 목록에 공급자 이름을 입력하거나 와일드카드 문자를 사용하여 공급자 이름 패턴을 만듭니다.
이벤트 로그 공급자는 이벤트 로그에 이벤트를 쓰는 프로그램 또는 서비스입니다. PowerShell 공급자가 아닙니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | True |
입력
System.String, System.Xml.XmlDocument, System.Collections.Hashtable
LogName(문자열), FilterXML 쿼리 또는 FilterHashtable 쿼리를 파이프라인하여 Get-WinEvent
수 있습니다.
출력
System.Diagnostics.Eventing.Reader.EventLogConfiguration, System.Diagnostics.Eventing.Reader.EventLogRecord, System.Diagnostics.Eventing.Reader.ProviderMetadata
다른 모든 매개 변수를 사용하여
참고
Get-WinEvent
Windows Vista, Windows Server 2008 R2 이상 버전의 Windows에서 실행됩니다.
Get-WinEvent
Windows Vista 이상 버전을 실행하는 컴퓨터에서 Get-EventLog
cmdlet을 대체하도록 설계되었습니다.
Get-EventLog
클래식 이벤트 로그에서만 이벤트를 가져옵니다.
Get-EventLog
이전 버전과의 호환성을 위해 PowerShell 6 이전 버전에서 유지됩니다.
Get-WinEvent
및 Get-EventLog
cmdlet은 Windows PE(Windows 사전 설치 환경)에서 지원되지 않습니다.