Jak podejrzeć włączone składniki Windows?

Jak podejrzeć włączone składniki Windows?

Autor: Krzysztof Kapustka

Opublikowano: 6/11/2015, 12:00 AM

Liczba odsłon: 3749

Podobnie jak ma to miejsce na systemach serwerowych, na których możemy sprawdzić bieżący stan i zainstalować z poziomu powłoki Windows PowerShell wszystkie role serwera oraz ich usługi i funkcje, również wydania klienckie Windows oferują nam wygodne polecenia powłoki PowerShell umożliwiające szybkie sprawdzenie i włączenie poszczególnych składników systemu. O ile w przypadku Windows Servera skorzystalibyśmy z polecenia Get-WindowsFeature, o tyle systemy klienckie pozbawione są tej komendy i oferują nam polecenie zastępcze o nazwie Get-WindowsOptionalFeature.

Zobaczmy zatem, jak w prosty sposób dowiedzieć się, które ze składników systemu Windows są aktualnie włączone, rozpatrując przy tym różne metody formatowania wyników.

Aby wylistować wszystkie dostępne w systemie składniki korzystamy z tego polecenia z jednym obowiązkowym parametrem, wskazującym czy chcemy odnieść się do działającego lokalnie systemu (parametr -Online), czy też do zachowanego obrazu WIM innej instancji Windows (parametr -Path):

PS C:\Windows\system32> Get-WindowsOptionalFeature -Online


Feature Name : Microsoft-Hyper-V-All
State        : Enabled

Feature Name : Microsoft-Hyper-V-Tools-All
State        : Enabled

Feature Name : Microsoft-Hyper-V
State        : Enabled

Feature Name : Microsoft-Hyper-V-Management-Clients
State        : Enabled

Feature Name : Microsoft-Hyper-V-Management-PowerShell
State        : Enabled

Feature Name : Printing-Foundation-Features
State        : Enabled

Feature Name : Printing-Foundation-LPRPortMonitor
State        : Disabled

Feature Name : Printing-Foundation-LPDPrintService
State        : Disabled

Feature Name : Printing-Foundation-InternetPrinting-Client
State        : Enabled

Feature Name : FaxServicesClientPackage
State        : Enabled

Feature Name : ScanManagementConsole
State        : Disabled

Feature Name : LegacyComponents
State        : Enabled

Feature Name : DirectPlay
State        : Enabled

Feature Name : SimpleTCP
State        : Disabled

...

Po wykonaniu powyższego polecenia cmdlet otrzymamy pełny wykaz poszczególnych składników systemu Windows wraz z ich bieżącym stanem - włączony lub wyłączony.

Jeśli interesują nas jedynie te składniki, które zostały włączone, możemy otrzymane wyniki przepuścić przez dodatkowy filtr, jak w przykładzie poniżej:

PS C:\Windows\system32> Get-WindowsOptionalFeature -Online | Where-Object State -eq "Enabled"


Feature Name : Microsoft-Hyper-V-All
State        : Enabled

Feature Name : Microsoft-Hyper-V-Tools-All
State        : Enabled

Feature Name : Microsoft-Hyper-V
State        : Enabled

Feature Name : Microsoft-Hyper-V-Management-Clients
State        : Enabled

Feature Name : Microsoft-Hyper-V-Management-PowerShell
State        : Enabled

Feature Name : Printing-Foundation-Features
State        : Enabled

Feature Name : Printing-Foundation-InternetPrinting-Client
State        : Enabled

Feature Name : FaxServicesClientPackage
State        : Enabled

Feature Name : LegacyComponents
State        : Enabled

Feature Name : DirectPlay
State        : Enabled

...

Z kolei korzystając ze stanów "Disabled" lub "EnablePending" w podobny sposób możemy wylistować sobie składniki, które są aktualnie wyłączone, lub po włączeniu których wymagany jest restart systemu (przykładem takiego składnika może być chociażby kliencka funkcja Hyper-V, której składnik Microsoft-Hyper-V do momentu ponownego uruchomienia komputera będzie miał po jej włączeniu status EnablePending).

