কম্পিউটার টিউটোরিয়াল

উইন্ডোজ ১০/উইন্ডোজ সার্ভারে WinSxS ফোল্ডার ক্লিন আপ ও কমপ্রেস করা

এই আর্টিকেলে আমরা উইন্ডোজের WinSxS ফোল্ডার, এর συνεχে বড় হওয়ার কারণ এবং ক্লিন আপ করার পদ্ধতিগুলো নিয়ে আলোচনা করব। C:\Windows\WinSxS ডিরেক্টরি হলো উইন্ডোজ কম্পোনেন্টের রিপোজিটরি। এই ডিরেক্টরিতে DLL, বাইনারি এবং XML ফাইল থাকে যা বিভিন্ন উইন্ডোজ রোল বা ফিচার ইনস্টল ও অপারেশনের জন্য দরকার। উইন্ডোজ আপডেট ইনস্টল করার সময় (সাধারণত প্রতি মাসে একবার), আপডেটেড কম্পোনেন্টের নতুন ভার্সন সিস্টেমে ইনস্টল হয়, যখন পুরানো ভার্সন WinSxS ফোল্ডারে সংরক্ষিত থাকে (কম্প্যাটিবিলিটি নিশ্চিত করতে এবং উইন্ডোজ আপডেট আনইনস্টল করার সময় পুরানো কম্পোনেন্ট ভার্সনে রোলব্যাক করার সুবিধা দিতে)।

সময়ের সাথে সাথে WinSxS ডিরেক্টরির আকার বড় হয়ে যায়। বরং, এর আকার কোনো কিছু দ্বারা লিমিটেড নয় (যদিও প্র্যাক্টিসে উইন্ডোজ ১০-এ WinSxS ফোল্ডারের আকার zgodা ১৫-২০ GB-র বেশি হয় না)।

এই আর্টিকেলে, আমরা উইন্ডোজ ১০ এবং উইন্ডোজ সার্ভার ২০১৬/২০১৯-এ WinSxS ফোল্ডার ক্লিন আপ করার সবচেয়ে নিরাপদ পদ্ধতিগুলো দেখব:

  • কম্পোনেন্ট স্টোর অপ্টিমাইজ করা এবং উইন্ডোজ আপডেট ইনস্টলেশনের পর ছেড়ে যাওয়া পুরানো উইন্ডোজ কম্পোনেন্ট ফাইলগুলো রিমুভ করা;
  • Features on Demand – অপ্রयुक्त উইন্ডোজ কম্পোনেন্ট ডিস্ক থেকে রিমুভ করার সুবিধা দেয়;
  • WinSxS ফোল্ডারে NTFS কমপ্রেশন ইনএবল করা – NTFS ফাইল সিস্টেমের বিল্ট-ইন কমপ্রেশন ব্যবহার করে WinSxS ডিরেক্টরির আকার কমানো।

অনেক ইউজার প্রায়শই জিজ্ঞাসা করেন: WinSxS ফোল্ডার থেকে ম্যানুয়ালি ফাইল ডিলিট করা সম্ভব কিনা? উত্তর স্পষ্টভাবে না! এই کارগুলো আপনার উইন্ডোজ ইমেজ ক্ষতিগ্রস্ত করতে পারে। যদিও WinSxS ফোল্ডার থেকে ফাইল রিমুভ করার কিছু চেষ্টা সফল হতে পারে, এই পদ্ধতি রিকমেন্ড করা যাবে না।

উইন্ডোজ ১০-এ WinSxS ফোল্ডার আসল আকার চেক করা

WinSxS ফোল্ডারের বর্তমান আকার জানতে সবচেয়ে সহজ উপায় হলো File Explorer-এ %windir%\WinSxS ফোল্ডারের প্রপার্টিজ খুলা (বা পাওয়ারশেল স্ক্রিপ্ট ব্যবহার)। لكن লক্ষ্য করুন অধিকাংশ ফাইল ম্যানেজার (File Explorer সহ) WinSxS ফোল্ডারের আকার ডিস্কে যা জায়গা নেয় তার চেয়ে কিছুটা বড় দেখায়।

কারণ হলো WinSxS ডিরেক্টরিতে অন্য ফোল্ডারগুলোর সিস্টেম ফাইলগুলোর দিকে হার্ড লিংক (সিমবলিক লিংক) এর একটি বড় সংখ্যা রয়েছে। ফাইল ম্যানেজাররা WinSxS ফোল্ডারের আকার ক্যালকুলেট করার সময় হার্ড লিংক দ্বারা রেফারেন্স করা ফাইলগুলোর আকারও গণনা করে, কিন্তু এটি সঠিক নয়।

