Articles

Diskrensning i Windows Server

med tiden, eftersom din Windows-Server körs längre, äts mer och mer diskutrymme. Helt enkelt borta! Att undersöka diskanvändningen lämnar dig clueless; det finns inga stora loggfiler, kraschdumpar eller det finns ingen programvara som ska tas bort. Vart tog det utrymmet vägen?

svaret: Windows-uppdateringar, Service Pack och snabbkorrigeringsinstallationer.

Protip: det här inlägget visar också hur du flyttar mappen Windows Server SoftwareDistribution och användarens dokumentmapp till en annan partition.

WinSxS cleanup i Windows Server-använda DISM och PowerShell#

Windows disk cleanup utility cleanmgr är inte tillgängligt i Windows Server 2012 om Desktop Experience-funktionen inte är installerad. Detta gör rengöring av använt diskutrymme lite svårare. Du kan använda din cmd.exe eller PowerShell kommandoraden, och använda Deployment Image Service and Management (DISM) för att rensa upp Windows Component Store (WinSxS) i Windows Server 2012 och uppåt.

WinSXS-mappen finns till exempel i Windows-mappen C:\Windows\WinSxS. Det är platsen för Windows Component Store-filer.

Windows Component Store innehåller alla filer som krävs för en Windows-installation. Och eventuella uppdateringar av dessa filer hålls också i komponentbutiken när uppdateringarna installeras (källa: KB 2795190 – och läs hantera Komponentbutiken). WinSxS-mappen blir stor …

Låt oss städa upp WinSxS!

återfå använt diskutrymme med Deployment Image Service and Management (DISM)#

Saneringsritualer efter paraden
Saneringsritualer efter paraden. Bild via Flickr av Pabak Sarkar

Dism disk cleanup: Deployment Image Service and Management (DISM) är ett kommandoradsverktyg som låter dig installera, avinstallera, konfigurera och uppdatera Windows-funktioner, paket, drivrutiner och internationella inställningar. Parametern/Cleanup-Imagedism.exe ger avancerade användare fler alternativ för att ytterligare minska storleken på WinSXS-mappen.

Dism.exe /Online /Cleanup-Image har några extra parametrar (eller växlar):

  • /AnalyzeComponentStore
  • /StartComponentCleanup
  • /ResetBase med /StartComponentCleanup
  • /SPSuperseded

i hela denna artikel antar jag att du läser hjälpalternativ, lägg bara till /?, som: dism.exe /Online /Cleanup-Image /?.

Om du gillade det här kan du också njuta av följande inlägg som sammanfattar 5 Extra sätt att städa upp diskutrymme i Windows Server!

analysera WinSXS-mappen (Komponentbutik) med /AnalyzeComponentStore#

först kan du använda parametern /AnalyzeComponentStore. Detta analyserar storleken på Komponentbutiken i Windows. Alternativet AnalyzeComponentStore är tillgängligt i Windows 8.1 Windows Server 2012 R2, och det meddelar dig om en rengöring av Komponentbutiker rekommenderas eller inte.

dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
Code language: PowerShell (powershell)
dism.exe /online /Cleanup-Image /AnalyzeComponentStore
dism.exe /online /Cleanup-Image /AnalyzeComponentStore

In the above image, AnalyzeComponentStore recommends a Component Store Cleanup. Let’s do so.

/StartComponentCleanup parameter#

Dism.exe removes superseded and unused system files from a system with the /StartComponentCleanup parameter.

dism.exe /Online /Cleanup-Image /StartComponentCleanup
Code language: PowerShell (powershell)
dism.exe /online /Cleanup-Image /StartComponentCleanup
dism.exe / online / Cleanup-Image/StartComponentCleanup

det finns också en registrerad schemalagd uppgift som heter StartComponentCleanup. Du kan starta den här uppgiften från kommandoraden:

schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"
Code language: PowerShell (powershell)

/StartComponentCleanup parametern stöds på Windows 8, Windows Server 2012 och uppåt.

använda parametern / StartComponentCleanup för Dism.exe på Windows 10 ger dig liknande resultat som att köra StartComponentCleanup-uppgiften i Task Scheduler, förutom tidigare versioner av uppdaterade komponenter kommer omedelbart att raderas (utan en 30-dagars grace period) och du kommer inte att ha en 1-timmars tidsbegränsning.