Jak nie trudno zauważyć, tworzona w ten sposób lista jest dosyć długa, dlatego warto sobie otrzymane wyniki przeformatować do postaci bardziej czytelnej tabeli, jak to zrobiliśmy w poniższym przykładzie:

PS C:\Windows\system32> Get-WindowsOptionalFeature -Online | Where-Object State -eq "Enabled" 
                        | Format-Table

FeatureName                                                                      State
-----------                                                                      -----
Microsoft-Hyper-V-All                                                            Enabled
Microsoft-Hyper-V-Tools-All                                                      Enabled
Microsoft-Hyper-V                                                                Enabled
Microsoft-Hyper-V-Management-Clients                                             Enabled
Microsoft-Hyper-V-Management-PowerShell                                          Enabled
Printing-Foundation-Features                                                     Enabled
Printing-Foundation-InternetPrinting-Client                                      Enabled
FaxServicesClientPackage                                                         Enabled
LegacyComponents                                                                 Enabled
DirectPlay                                                                       Enabled
Windows-Defender-Default-Definitions                                             Enabled
MicrosoftWindowsPowerShellV2Root                                                 Enabled
MicrosoftWindowsPowerShellV2                                                     Enabled
Internet-Explorer-Optional-amd64                                                 Enabled
NetFx3                                                                           Enabled
WCF-Services45                                                                   Enabled
WCF-TCP-PortSharing45                                                            Enabled
NetFx4-AdvSrvs                                                                   Enabled
MediaPlayback                                                                    Enabled
WindowsMediaPlayer                                                               Enabled
Microsoft-Windows-MobilePC-LocationProvider-INF                                  Enabled
Printing-XPSServices-Features                                                    Enabled
MSRDC-Infrastructure                                                             Enabled
SearchEngine-Client-Package                                                      Enabled
Xps-Foundation-Xps-Viewer                                                        Enabled
WorkFolders-Client                                                               Enabled
SMB1Protocol                                                                     Enabled

Idąc dalej tym tropem, skoro jawnie żądamy wyświetlenia tylko i wyłącznie składników włączonych, możemy śmiało ograniczyć prezentowane wyniki jedynie do nazw rozważanych pakietów, pomijając przy tym wszelkie dodatkowe informacje:

PS C:\Windows\system32> Get-WindowsOptionalFeature -Online | Where-Object State -eq "Enabled" 
                        | Format-Wide


Microsoft-Hyper-V-All                                     Microsoft-Hyper-V-Tools-All
Microsoft-Hyper-V                                         Microsoft-Hyper-V-Management-Clients
Microsoft-Hyper-V-Management-PowerShell                   Printing-Foundation-Features
Printing-Foundation-InternetPrinting-Client               FaxServicesClientPackage
LegacyComponents                                          DirectPlay
Windows-Defender-Default-Definitions                      MicrosoftWindowsPowerShellV2Root
MicrosoftWindowsPowerShellV2                              Internet-Explorer-Optional-amd64
NetFx3                                                    WCF-Services45
WCF-TCP-PortSharing45                                     NetFx4-AdvSrvs
MediaPlayback                                             WindowsMediaPlayer
Microsoft-Windows-MobilePC-LocationProvider-INF           Printing-XPSServices-Features
MSRDC-Infrastructure                                      SearchEngine-Client-Package
Xps-Foundation-Xps-Viewer                                 WorkFolders-Client
SMB1Protocol

A co jeśli interesuje nas stan jednego konkretnego składnika? Innymi słowy, jak szybko sprawdzić czy przykładowo funkcja Hyper-V została w systemie włączona? Aby to zrobić, wystarczy posłużyć się dodatkowym parametrem polecenia Get-WindowsOptionalFeature o nazwie -FeatureName, dla którego podajemy interesujący na składnik systemu Windows:

PS C:\Windows\system32> Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V


Feature Name      : Microsoft-Hyper-V
Display Name      : Platforma Hyper-V
Description       : Udostępnia usługi umożliwiające tworzenie maszyn wirtualnych i ich zasobów
                    oraz zarządzanie nimi.
Restart Required  : Possible
State             : Enabled
Custom Properties :