Bezpieczne czyszczenie folderu WinSXS w systemie Windows Server 2012

Zanim zaczniemy mówić o bezpiecznym sposobie czyszczenia folderu WinSxS w systemie Windows Server 2012, spróbujmy zrozumieć, jaki to jest folder, co jest w nim przechowywane i dlaczego zwiększa się z czasem.

Jeśli pamiętasz, podczas instalowania dodatkowych składników w systemie Windows Server 2003 kreator instalacji wymagał włożenia dysku instalacyjnego do dysku CD-ROM lub określenia ścieżki do katalogu z dystrybucją systemu Windows Server 2003. W systemie Windows Server 2008 Microsoft postanowił zmienić podejście do instalowania dodatkowych ról i funkcji systemu Windows. Teraz wszystkie pliki binarne potrzebne do wdrożenia dowolnej roli są przechowywane w katalogu C: \ Windows \ WinSxS (WinSxS - Windows obok siebie). Oznacza to, że podczas instalowania dowolnej dodatkowej roli nie ma już potrzeby wyszukiwania i podłączania dysku dystrybucyjnego do serwera. Oczywiście przy takim podejściu system operacyjny wymaga znacznie więcej miejsca na dysku. Musisz zrozumieć, że katalog WinSXS zawiera kluczowe elementy systemu, więc nie możesz niczego z niego usunąć ręcznie. Dlaczego tak Rozmiar folderu WinSXS stale rośnie? Odpowiedź jest prosta - aktualizacje. Podczas instalowania aktualizacji dla różnych komponentów stare i nowe wersje zaktualizowanego komponentu pozostają w katalogu WinSXS. Dzięki tej architekturze możemy bezpiecznie usunąć każdą zainstalowaną aktualizację w dowolnym momencie i przywrócić starą wersję komponentu.

Treść

  • Funkcje na żądanie w systemie Windows Server 2012
  • Zainstaluj zdalne role i funkcje w systemie Windows Server 2012

Wskazówka. Użytkownicy systemu Windows 7 z dodatkiem SP 1 mogą zmniejszyć rozmiar folderu WinSxS, usuwając nieużywane aktualizacje.

Ale co, jeśli system jest uruchomiony, nie ma planów wdrożenia dodatkowych ról i nie ma wystarczającej ilości miejsca na dysku? W końcu nielogiczne jest to, że na dysku systemowym kilka gigabajtów jest zajmowanych przez dystrybucje, które nigdy nie będą potrzebne! Niestety w Windows Server 2008 usunięcie tych plików bez szkody dla systemu jest dość trudne. Jednak w nowym systemie operacyjnym serwera - Windows Server 2012, Microsft postanowił naprawić tę wadę i wprowadził nową funkcję o nazwie Funkcje na żądanie.

Funkcje na żądanie w systemie Windows Server 2012

Funkcja Funkcje na żądanie (funkcje na żądanie) pozwala zmniejszyć rozmiar zajmowany przez system na dysku, zapewniając możliwość usuwania plików binarnych nieużywanych ról z folderu WinSxS. W przypadku, gdy w przyszłości konieczne będzie zwrócenie poprzednio usuniętej roli, wówczas wszystkie pliki niezbędne do działania ról można wyodrębnić z obrazu dystrybucyjnego systemu Windows Server 2012, usługi Windows Update lub zasobu sieciowego z oryginalną zawartością WinSxS.

Za pomocą następującego polecenia programu PowerShell można uzyskać informacje o wszystkich rolach systemu:

Get-WindowsFeature

Jak widać, w kolumnie Zainstaluj stan Wyświetlany jest status każdej roli. Możliwe statusy:

  • Zainstalowano: rola lub funkcja jest zainstalowana i jest obecnie używana przez system
  • Dostępne: rola nie jest zainstalowana na serwerze, jednak dysk zawiera wszystkie niezbędne pliki, które pozwalają na zainstalowanie / aktywację tej roli w dowolnym momencie.
  • Usunięto: - rola lub funkcja na serwerze nie jest zainstalowana, pliki niezbędne do jej instalacji są usuwane z dysku

W związku z tym podczas instalowania dowolnej roli za pomocą interfejsu GUI lub programu PowerShell (komenda Install-WindowsFeature) jej status od Dostępne zmiany do Zainstalowane oraz podczas deinstalacji (komenda Uninstall-WindowsFeature) i odwrotnie.

Możesz całkowicie usunąć rolę z dysku (z folderu WinSxS) tylko za pomocą Powershell. Aby to zrobić, użyj specjalnego argumentu polecenia Uninstall-WindowsFeatur  - Usuń.

Na przykład, aby usunąć pliki binarne dla roli serwera DHCP, uruchom polecenie:

Uninstall-WindowsFeature -Name DHCP -Remove

Aby usunąć pliki katalogu usług domenowych w usłudze Active Directory:

