1

PowerShell을 사용하여 Windows 로그에서 특정 키워드를 찾을 때 출력이 나오지 않는 몇 가지 명령이 있습니다. 난 단지 Get-WinEvent -FilterHashtable @{LogName="Application"}을 실행하면단일 및 다중 키워드로 Powershell 검색

Get-WinEvent -FilterHashtable @{LogName="Application"} | Select-String "Information" 

그러나, 정보 키워드 많은 항목이 있습니다. Select-String -pattern "Information"도 작동하지 않습니다.

이상적으로 위의 시나리오에서 여러 키워드를 검색하고 싶습니다.

답변

2

당신은 할 필요가 :

Get-WinEvent -FilterHashtable @{LogName="Application"} | ? { $_.leveldisplayname -eq 'Information' } 

Information 당신이 찾고있는 것은 객체의 속성입니다. Get-WinEvent cmdlet은 개체 컬렉션을 반환하므로 LevelDisplayName 개체 속성을 필터링하기 위해 Where-Object 또는 ?을 추가해야합니다.

새 질문에 대답하려면 :

leveldisplayname

정보, 오류 또는 경고가 될 것입니다. 이들 중 하나를 추가하거나 논리를 사용하여 결합 할 수 있습니다.

Get-WinEvent -FilterHashtable @{LogName="Application"} | ? message -imatch "keyword1|keyword2|foo|bar" 

경우 : 복수 키워드를 검색하려면

Get-WinEvent -FilterHashtable @{LogName="Application"} | ? message -imatch "keyword1" 

, 당신은 OR | 연산자를 사용하여 정규 표현식을 수정할 수 있습니다 : 메시지의 키워드를 검색하기 위해, 정규식을 사용하여 아마도 가장 좋은 방법입니다 할 수있는 "foo"또는 "bar"가 포함 된 모든 오류 메시지를 검색하려고했습니다.

Get-WinEvent -FilterHashtable @{LogName="Application"} | ? { ($_.message -imatch "foo|bar") -and ($_.leveldisplayname -eq 'Error') } 
+0

Ok @ arco444. 메시지를 어떻게 검색합니까? 여러 키워드를 검색하려면 어떻게해야합니까? –

+0

@SanchitRasiya 메시지 또는 여러 디스플레이 수준의 여러 키워드 (예 : '정보'및 '오류')? – arco444

+0

Q # 1 레벨 표시 이름과 메시지에서도 한 단어로 어떻게 검색합니까? Q # 2 레벨 표시 이름 및 메시지에서 여러 키워드를 검색하려면 어떻게합니까? –