Sysinternals-এর du টুল ব্যবহার করে WinSxS ফোল্ডারের ডিস্কে আসল আকার জানা যায়:
du -v c:\windows\winSXS

DISM কমান্ড ব্যবহার করেও কম্পোনেন্ট স্টোর (WinSxS ফোল্ডার) এর আকার অ্যানালাইজ করা যায়:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Deployment Image Servicing and Management tool [==========================100.0%==========================] Component Store (WinSxS) information: Windows Explorer Reported Size of Component Store : 8.44 GB Actual Size of Component Store : 8.15 GB Shared with Windows : 5. 74GB Backups and Disabled Features : 1.97 GB Cache and Temporary Data : 438.31 MB Date of Last Cleanup : 2021-02-22 20:37:29 Number of Reclaimable Packages : 1 Component Store Cleanup Recommended : Yes The operation completed successfully.

দেখা যাচ্ছে, এই কেসে আমি WinSxS ফোল্ডারের আকার (1.97 + 0.44) GB কমাতে পারি।

DISM কমান্ড আপনাকে আপনার উইন্ডোজ ইমেজ চেক ও রিপেয়ার করতে দেয়:

DISM /Online /Cleanup-Image /RestoreHealth

উইন্ডোজে কম্পোনেন্ট স্টোর (WinSxS ফোল্ডার) ক্লিন আপ করা

Windows Component Store (WinSxS ফোল্ডার) ক্লিয়ার করার সবচেয়ে দ্রুত এবং সহজ উপায় হলো স্টোরেজ অপ্টিমাইজ করার কমান্ড:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

StartComponentCleanup DISM অপশনটি উইন্ডোজ ৮ এবং উইন্ডোজ সার্ভার ২০১২ থেকে সব উইন্ডোজ ভার্সনে সাপোর্টেড।

ক্লিন আপ শেষ হলে বর্তমান কম্পোনেন্ট স্টোরের আকার চেক করুন:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

আমার উদাহরণে, এটি WinSxS ফোল্ডারের আকার ২.৪ GB কমিয়েছে।

/StartComponentCleanup অপশনে একটি অতিরিক্ত /ResetBase অপশন রয়েছে যা উইন্ডোজ আপডেট ইনস্টলেশনের পর ছেড়ে যাওয়া সকল পুরানো কম্পোনেন্ট ভার্সন রিমুভ করতে দেয়। এরপর আপনি ইনস্টল করা আপডেট বা সার্ভিস প্যাক আনইনস্টল করতে পারবেন না, এবং Uninstall an Update কন্ট্রোল প্যানেল আইটেম থেকে Uninstall বাটন গায়েব হয়ে যাবে। পুরানো কম্পোনেন্ট ভার্সন ক্লিন আপ করতে:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

উইন্ডোজ ৭ এবং উইন্ডোজ সার্ভার ২০০৮ R2-এ, সার্ভিস প্যাক ইনস্টলেশনের পর ছেড়ে যাওয়া পুরানো কম্পোনেন্ট ভার্সন ক্লিন আপ করার জন্য অতিরিক্ত DISM অপশন ব্যবহার হতো।

DISM /online /Cleanup-Image /spsuperseded

আপনি "Disk Cleanup" উইজার্ড ব্যবহার করেও পুরানো আপডেট ফাইল রিমুভ করতে পারেন:

  1. cleanmgr কমান্ড অ্যাডমিনিস্ট্রেটর হিসেবে চালান;
  2. ডিস্ক সিলেক্ট করুন এবং পরবর্তী উইন্ডোতে "Clean up system files" বাটনে ক্লিক করুন;
  3. তারপর "Windows update cleanup" অপশন সিলেক্ট করুন। Disk Cleanup টুল দেখাবে পুরানো উইন্ডোজ আপডেট ফাইল ডিলিট করে কতটুকু জায়গা মুক্ত করা যাবে। আমার উদাহরণে এটি ৩২৪ MB। OK ক্লিক করে ক্লিন আপ শুরু করুন।