Uninstall-WindowsFeature AD-Domain-Services -Remove

Korzystając z potoków Powershell, możesz napisać bardziej złożone polecenie, które usuwa pliki instalacyjne ze wszystkich nieużywanych ról i funkcji systemu Windows Server z dysku:

Get-WindowsFeature | Where-Object $ _. InstallState -Eq „Dostępne” | Uninstall-WindowsFeature -Remove

W naszym przykładzie, pod warunkiem, że zainstalowano tylko rolę serwera plików, rozmiar folderu WinSxS zmniejszył się z 8 do 5,2 GB. Nieźle, prawda? Ponadto, aby wyczyścić folder WinSxS, potrzebowaliśmy tylko jednego polecenia.

Zainstaluj zdalne role i funkcje w systemie Windows Server 2012

Rozważ inny scenariusz, który zakłada, że ​​musisz zainstalować określoną rolę systemu Windows Server 2012, której dystrybucja została usunięta z katalogu WinSxS. Istnieje kilka sposobów przywrócenia roli: za pomocą Menedżera serwera GUI lub Powershell.

Przed rozpoczęciem przywracania plików ról należy określić indeks zainstalowanej wersji systemu Windows Server 2012. Będziemy potrzebować dysku z zestawem dystrybucyjnym systemu Windows Server 2012 (a raczej pliku obrazu install.wim znajdującego się w katalogu źródeł). Uruchom następujące polecenie PowerShell:

Get-windowsimage -imagepath \ sources \ install.wim

Znajdź wersję systemu Windows Server zainstalowaną na komputerze i zapamiętaj jej indeks (wartość w linii indeksu). W naszym przykładzie jest to Windows Server 2012 Datacenter z indeksem 4. (Sprawdziliśmy już funkcje pracy z różnymi edycjami systemu Windows 2012 w jednej dystrybucji w artykule „Integracja sterowników z dyskiem instalacyjnym systemu Windows Server 2012”).

Tę samą operację można wykonać za pomocą narzędzia Dism:

dism.exe / get-imageinfo /imagefile:d:\sources\install.wim

Zainstaluj rolę zdalną za pomocą Menedżera serwera

Otwórz konsolę Menedżera serwera i uruchom Kreatora dodawania ról i funkcji. Wybierz rolę lub funkcję, którą chcesz zainstalować. Kreator ostrzeże, że brakuje niektórych plików niezbędnych do zainstalowania tej roli i musisz określić alternatywną ścieżkę do lokalizacji dystrybucji. Kliknij Podaj alternatywną ścieżkę źródłową.

W polu Ścieżka podaj pełną ścieżkę do pliku intall.wim i indeks zainstalowanej wersji systemu operacyjnego w tym formacie:

WIM: D: \ Sources \ Install.wim: 4

W razie potrzeby w tym wierszu możesz określić ścieżkę sieciową do katalogu za pomocą pliku WIM lub ścieżkę sieciową do katalogu WinSxS. Ponadto ścieżkę do tego katalogu można określić natychmiast dla grupy serwerów korzystających z zasad grupy ( Konfiguracja komputera -> Szablony administracyjne -> System -> Określ ustawienia opcjonalnej instalacji i naprawy komponentów) Ta ostatnia opcja jest wygodna w przypadku dużej liczby instalacji serwerów w systemie Windows Server 2012, ponieważ całkowity efekt czyszczenia folderu WinSxS może osiągnąć setki GB.

Po kliknięciu przycisku OK wszystkie pliki niezbędne do zainstalowanej roli zostaną skopiowane do katalogu WinSxS.

Odzyskiwanie usuniętej roli systemu Windows 2012 za pomocą programu Powershell

Możesz wykonać tę samą operację za pomocą jednego polecenia Powershell. Załóżmy, że musimy odzyskać usunięte pliki ról ADDS. Uruchom następujące polecenie:

Install-WindowsFeature AD-Domain-Services -Source WIM: WIM: D: \ Sources \ Install.wim: 4

Tak więc w tym artykule opracowaliśmy nową funkcję systemu Windows Server 2012 o nazwie Funkcje na żądanie, która umożliwia usuwanie binarnych dystrybucji nieużywanych ról serwera z katalogu WinSxS. W razie potrzeby usuniętą rolę można łatwo przywrócić: wystarczy tylko dystrybucja systemu Windows Server 2012.

W Windows 8 funkcja Feautere on Demand działa nieco inaczej, faktem jest, że cmdlet Powershell, którego używamy, jest po prostu nieobecny. Jego odpowiednikiem (niezbyt wygodnym) jest polecenie DISM z opcją / Disable-Feature. Alternatywnie możesz po prostu skompresować zawartość katalogu Winsxs. Szczegóły w artykule Jak zmniejszyć rozmiar folderu Winsxs w Windows 8