skriv följande från en upphöjd kommandotolk:Kopiera

Dism.exe /online /Cleanup-Image /StartComponentCleanup
Code language: PowerShell (powershell)

/ResetBase-omkopplare med /StartComponentCleanup-parameter#

använda /ResetBase – omkopplare med /StartComponentCleanup – parametern för dism.exe, alla ersatta versioner av varje komponent i komponentbutiken tas bort.

dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
Code language: PowerShell (powershell)
dism.exe /Online /sanering-bild/StartComponentCleanup / ResetBase
dism.exe / online / Cleanup-Image / StartComponentCleanup/ResetBase

alla befintliga servicepaket och uppdateringar kan inte avinstalleras efter det här kommandot är klart. Detta blockerar inte avinstallationen av framtida servicepaket eller uppdateringar.

parametern/ResetBase stöds på Windows 8.1 och Windows Server 2012 R2.

/spsuperseded parameter#

parametern/SPSuperseded tar bort eventuella reservkomponenter som behövs för avinstallation av ett Service pack. Service pack kan inte avinstalleras efter det här kommandot är klart.

dism.exe /Online /Cleanup-Image /SPSuperseded
Code language: PowerShell (powershell)

Service Pack kan inte avinstalleras efter det här kommandot är klart.

parametern/SPSuperseded stöds på Windows 7 eller Windows Server 2008 R2 Service Pack 1, 2012, 2012 R2.

/AnalyzeComponentStore alternativet är tillgängligt i Windows 8.1 och Windows Server 2012 R2. Använd detta för att analysera storleken på Komponentbutiken (WinSXS-mappen) i Windows.

Diskrensningsverktyg är tillgängligt på Windows Server 2012 men inte Windows Server 2012 R2#

som sagt i början av den här artikeln är Diskrensningsverktyget tillgängligt i Windows Server 2012, om du installerar Desktop Experience-funktionen.

i vissa versioner av Windows Server kan du helt enkelt kopiera cleanmgr.exe och cleanmgr.exe.mui till C:\Windows\system32 och C:\Windows\system32\en-Us från en gammal Windows 2008 R2-server, om du inte har vill inte installera funktionen desktop experience.

följande steg för att installera (kopiera) cleanmgr kanske inte fungerar på alla versioner av Windows Server. Prova själv.

Diskrensningsguiden addon på Windows Server 2008 R2
Microsoft KB2852386 lägger till ett Diskrensningsalternativ på Windows Server 2008 R2, liknande Windows 7-uppdateringen. Jag har testat detta på Windows Server 2012. Det kanske inte städar upp allt, men åtminstone mycket.

Så här gör du cleanmgr.exe tillgänglig på Windows Server 2012-standarden (Windows version 6.2.9200), utan att installera funktionen Desktop Experience:

Microsoft Windows (c) 2012 Microsoft Corporation. All rights reserved.PS C:\Users\jan> $osversion = ::OSVersion.VersionPS C:\Users\jan> write-host $osversion6.2.9200.0C:\Windows\System32>cd ..C:\Windows>copy WinSxS\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.2.9200.16384_en-us_b6a01752226afbb3\cleanmgr.exe.mui \Windows\system32\en-US 1 file(s) copied.C:\Windows>copy WinSxS\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.2.9200.16384_none_c60dddc5e750072a\cleanmgr.exe \Windows\system32 1 file(s) copied.C:\Windows>system32\cleanmgr.exeC:\Windows>
Code language: PowerShell (powershell)

tyvärr fungerar det inte längre på Windows Server 2012 R2 (6.3.9600), förmodligen på grund av KB2821895. Som Aaron påpekade i kommentarerna fungerar ovanstående lösning för att kopiera över filerna cleanmgr.exe och cleanmgr.exe.mui inte alltid bra. Därför tog jag bort denna information för Windows Server 2012 R2.

lyckligtvis är Diskrensningsfunktionen tillbaka i Windows Server 2016 (åtminstone TP5).

Diskrensning i Windows Server 2016 TP5
Diskrensning i Windows Server 2016 TP5

Efter rengöring av disken, en server omstart krävs. Glöm inte att starta om datorn – eller servern – efteråt! Den faktiska rengöringen av WinSxS-katalogen sker under nästa omstart.

