역사적으로 WindowsUpdate.log 일반 텍스트 파일은 Windows Update 에이전트 및 서비스의 작동을 분석하는 데 사용되었습니다. 그러나 Windows 10(Windows Server 2016/2019)의 Windows 업데이트 로그는 Windows용 이벤트 추적에 저장됩니다. 파일 형식(ETW ), 일반적인 텍스트 파일 대신. 이러한 작업을 통해 Windows 개발자는 로깅 하위 시스템의 성능을 높이고 디스크에서 텍스트 파일이 차지하는 공간을 줄일 계획이었습니다.
따라서 Windows Update 이벤트는 더 이상 실시간으로 %windir%\WindowsUpdate.log에 기록되지 않습니다. 파일. 파일은 여전히 Windows 폴더의 루트에 있지만 WU 로그를 수집하는 데 ETW 형식을 사용한다고만 표시됩니다.
Windows 업데이트 로그는 이제 ETW(Windows용 이벤트 추적)를 사용하여 생성됩니다.Get-WindowsUpdateLog PowerShell 명령을 실행하여 ETW 추적을 읽을 수 있는 WindowsUpdate.log로 변환하십시오.
자세한 내용은 https://go.microsoft.com/fwlink/?LinkId=518345를 참조하십시오.
관리자를 위한 새로운 로깅 방법의 단점 – 이제 Windows Update Agent 서비스를 신속하게 분석할 수 없으며, WindowsUpdate.log 텍스트 파일에서 오류 코드를 찾고(Windows Update 오류 코드의 전체 목록 참조), WSUS 에이전트 설정을 확인할 수 없습니다. 업데이트 설치 기록을 분석합니다.
업데이트 서비스 이벤트를 보다 편리하게 분석하기 위해 ETW 이벤트를 일반 텍스트 WindowsUpdate.log 파일로 변환할 수 있습니다. 이렇게 하려면 PowerShell cmdlet – Get-WindowsUpdateLog를 사용합니다. . 이 cmdlet을 사용하면 모든 .etl에서 정보를 수집할 수 있습니다. 파일(C:\WINDOWS\Logs\WindowsUpdate에 저장됨) ) 단일 WindowsUpdate.log 텍스트 파일을 만듭니다.
WindowsUpdate.log 파일을 생성하고 C:\PS\Logs에 저장하려면 PowerShell 콘솔에서 다음 명령을 실행하십시오.
Get-WindowsUpdateLog -logpath C:\PS\Logs\WindowsUpdate.log
Windows Server 2016에서 Get-WindowsUpdateLog cmdlet을 실행할 때 "SymSrv.dll이 없습니다." 오류가 표시될 수 있습니다.
Copy-Item : Cannot find path 'C:\Program Files\Windows Defender\SymSrv.dll' because it does not exist. At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\WindowsUpdate\WindowsUpdateLog.psm1:56 char:5
서버에 Windows Defender가 설치되어 있지 않으면 "C:\Program Files\Windows Defender\SymSrv.dll" 파일이 일반적으로 누락됩니다.
오류를 수정하려면 Windows Defender를 설치하거나 다른 Windows Server 2016/Windows 10에서 SymSrv.dll 파일을 복사하거나 로컬 WinSxS 폴더에서 SymSrv.dll 파일을 검색할 수 있습니다(제 경우 디렉터리는 C:\Windows\WinSxS\amd64_windows-defender-service-cloudclean_… ) "C:\Program Files\Windows Defender" 폴더에 복사합니다.
이전 Windows 10 빌드에서 Get-WindowsUpdateLog cmdlet을 처음 실행하면 Microsoft Internet Symbol Store를 다운로드하여 설치합니다. 최신 버전의 Windows 10은 Azure 온라인에서 Microsoft Character Server에 액세스합니다. 그런 다음 cmdlet:
- 모든 .etl 파일에서 데이터를 읽습니다.
- 데이터는 CSV(기본값) 또는 XML 형식으로 변환됩니다.
- 중간 형식의 파일 데이터가 변환되어 LogPath 매개변수에 지정된 로그 텍스트 파일에 추가됩니다(LogPath의 매개변수가 지정되지 않으면 WindowsUpdate.log가 실행 중인 사용자의 바탕 화면에 생성됩니다. 명령)
다음 PowerShell 명령을 사용하여 로그 파일을 엽니다.
Invoke-Item -Path C:\PS\Logs\WindowsUpdate.log
경우에 따라 WindowsUpdate.log 파일에서 다음과 같은 문자열을 볼 수 있습니다.
Unknown(140): GUID=53212e4cc-4321-f43a-2123-9ada0090bc12b (No Format Information found).
즉, Windows 기호 서버가 설치되어 있지 않습니다(현재 Azure의 기호 저장소에서 자동으로 다운로드되기 때문에 별도의 Windows 기호 설치 프로그램을 다운로드할 수 없습니다). 격리된 환경의 경우 Windows Update용 오프라인 기호 문서에 따라 기호 서버의 오프라인 버전을 사용할 수 있습니다.
팁. 생성된 WindowsUpdate.log 파일은 정적이며 이전 Windows 버전과 같이 실시간으로 업데이트되지 않습니다. 파일을 업데이트하려면 Get-WindowsUpdateLog cmdlet을 다시 한 번 실행하거나 일정 빈도로 파일을 자동으로 업데이트하는 스크립트를 만들어야 합니다(파일 덮어쓰기).많은 이벤트 소스에서 데이터를 수집하기 때문에 결과 WindowsUpdate.log 파일을 분석하는 것은 매우 어렵습니다.
- AGENT – Windows Update 에이전트 이벤트
- AU – 자동 업데이트,
- AUCLNT – 사용자 상호작용
- HANDLER – 설치 관리자 관리 업데이트
- MISC – 일반적인 WU 정보
- PT – 로컬 데이터 저장소와 업데이트 동기화
- REPORT – 보고서 수집,
- SERVICE – wuauserv 서비스 시작/중지 이벤트,
- 설정 – Windows Update 클라이언트의 새 버전 설치
- DownloadManager – BITS를 사용하여 로컬 캐시에 업데이트 다운로드
- 처리기, 설정 – 설치 프로그램 헤더(CBS 등),
- 외 다수.
간단한 정규식을 사용하여 Windows 업데이트 에이전트(에이전트)에서 마지막 30개의 이벤트를 선택할 수 있습니다.
Select-String -Pattern '\sagent\s' -Path C:\PS\Logs\WindowsUpdate.log | Select-Object -Last 30
다음과 같은 여러 소스를 기준으로 WindowsUpdate.log의 이벤트를 필터링할 수 있습니다.
Select-String -Pattern '\sagent\s|\smisc\s' -Path c:\PS\Logs\WindowsUpdate.log | Select-Object -Last 50
마찬가지로 KB 번호, 오류(FAILED, 종료 코드, 치명적)별로 이벤트에 대한 텍스트 파일을 구문 분석할 수 있습니다.
원격 컴퓨터 또는 서버에 대한 WindowsUpdate.log 파일을 생성할 수도 있습니다.
Get-WindowsUpdateLog -ETLPath \\ny-srf-1\C$\windows\Logs\WindowsUpdate -LogPath C:\PS\Logs\windowsupdate-ny-srf-1.log
이벤트 뷰어 로그를 사용하여 Windows 업데이트 서비스의 작동을 분석할 수도 있습니다. 다음 이벤트 보기 섹션을 확장합니다. 응용 프로그램 및 서비스 로그 -> Microsoft -> Windows –> WindowsUpdateClient -> 작동 .
PSWindowsUpdate 모듈을 사용하여 PowerShell cli에서 업데이트를 관리할 수 있습니다.