ঐতিহাসিকভাবে, WindowsUpdate.log প্লেইন টেক্সট ফাইলটি Windows Update এজেন্ট ও সার্ভিসের অপারেশন বিশ্লেষণ করতে ব্যবহৃত হত। তবে, Windows 10 (Windows Server 2016/2019)-এ Windows Update লগগুলো সাধারণ টেক্সট ফাইলের পরিবর্তে Event Tracing for Windows ফাইল ফরম্যাটে (ETW) সংরক্ষিত হয়। এই পরিবর্তনের মাধ্যমে Windows ডেভেলপাররা লগিং সাবসিস্টেমের পারফরম্যান্স বাড়াতে এবং ডিস্কে টেক্সট ফাইলهای আকার কমাতে চেয়েছিল।
অতএব, Windows Update ইভেন্টগুলো আর রিয়েল-টাইমে %windir%\WindowsUpdate.log ফাইলে লেখা হয় না। যদিও ফাইলটি এখনও Windows ফোল্ডারের রুটে থাকে, কিন্তু এটিতে শুধু বলা থাকে যে ETW ফরম্যাটে WU লগ সংগ্রহ করা হচ্ছে।
Windows Update লগগুলো এখন ETW (Event Tracing for Windows) ব্যবহার করে তৈরি হয়।
অনুরোধ: Get-WindowsUpdateLog PowerShell কমান্ড চালান ETW ট্রেসকে পঠনযোগ্য WindowsUpdate.log-এ কনভার্ট করতে।
আরও তথ্যের জন্য https://go.microsoft.com/fwlink/?LinkId=518345 দেখুন।

প্রশাসকদের জন্য নতুন লগিং পদ্ধতির ডিসএডভান্টেজ — এখন আপনি দ্রুত Windows Update Agent সার্ভিস বিশ্লেষণ করতে পারবেন না, WindowsUpdate.log টেক্সট ফাইলে এরর কোড খুঁজে বের করতে পারবেন না (Windows Update Error Codes-এর সম্পূর্ণ তালিকা দেখুন), WSUS এজেন্ট সেটিংস চেক করতে পারবেন না এবং আপডেট ইনস্টলেশন ইতিহাস বিশ্লেষণ করতে পারবেন না।
আপনি ETW ইভেন্টগুলো প্লেইন টেক্সট WindowsUpdate.log ফাইলে কনভার্ট করতে পারেন আরও সুবিধাজনক বিশ্লেষণের জন্য। এটি করতে PowerShell ক্যাডলেট Get-WindowsUpdateLog ব্যবহার করুন। এই ক্যাডলেটটি সকল .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 ক্যাডলেট চালালে "SymSrv.dll is missing" এরর দেখতে পারেন:
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

"C:\Program Files\Windows Defender\SymSrv.dll" ফাইলটি সাধারণত অনুপস্থিত থাকে যদি Windows Defender সার্ভারে ইনস্টল না থাকে।
এররটি ফিক্স করতে, আপনি 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 ক্যাডলেট প্রথমবার চালালে এটি Microsoft Internet Symbol Store ডাউনলোড ও ইনস্টল করে। সবচেয়ে নতুন Windows 10 ভার্সনগুলো Azure-এ Microsoft Character Server-এ অনলাইন অ্যাক্সেস করে। তারপর ক্যাডলেটটি:
- সকল .etl ফাইল থেকে ডেটা পড়ে;
- ডেটাগুলো CSV (ডিফল্ট) বা XML ফরম্যাটে কনভার্ট করে;
- মধ্যবর্তী ফরম্যাটের ফাইল থেকে ডেটা কনভার্ট করে LogPath প্যারামিটারে নির্দিষ্ট লগ টেক্সট ফাইলে যোগ করে (যদি LogPath প্যারামিটার নির্দিষ্ট না করা থাকে, তবে কমান্ড চালানো ইউজারের ডেস্কটপে WindowsUpdate.log তৈরি হয়)
টিপ। ETL ফাইল বিশ্লেষণ করার অন্য একটি পদ্ধতি, যদিও কিছুটা জটিল, হল Tracefmt.exe ইউটিলিটি ব্যবহার করে .etl থেকে ডেটা প্রাপ্তি।
লগ ফাইলটি এই PowerShell কমান্ড দিয়ে খুলুন:
Invoke-Item -Path C:\PS\Logs\WindowsUpdate.log