fel 0x800f0906 med DISM / Online / Cleanup-Image, PowerShell Install-WindowsFeature och sfc / scannow#

vissa rapporter finns tillgängliga som förklarar Microsoft säkerhetsbulletin Ms14-046 bröt DISM / Online / Cleanup-Image/RestoreHealth, PowerShell Install-WindowsFeature med -Source parameter och SFC /scannow. Ja, det bröt mycket …

en uppdatering görs tillgänglig av Microsoft: Kb3005628

uppdatering för.NET Framework 3.5 på Windows 8, Windows 8.1, Windows Server 2012 och Windows Server 2012 R2. Den här uppdateringen löser ett problem som förhindrar att den valfria Microsoft. NET Framework 3.5-funktionen aktiveras när du har installerat säkerhetsuppdatering 2966827 eller 2966828 (beskrivs i Microsoft Security Bulletin MS14-046) för Microsoft.NET Framework 3.5.

flytta Windows Server SoftwareDistribution folder#

med tiden kan din Windows Update SoftwareDistribution mapp i c:\Windows\SoftwareDistribution bli ganska stor, till exempel när flera uppdateringar inte installerades framgångsrikt.

Windows Update-filer laddas ner till den här mappen och tas bort efter en lyckad installation. När du befinner dig i en situation där din C: – partitionen är ganska liten och SoftwareDistribution-mappen äter upp för mycket diskutrymme, följ dessa steg för att flytta mappen SoftwareDistribution till en annan plats.

allt i en cmd.exe skal (Start > kör >cmd och tryck på enter). I det här exemplet är den nya platsen D:\Windows-SoftwareDistribution.

  1. stoppa Windows Update-tjänsten: net stop wuauserv
  2. Byt namn på mappen c:\Windows\SoftwareDistribution till c:\Windows\SoftwareDistribution.oldrename c:\windows\SoftwareDistribution SoftwareDistribution.old
  3. skapa en länk använda Windows Sysinternals Junction, eller Windows mklink
    • skapa den nya katalogen:
      mkdir D:\Windows-SoftwareDistribution
    • skapa korsningen:
      c:\>junction C:\Windows\SoftwareDistribution "D:\Windows-SoftwareDistribution", eller:
      c:\>mklink /J C:\Windows\SoftwareDistribution "D:\Windows-SoftwareDistribution"
  4. starta om Windows Update-tjänsten: net start wuauserv

När, efter ett tag, allt verkar köra och uppdatera bra, ta bort din SoftwareDistribution.gammal mapp.

flytta Användardokumentmapp#

ett annat sätt för dig att få lite extra ledigt utrymme är att flytta mappen användardokument (och andra, som nedladdningar), till exempel från C:\Users\$USER$\Documents till D:\User\$USER$\Documents (ersätt $USER$ med användarnamnet vars dokumentmapp du vill flytta). Här är stegen för dig att följa (skärmdumpar tagna från Windows Server 2016 TP5):

  1. öppna Utforskaren och högerklicka på mappen Dokument och sedan Egenskaper
  2. Välj plats
  3. ändra platsen där filer lagras
  4. när destinationen inte finns, frågar Windows att skapa mappen för dig
  5. efter slutförandet flyttas filerna till sin nya plats.
flytta en Windows Användardokumentmapp, steg 01
flytta en Windows Användardokumentmapp, steg 01
flytta en Windows användardokumentmapp, steg 02
flytta en Windows användardokumentmapp, steg 02
flytta en Windows användardokumentmapp, steg 03
flytta en Windows användardokumentmapp, steg 03

slutsats#

Ja, Windows-komponentbutiken (WinSXS-mappen) kan bli stor, mycket stor. Men lyckligtvis ger Microsoft oss verktygen för att övervaka, hantera och städa upp WinSXS-mappen för att återfå det använda diskutrymmet.

Om du är bekväm med att installera Desktop Experience Windows-funktionen på ditt system kan du ha Diskrensningsverktyget på ditt system. Annars kan du använda kommandot DISM (Deployment Image Service and Management) för olika rengöringsuppgifter.

för att få lite extra ledigt utrymme kan du också flytta mappen Windows SoftwareDistribution till en annan partition.