Jak włączyć lub wyłączyć funkcje systemu Windows za pomocą programu PowerShell lub wiersza polecenia w systemie Windows 7?

11

Skryskowałem przeciwko sysocmgrw Windows XP, servermanagercmdna serwerze 2008, a teraz stwierdzam, że muszę użyć nowego modułu PowerShell, servermanageraby zainstalować funkcje na Server 2008 R2, więc spodziewam się, że użyję tego samego modułu w Windows 7, ale to nie jest tam.

Jak zainstalować funkcje systemu Windows za pomocą wiersza polecenia lub programu PowerShell w systemie Windows 7?

Chris Magnuson
źródło
Czas w końcu zapewnił sposób korzystania z PowerShell, moja odpowiedź jest poniżej.
MDMoore313,

Odpowiedzi:

6

Aby uzyskać prawdziwy efekt PowerShell, musisz pobrać Windows AIK dla 8.0 i użyć dism module. Znaleziono w

C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Deployment Tools\<arch>\DISM

i możesz po prostu wskazać PowerShell do tego folderu za pomocą

Import-Module C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Deployment Tools\<arch>\DISM

Upewnij się, że zamieniłeś <arch> na architekturę maszyny, na której działa PowerShell. Ten folder DISM może nawet zostać skopiowany i rozpowszechniony w razie potrzeby na komputerach (mówiąc o funkcjonalności, nie wiem, czy redystrybucja jest faktycznie dozwolona przez Microsoft).

Konkretne polecenie wyrzucenia opcjonalnej funkcji systemu Windows to

Get-WindowsOptionalFeature -Online | where FeatureName -eq mediacenter

To zwróci Microsoft.DISM.Commands.BasicFeatureObject, jak widać tutaj . Stamtąd możesz ustawić statewłaściwość na wyłączoną, np

$(Get-WindowsOptionalFeature -Online | where FeatureName -eq mediacenter).state = 
    [Microsoft.DISM.Commands.FeatureState]::Disabled

i pa pa media center. Oczywiście należy to uruchomić z podwyższonego poziomu, a -Onlineprzełącznik odnosi się do bieżącego systemu Windows, a nie do obrazu offline.

Ponadto, moduł ten wymaga WMF 3,0 i że wymaga .NET 4.0, po prostu FYI.

MDMoore313
źródło
1
Byłem w stanie uruchomić Enable-WindowsOptionalFeature -FeatureName NetFx3 -Onlinena komputerze z systemem Windows 8.1 bez instalacji AIK. Miałem jednak zainstalowany podgląd WMF5; może to zapewnia? Moduł jest ładowany zC:\windows\system32\windowspowershell\v1.0\Modules\Dism\Dism.psm1
bshacklett
4

Próba uruchomienia PowerShell z Windows 7/8 da ci tylko to:

Get-WindowsFeature: Obiekt docelowy określonego polecenia cmdlet nie może być systemem operacyjnym opartym na kliencie Windows.

dism to jedyny sposób, który według mnie działa.

n1nj4
źródło
2

Dodaj ręcznie funkcję ServerManager. Następnie możesz dodać moduł servermanager:

import-module servermanager

get-windowsfeature


źródło
1
Jak osobno dodać funkcję ServerManager?
fschwietle
2
To działałoby dla Windows 2008 R2 i nowszych, ale nie dla Windows 7.
Trondh
2
ocsetup.exe /?

Oprócz odrzucenia wydaje się, że możesz także użyć ocsetup, który jest domyślnie instalowany w systemie Windows Vista i Windows Server 2008. Jeśli chciałbyś napisać skrypt, który działa na wszystkich trzech z nich, prawdopodobnie byłby to odpowiedni sposób.

Chris Magnuson
źródło
-1

W części Powershell otwórz monit „Moduły Powershell systemu Windows” i naciśnij klawisz Enter

PS1> Add-WindowsFeature [nazwa funkcji]

na przykład

Add-WindowsFeature SMTP-Server

Get-WindowsFeature pokazuje nazwy wszystkich dostępnych funkcji

użytkownik25572
źródło
1
Jestem prawie pewien, że działa to tylko w systemie Windows Server 2008 R2.
Jeffery Hicks,
Jeffery ma rację, to domyślnie nie działa w Windows 7. Jeśli znasz sposób na jego uruchomienie, chciałbym wiedzieć.
Chris Magnuson,
-1

Możesz użyć sesji zdalnej z Windows 7 do Windows Server 2008 R2 i uruchomić Add-WindowsFeature. Nie byłem w stanie go znaleźć na Win7 nawet z zainstalowanym RSAT.

Jeffery Hicks
źródło
1
Czy to nie dodałoby tej funkcji do okna Windows Server 2008 R2, a nie do lokalnej instancji Windows 7? Jeśli nie, proszę wyjaśnić.
Chris Magnuson,