কিছু ক্ষেত্রে, WindowsUpdate.log ফাইলে এ ধরনের স্ট্রিং দেখতে পাবেন:
Unknown(140): GUID=53212e4cc-4321-f43a-2123-9ada0090bc12b (No Format Information found).

এটি বোঝায় আপনার पास Windows Symbol server ইনস্টল নেই (আজকাল আপনি আলাদা Windows symbols installer ডাউনলোড করতে পারবেন না, কারণ এটি Azure-এ symbol store থেকে অটোমেটিক্যালি ডাউনলোড হয়)। আইসোলেটেড এনভায়রনমেন্টের জন্য, আপনি Offline Symbols for Windows Update আর্টিকেল অনুযায়ী অফলাইন ভার্সন অফ সিম্বল সার্ভার ব্যবহার করতে পারেন।
টিপ। নোট করুন যে তৈরি হওয়া WindowsUpdate.log ফাইলটি স্ট্যাটিক এবং পূর্বের Windows ভার্সনগুলোর মতো রিয়েল-টাইমে আপডেট হয় না। ফাইল আপডেট করতে, আপনাকে আবার Get-WindowsUpdateLog ক্যাডলেট চালাতে হবে বা একটি স্ক্রিপ্ট তৈরি করতে হবে যা নির্দিষ্ট ফ্রিকোয়েন্সিতে ফাইলটি আপডেট করে (ফাইলটি ওভাররাইট হয়)।
ফলাফলস্বরূপ WindowsUpdate.log ফাইলটি বিশ্লেষণ করা কঠিন, কারণ এটি অনেক ইভেন্ট সোর্স থেকে ডেটা সংগ্রহ করে:
- AGENT – Windows Update এজেন্ট ইভেন্ট;
- AU – অটোমেটিক আপডেট;
- AUCLNT – ইউজার ইন্টারঅ্যাকশন;
- HANDLER – আপডেট ইনস্টলার ম্যানেজমেন্ট;
- MISC – সাধারণ WU ইনফো;
- PT – লোকাল ডেটাস্টোরের সাথে আপডেট সিঙ্ক্রোনাইজেশন;
- REPORT – রিপোর্ট সংগ্রহ;
- SERVICE – wuauserv সার্ভিস স্টার্ট/স্টপ ইভেন্ট;
- SETUP – Windows Update ক্লায়েন্টের নতুন ভার্সন ইনস্টলেশন;
- DownloadManager – BITS ব্যবহার করে লোকাল ক্যাশে আপডেট ডাউনলোড;
- Handler, Setup – ইনস্টলার হেডার (CBS, ইত্যাদি);
- এবং আরও অনেক।
আপনি Windows Update Agent (agent) থেকে শেষ ৩০টি ইভেন্ট সিলেক্ট করতে পারেন একটি সিম্পল রেগুলার এক্সপ্রেশন দিয়ে:
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, Exit Code, FATAL) দিয়ে টেক্সট ফাইল পার্স করতে পারেন।
আপনি রিমোট কম্পিউটার বা সার্ভারের জন্য WindowsUpdate.log ফাইল তৈরি করতে পারেন:
Get-WindowsUpdateLog -ETLPath \\ny-srf-1\C$\windows\Logs\WindowsUpdate -LogPath C:\PS\Logs\windowsupdate-ny-srf-1.log
আপনি Event Viewer লগগুলোও ব্যবহার করতে পারেন Windows Update সার্ভিসের অপারেশন বিশ্লেষণ করতে। নিচের Event View সেকশন এক্সপ্যান্ড করুন: Applications and Services Logs -> Microsoft -> Windows –> WindowsUpdateClient -> Operational।

PSWindowsUpdate মডিউল ব্যবহার করে PowerShell CLI থেকে আপডেট ম্যানেজ করতে পারেন।