Windows 10 では、Windows Update クライアントは、以前のバージョンの Windows のようにテキスト ファイルに書き込むのではなく、イベント トレースを使用します。これにより、クライアント マシンの問題のトラブルシューティングが困難になる可能性があります。
Get-WindowsUpdateLog コマンドレットは常に機能するとは限りません。特に、リモートで実行した場合や、ターゲット マシンがインターネットに直接アクセスできない場合は、正しく機能しないようです。原因が明確でないその他の問題の報告も見ました。
より信頼性が高く柔軟なオプションはありますか?
答え1
から始まる1709オフライン(つまり、シンボルサーバーにアクセスできない)はもはや問題ではありません。Get-WindowsUpdateLog
-LogPath .\WindowsUpdate.log
PowerShellから。
あるいは、それが気に入らない場合は、次のようにします。
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
この回答はもう機能しません。 削除解除mirhのリクエスト将来の研究の参考になるかもしれないからです。mirhの回答または私の新しい答えその代わり。
以下に説明する使用方法は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 自体を実行する必要はありません。
次に、ログを 1 つのファイルに結合します。
copy *.txt WindowsUpdate.log