Windows 10에서 Windows 업데이트 클라이언트는 이전 버전의 Windows에서처럼 텍스트 파일에 쓰는 대신 이벤트 추적을 사용합니다. 이로 인해 클라이언트 시스템의 문제 해결이 어려워질 수 있습니다.
Get-WindowsUpdateLog cmdlet이 항상 작동하는 것은 아닙니다. 특히, 원격으로 실행할 때나 대상 머신이 인터넷에 직접 접속할 수 없는 경우에는 제대로 작동하지 않는 것 같습니다. 원인이 명확하지 않은 다른 문제에 대한 보고도 보았습니다.
더 안정적이고 유연한 옵션이 있습니까?
답변1
에서 시작1709년오프라인 상태(읽기: 기호 서버에 액세스할 수 없음)는 더 이상 책임이 되어서는 안 됩니다. 그냥 사용할 수 있습니다Get-WindowsUpdateLog
-LogPath .\WindowsUpdate.log
파워쉘에서.
또는 마음에 들지 않으면 다음을 따르세요.
FOR %i IN (C:\Windows\Logs\WindowsUpdate\*.etl) DO tracerpt %i -of csv -o %~ni.csv
copy *.csv WindowsUpdate.csv
(tracerpt는 ~4000개 이상의 항목이 포함된 단일 로그 파일을 생성하는 것으로 어떻게든 제한되어 있는 것 같습니다)
답변2
Windows Server 2016 또는 Windows 2016 LTSB의 경우,이 마이크로소프트 기사Get-WindowsUpdateLog
Microsoft 기호 서버에 액세스할 수 없는 컴퓨터에서 명령을 사용하는 방법을 설명합니다 .
가장 간단한 옵션은 C:\Windows\Logs\WindowsUpdate
오프라인 컴퓨터의 .etl 파일을 (온라인) 관리 컴퓨터로 복사한 다음 옵션을 사용하여 -ETLPath
복사 Get-WindowsUpdateLog
된 파일을 가리키는 것입니다.
답변3
이 답변은 더 이상 작동하지 않습니다. 삭제 취소 날짜:미르의 부탁그리고 향후 연구의 참고자료가 될 수 있기 때문입니다. 사용미르의 대답또는나의 새로운 대답대신에.
아래 설명된 대로 사용하는 방법은 tracefmt
Microsoft 블로그 게시물을 기반으로 했으며 2018년 초에 게시했을 때는 작동했지만 그 해 후반에 작동이 중단되었습니다. Windows 1709 이상에서도 더 이상 작동하지 않는 것 같습니다.
tracefmt
Windows 10 SDK를 사용하여 이벤트 추적 로그를 일반 텍스트로 변환할 수 있습니다 .
C:\Windows\Logs\WindowsUpdate
먼저 대상 컴퓨터 의 파일을 관리 컴퓨터의 편리한 위치에 복사합니다 .
명령줄 창을 열고 추적 파일의 복사본이 포함된 디렉터리로 변경한 후 다음 명령을 실행합니다.
for %i in (*.etl) do "c:\Program Files (x86)\Windows Kits\10\bin\x64\tracefmt.exe" -o %~ni.txt -r srv*c:\symbols*https://msdl.microsoft.com/download/symbols %i
관리 머신에는 Windows 10 SDK가 설치되어 있어야 하며 직접 인터넷에 액세스할 수 있어야 합니다. Windows 10 자체를 실행할 필요는 없습니다.
그런 다음 로그를 단일 파일로 결합할 수 있습니다.
copy *.txt WindowsUpdate.log