DISM ব্যবহার করে কম্পোনেন্ট স্টোর ক্লিন আপ শেষ হলে চেক করুন কতটুকু ডিস্ক স্পেস মুক্ত হয়েছে।
অতিরিক্তভাবে, উইন্ডোজ ১০/উইন্ডোজ সার্ভার ২০১৬ Task Scheduler-এ একটি স্পেশ্যাল অটোমেটিক মেইনটেন্যান্স টাস্ক রয়েছে যা নিয়মিত WinSxS ফোল্ডার অপ্টিমাইজ ও ক্লিন আপ করে (DISM with StartComponentCleanup প্যারামিটার के समान অপারেশন)। এই StartComponentCleanup টাস্ক taskschd.msc-এর \Microsoft\Windows\Servicing সেকশনে অবস্থিত। এই টাস্ক ব্যাকগ্রাউন্ডে চলে এবং ৩০ দিনের চেয়ে পুরানো এবং nieuwere ফাইল দ্বারা সুপারসিডেড কম্পোনেন্ট ভার্সন অটোমেটিক্যালি রিমুভ করে।

এই টাস্ক ম্যানুয়ালি শুরু করতে পারেন:

schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"

উইন্ডোজ ১০/উইন্ডোজ সার্ভার থেকে অপ্রयुक्त রোল এবং ফিচার রিমুভ করা

আগের একটি আর্টিকেলে, আমরা উইন্ডোজে Features on Demand কনসেপ্ট আলোচনা করেছি, যা WinSxS ফোল্ডার থেকে অপ্রयुक्त রোলের বাইনারি ফাইল রিমুভ করার সুবিধা দেয়। উইন্ডোজ সার্ভারে Uninstall-WindowsFeature পাওয়ারশেল কামডলেট ব্যবহার করে রোল এবং ফিচার বাইনারি রিমুভ করা যায়।

উইন্ডোজ ১০-এ Uninstall-WindowsFeature কামডলেট নেই, এবং উইন্ডোজ ইমেজ থেকে ফিচার রিমুভ করতে DISM.exe ব্যবহার করতে হয়।

লক্ষ্য করুন DISM, Uninstall-WindowsFeature পাওয়ারশেল কামডলেটের মতো ডিপেন্ডেন্ট ফিচার রিমুভ করে না।

উইন্ডোজ ১০ ইমেজে উপলব্ধ সব ফিচারের সম্পূর্ণ লিস্ট পাওয়ার কমান্ড:
DISM.exe /Online /English /Get-Features /Format:Table

উদাহরণস্বরূপ, TelnetClient ফিচার উইন্ডোজ ইমেজ থেকে (WinSxS ফোল্ডার থেকে) রিমুভ করতে:

DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove

উইন্ডোজে উপলব্ধ সব অন-ডিমান্ড ফিচারের লিস্ট দেখলে পাবেন কম্পোনেন্ট স্ট্যাটাস পরিবর্তন হয়ে Disabled with Payload Removed হয়েছে।

এভাবে, উইন্ডোজ WinSxS ফোল্ডারের আকার উল্লেখযোগ্যভাবে কমাতে দেয় ডিস্ক থেকে অপ্রयुक्त কম্পোনেন্ট রিমুভ করে। একমাত্র বিষয় হলো এই ক্লিন আপ মেথড শুধু এডভান্সড ইউজারদের জন্য উপযোগী, যারা উইন্ডোজ ১০ ফিচারগুলো এবং তাদের উদ্দেশ্য সম্পর্কে জানেন।

উইন্ডোজ ১০-এ WinSxS ফোল্ডারে NTFS কমপ্রেশন ইনএবল করা

উইন্ডোজ ১০-এ WinSxS ডিরেক্টরির আকার কমানোর আরেকটি উপায় হলো NTFS ফাইল সিস্টেম লেভেলে ডিরেক্টরি কন্টেন্ট কমপ্রেস করা।

