2013-07-17 2 views
1

코드 범위 또는 필터 해시 테이블을 사용하는 비항 등별로 이벤트 로그를 필터링 할 수 있습니까? 같은 뭔가 :이벤트 코드별로 필터 해시 테이블 필터

$filter = @{ 
    LogName = 'application' 
    Level = 2,3 
    ID = isBetween 2000 and 4000 and -ne 3333 => ? 
} 
Get-WinEvent -FilterHashtable @filter 

답변

3

documentation ID에 따르면 정수만의 목록이어야합니다.

- ID = <Int32[]>

3

앤디가 말한 것처럼, ID 숫자의 목록이 될 필요가 있지만, 당신은 내가 이전에 불완전한 대답을 게시했다 (ID 번호 목록을 직접 구축 할 수 있지만, 내 자신의 코드를 수정했습니다.)

다음은 트릭을해야 다음

[int32[]]$ID = @(2000..3332 + 3334..4000) 
$filter = @{Logname='Application'; 
      Level=2,3; 
      ID=$ID} 
Get-WinEvent -FilterHashtable $filter 
+0

이상한를 ... 난이 시도하고 일했다,하지만 난이 일을 얻을 수있는 가장 큰 범위는 약 20 ID의했다. – Knox

+0

이상한 - Windows 버전 및 PowerShell 버전은 무엇입니까? –

+0

Windows 서버 2012R2에서 실행되는 powershell 버전 4.0.1.1을 사용하고 있습니다. 대상 원격 컴퓨터는 모두 Windows 7입니다. 실패하면 원격 시스템이 기준을 충족시키는 것으로 발견 된 것과 같이 응답합니다. 나는 빙빙 돌아 왔고 다른 사람들이 22 개 이상의 신분증에 문제가 있다고 말한 것을 발견했습니다. 당신이 어떤 대답을하지 않으면 나는 조심 스러울뿐입니다. 아마도 그것은 문제가되는 원격 기계 일뿐입니다. BTW, 나는 당신의 해결책을 보았을 때 기뻤습니다. 나는 그것이 내 문제를 해결할 것이라고 확신했다. 당신이 오늘 가지고있는 upvote는 나야. – Knox