두 Windows 컴퓨터의 이벤트 로그에서 이벤트를 읽으려고합니다. 하나는 Windows 10 Enterprise (완벽하게 작동)이고 다른 하나는 Small Business Server 2008입니다. SBS2008에서는 78 번째 문자에서 기계 출력이 잘리지 만 그 이유는 알 수 없습니다. 그것은 두 기계, 아니 절단에 PowerShell을 편집 창에서 잘 수행데이터 잘림 SBS2008
get-eventlog Application -After (Get-Date).AddDays(-10) |
Where-Object {$_.EntryType -like 'Error' -or $_.EntryType -like
'Information'} | Format-Table -Property TimeGenerated, Index,
EventID, EntryType, Source, Message -autosize | Out-String -Width 4000
:
이
내가 실행하고있는 PowerShell 명령입니다. 내가 GetEvents.ps1 -file 출력을 PowerShell을 사용하여 명령 창에서 실행하면 잘립니다 : C : GetEvents.ps1- 파일 \ BITS> PowerShell은 난이 수행되고 있는지 작동하지 않을 수 있습니다. 이것은 자바 코드 :
String command = "powershell.exe " + Cmd;
Process powerShellProcess = Runtime.getRuntime().exec(command);
powerShellProcess.getOutputStream().close();
String line;
BufferedReader stdout = new BufferedReader(new InputStreamReader(powerShellProcess.getInputStream()));
while ((line = stdout.readLine()) != null) {
if (line.length() > 0) {
System.out.println(line);
}
}
사람이 로그에서 이벤트를 얻거나 내가이 캐리지 리턴에 의해 파괴되지 않고 PowerShell 스크립트의 출력을 읽는 방법을 제안하는 더 좋은 방법을 제안 할 수 있습니까? 이것은 내가 SBS2008 고객 기계에서 실패하는 것을 발견하기 위해서만 내 컴퓨터 (W10 하나)에서 광범위하게 테스트했기 때문에 상당히 실망 스러웠습니다! 다른 컴퓨터에서 사용되는 라이브러리 및 Java 버전을 확인했으며 동일합니다. 필자는 마지막 'While'블록 내에서 문자열의 일부 구문 분석을 수행하고 들어오는 줄이 잘리지 않기 때문에 println 문은 아닙니다.
나는 Get-winevent를 사용하여 계속 시도했지만 명령에 filterhashtable 플래그를 넣을 때 SBS2008에서 '매개 변수가 잘못되었습니다'라는 메시지가 나타나면 실패합니다 (W10에서 정상적으로 작동 함). 나의 이상은 주어진 eventID (특정 항목을 저장할 수 있기 때문에) 이후 특정 로그 파일의 모든 이벤트를 가져올 수 있지만 모든 Windows 운영 체제에서 같은 형식으로 같은 출력을 얻는 것은 사실상 불가능한 것처럼 보입니다. 어떤 제안이라도 환영합니다.
'| 서식 테이블 | Out-String'. "나는 케이크 반죽을 섞어서 오븐에 넣은 다음 완성 된 케이크를 오븐에서 꺼내 케이크 믹서에 다시 넣고 케이크 깡통에 다시 반죽하지만 이제는 모두 부스러기입니다. 알 겠어? " Format-Table은 콘솔 세션의 관리자에게 파이프 라인 끝 표시를 표시하며 그 외에는 거의 표시되지 않습니다. 더 멋진 테이블을 만들기 위해 데이터를 버릴 것입니다. Format-Table이 Java 내부에 존재하지 않는 호스트에 데이터를 표시하기 위해 데이터를 분할하려고 시도하면 Out-String -width 4000은 다시이를 다시 함께 배치하지 않습니다. – TessellatingHeckler
Java에서 JSON 또는 CSV를 읽고 포맷 할 수 있습니까? – TravisEz13
고마워요,하지만, 그것은 완벽하게 이해가되지만, 그것은 문제가 떠납니다 ... 내가 포맷 - 테이블을 가져올 때 전체 문자열을 얻을 수 있지만 그것은 나를 위해 중요한 EventID 열을 포함하지 않습니다. format-table을 사용하지 않고 명령에 해당 열을 포함 시키려면 어떻게합니까? –