নোট। যেকোনো নন-স্ট্যান্ডার্ড সিস্টেম কনফিগারেশনে হস্তক্ষেপের মতো, আপনাকে আপনার উইন্ডোজ ১০ ইমেজের পূর্ণ ব্যাকআপ তৈরি করার দৃঢ় সুপারিশ করা হয়।

  1. অ্যাডমিনিস্ট্রেটর হিসেবে কমান্ড প্রম্পট খুলুন;
  2. Windows Installer এবং Windows Module Installer সার্ভিসগুলো স্টপ ও ডিজেবল করুন:
    sc stop msiserver
    sc stop TrustedInstaller
    sc config msiserver start= disabled
    sc config TrustedInstaller start= disabled
  3. WinSxS ডিরেক্টরির ফাইল ও ফোল্ডারগুলোর Access Control Lists (ACLs) ব্যাকআপ নিন বিল্ট-ইন icacls টুল ব্যবহার করে। একটি ACL ব্যাকআপ হলো একটি প্লেইন টেক্সট ফাইল যেটি সব ফাইল ও ডিরেক্টরি এবং তাদের অ্যাসাইন করা NTFS পারমিশন লিস্ট করে (বादে এই ফাইলটি ওরিজিনাল ACL রিস্টোর করতে দরকার হবে):
    icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t
  4. WinSxS ফোল্ডার এবং এর সব সাবফোল্ডারের অনার নিজের হয়ে যান:
    takeown /f "%WINDIR%\WinSxS" /r
  5. WinSxS ডিরেক্টরিতে আপনার একাউন্টের ফুল কন্ট্রোল পারমিশন দিন:
    icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t
  6. এখন compact কমান্ড ব্যবহার করে WinSxS ডিরেক্টরির ফাইলগুলো কমপ্রেস করুন। যেহেতু কিছু ফাইল উইন্ডোজ দ্বারা ব্যবহৃত হতে পারে, /i অপশন স্পেসিফাই করুন। অন্যথায়, প্রথম লকড ফাইলে কমপ্রেশন রুকিয়ে যাবে (উইন্ডোজ ১০-এ আরও উন্নত LZX কমপ্রেশন ব্যবহার করা যায়):
    compact /s:"%WINDIR%\WinSxS" /c /a /i *
  7. WinSxS ডিরেক্টরির অনার TrustedInstaller-এ ফেরত দিন:
    icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t
  8. আপনার তৈরি করা ACL ব্যাকআপ ফাইল ব্যবহার করে WinSxS ফোল্ডার আইটেমের ওরিজিনাল ACL রিস্টোর করুন:
    icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl"
  9. Windows Installer এবং Windows Module Installer সার্ভিসগুলোর ডিফল্ট স্টার্টআপ টাইপ রিস্টোর করুন:
    sc config msiserver start= demand
    sc config TrustedInstaller start= demand

এখন WinSxS ফোল্ডারের বর্তমান আকার চেক করুন:

দেখা যাচ্ছে, আমার উদাহরণে কমপ্রেশনের পর WinSxS ফোল্ডারের আকার 9.4GB থেকে 6.5GB হয়েছে (প্রায় এক-তिहাই কমেছে)। ছোট আকারের SSD ড্রাইভের জন্য খুব ভালো।

এই কমান্ডগুলো আলাদা আলাদা চালানো যাবে (তবে তখন প্রতিটি স্টেপের ফলাফল ট্র্যাক করা সহজ) বা একটি সিঙ্গেল স্ক্রিপ্ট ফাইলে ব্যবহার করা যাবে। আপনি যদি এটি চালান, তবে WinSxS ফোল্ডার আইটেমের জন্য বর্ণিত কমপ্রেশন প্রসেস শুরু হবে। WinSxS-এ NTFS কমপ্রেশন ইনএবল করার জন্য রেডি-টু-ইউজ ব্যাচ ফাইল ডাউনলোড করতে পারেন: winsxs_ntfs_compress.bat।

নতুন উইন্ডোজ আপডেট বা অ্যাপ ইনস্টল করার পর WinSxS ফোল্ডারে নতুন অকমপ্রেস্ড ফাইল আসবে, তাই আপনি এই স্ক্রিপ্ট নিয়মিত ব্যবহার করতে পারেন।

WinSxS ফোল্ডার কমপ্রেস করলে কী প্রভাব পড়তে পারে? উইন্ডোজ কমপ্রেস্ড ফাইলগুলোর সাথে ট্রান্সপারেন্টলি কাজ করে। তবে, такие ফাইল প্রসেস করার সময় এডিশনাল CPU টাইম লাগতে পারে ডিকমপ্রেস/কমপ্রেস করার জন্য। এটি উইন্ডোজ কম্পোনেন্ট বা আপডেট ইনস্টল করার সময় কিছুটা স্লোডাউন করতে পারে। কিন্তু আধুনিক CPU-তে ফাইল কমপ্রেশন/ডিকমপ্রেশন অপারেশন почти ইনস্ট্যান্টলি হয়, তাই ইউজার পারফরম্যান্সে বাস্তব প্রভাব লক্ষ্য নাও করতে পারে।

  1. উইন্ডোজ ১১/১০-এ স্টার্টআপ ফোল্ডার অ্যাক্সেস করার পদ্ধতি

  2. উইন্ডোজ ক্লায়েন্ট ও সার্ভারে WinSxS ফোল্ডারের সাইজ কমানোর পদ্ধতি

  3. Windows.old ফোল্ডার বুঝুন: কেন তৈরি হয় এবং কীভাবে নিরাপদে ডিলিট করবেন

  4. উইন্ডোজ ১০/৮/৭-এ WinSxS ফোল্ডার ছোট করার কার্যকর পদ্ধতি