다음을 통해 공유


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 이벤트 로그 및 이벤트 로그 공급자를 나열합니다. 명령을 중단하려면 ctrlC누릅니다. 선택한 로그 또는 선택한 이벤트 공급자가 생성한 로그에서 이벤트를 가져올 수 있습니다. 또한 여러 원본의 이벤트를 단일 명령으로 결합할 수 있습니다. Get-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 매개 변수는 별표(*) 와일드카드를 사용하여 각 로그에 대한 정보를 표시합니다. ComputerName 매개 변수는 localhost로컬 컴퓨터에서 로그를 가져오기 위해 지정합니다. 개체는 파이프라인을 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

변수 $SServer01, Server02Server03세 개의 서버를 저장합니다. ForEach 문은 루프를 사용하여 ($Server in $S)각 서버를 처리합니다. 중괄호({ })의 스크립트 블록은 Get-WinEvent 명령을 실행합니다. ListLog 매개 변수는 Application 로그를 지정합니다. ComputerName 매개 변수는 변수 $Server 사용하여 각 서버에서 로그 정보를 가져옵니다.

개체는 파이프라인을 Select-Object cmdlet으로 보냅니다. LogMode, MaximumSizeInBytes, RecordCount, LogName속성을 가져오고 계산 식을 사용하여 변수를 사용하여 ComputerName 표시합니다. 개체는 파이프라인을 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은 컴퓨터에서 로그 정보를 가져옵니다. ListProvider 매개 변수는 Microsoft-Windows-GroupPolicy공급자를 지정합니다. 식은 괄호로 래핑되고 Events 속성을 사용하여 개체를 가져옵니다. 개체는 파이프라인을 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으로 전송됩니다. Property 매개 변수를 사용하여 count기준으로 개체 를 정렬합니다. 내림차순 매개 변수는 출력을 개수별로 가장 높은 값에서 가장 낮은 값으로 표시합니다. 출력에서 Count 열에는 각 이벤트의 총 수가 포함됩니다. 이름 열에는 그룹화된 ID 번호가 포함됩니다.

$Event 변수는 파이프라인을 Group-Object cmdlet으로 보냅니다. Property 매개 변수를 사용하여 LevelDisplayName 속성을 지정하고 levelDisplayName개체 수를 계산합니다. 개체는 경고정보같은 수준으로 그룹화됩니다. NoElement 매개 변수는 출력에서 다른 속성을 제거합니다. 출력에서 Count 열에는 각 이벤트의 총 수가 포함됩니다. 이름 열에는 그룹화된 LevelDisplayName포함됩니다.

예제 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으로 보냅니다. Property 매개 변수를 사용하여 LevelDisplayName LogName개체를 그룹화합니다. NoElement 매개 변수는 출력에서 다른 속성을 제거합니다. 그룹화된 개체는 파이프라인 아래로 Format-Table cmdlet으로 전송됩니다. Format-Table AutoSize 매개 변수를 사용하여 열의 서식을 지정합니다. Count 열에는 각 이벤트의 총 수가 포함됩니다. 이름 열에는 그룹화된 LevelDisplayNameLogName포함됩니다.

예제 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-ObjectTimeCreated 속성 값으로 개체를 내림차순으로 정렬합니다. 개체는 100개의 최신 이벤트를 표시하는 Select-Object cmdlet으로 파이프라인 아래로 전송됩니다.

예제 14: 이벤트 추적 로그에서 이벤트 가져오기

이 예제에서는 이벤트 추적 로그 파일(.etl) 및 보관된 Windows PowerShell 로그 파일(.evtx)에서 이벤트를 가져오는 방법을 보여 줍니다. 여러 파일 형식을 단일 명령으로 결합할 수 있습니다. 파일에 동일한 형식의 .NET Framework 개체가 포함되어 있으므로 EventLogRecord동일한 속성을 사용하여 필터링할 수 있습니다. 이 명령은 파일에서 읽기 때문에 .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으로 보냅니다. 스크립트 블록을 사용하여 403id 이벤트를 찾습니다. $_ 변수는 파이프라인의 현재 개체를 나타내고 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 변수에 저장된 값을 사용합니다. ID 키는 1003이벤트 ID 값을 사용합니다.

예제 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 로그로 지정합니다. ProviderName 키는 이벤트의 원본인 애플리케이션 오류값을 사용합니다. Data 키는 값을 사용합니다iexplore.exeStartTime 키는 $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

하나 이상의 이벤트 로그에서 이벤트를 선택하는 해시 테이블 형식의 쿼리를 지정합니다. 쿼리에는 하나 이상의 키/값 쌍이 있는 해시 테이블이 포함되어 있습니다.

해시 테이블 쿼리에는 다음과 같은 규칙이 있습니다.

  • 키와 값은 대/소문자를 구분하지 않습니다.
  • 와일드카드 문자는 LogNameProviderName 키와 연결된 값에서만 유효합니다.
  • 각 키는 각 해시 테이블에 한 번만 나열할 수 있습니다.
  • 경로 값은 .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 쿼리를 생성하려면 사용자 지정 보기 만들기 사용하고 Windows 이벤트 뷰어에서 현재 로그 필터링 기능을 사용합니다. 대화 상자의 항목을 사용하여 쿼리를 만든 다음 XML 탭을 클릭하여 XML 형식으로 쿼리를 봅니다. XML 탭의 XML을 FilterXml 매개 변수 값으로 복사할 수 있습니다. 이벤트 뷰어 기능에 대한 자세한 내용은 이벤트 뷰어 도움말을 참조하세요.

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

ListLog 매개 변수를 사용하면 system.Diagnostics.Eventing.Reader.EventLogConfiguration 개체를 반환합니다.

ListProvider 매개 변수를 사용하면 System.Diagnostics.Eventing.Reader.ProviderMetadata 개체를 반환합니다.

다른 모든 매개 변수를 사용하여 System.Diagnostics.Eventing.Reader.EventLogRecord 개체를 반환합니다.

참고

Get-WinEvent Windows Vista, Windows Server 2008 R2 이상 버전의 Windows에서 실행됩니다.

Get-WinEvent Windows Vista 이상 버전을 실행하는 컴퓨터에서 Get-EventLog cmdlet을 대체하도록 설계되었습니다. Get-EventLog 클래식 이벤트 로그에서만 이벤트를 가져옵니다. Get-EventLog 이전 버전과의 호환성을 위해 PowerShell 6 이전 버전에서 유지됩니다.

Get-WinEventGet-EventLog cmdlet은 Windows PE(Windows 사전 설치 환경)에서 지원되지 않습니다.