Aktualizowanie wersji programu PowerShell w systemie Windows

W tym artykule opisano sposób aktualizacjiWindows PowerShelldo najnowszej wersji 5.1 i jak zainstalować (upgrade)Rdzeń PowerShell7.3. Obecnie istnieją dwie gałęzie PowerShell:

  • KlasykWindows PowerShell(maksymalna wersja to 5.1, która nie jest już rozwijana.);
  • NowyRdzeń PowerShellplatformie (wersja 7.3 jest już dostępna).

Chociaż numeracja wersji programu PowerShell jest kontynuowana od wersji 5,1 (6,0, 6,1, 7,0, 7,1 itd.), są to dwie różne platformy. Dlatego aktualizowanie programu Windows PowerShell i programu PowerShell Core zostanie omówione osobno.

PowerShell Core 7.x to wersja najbardziej zgodna z klasycznym programem Windows PowerShell. Oznacza to, że możesz łatwo uruchamiać stare pliki skryptów i polecenia cmdlet PS1 w programie PowerShell Core.

Zawartość:

Aktualizacja do wersji Windows PowerShell 5.1

Windows PowerShell 5.1 jest już domyślnie instalowany we wszystkich wersjach, począwszy od Windows 10 i Windows Server 2016.

W przypadku wcześniejszych wersji (Windows 7/8.1 i Windows 2008 R2/2012) należy ręcznie dokonać aktualizacji do programu PowerShell 5.1. Na przykład w systemie Windows Server 2012 R2 (Windows 8.1) jest zainstalowany program PowerShell 4.0.

Spróbujmy zaktualizować wersję Windows PowerShell do wersji 5.1 w systemie Windows Server 2012 R2.

Najpierw sprawdź aktualną wersję PowerShell (zrzut ekranu pokazuje, że jest to PowerShell 4.0):

$PSVersionTable.PSVersion

Aby uaktualnić wersję programu PowerShell do wersji 5.1, zainstaluj plikStruktura zarządzania systemem Windows 5.1, co wymaga.NET Framework 4.5.2(lub później). Upewnij się, że zainstalowano platformę .NET 4.5.2 lub nowszą, używając tego polecenia:

(Get-ItemProperty ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv4Full’ -Name Release).Release

W moim przypadku wersja wydawnicza378675oznacza, że ​​zainstalowana jest wersja .NET Framework 4.5.1. Muszę więc pobrać i zainstalować najnowszą wersję .NET Framework 4.8 (tutaj link do instalatora offline:https://go.microsoft.com/fwlink/?linkid=2088631ndp48-x86-x64-allos-enu.exe).

Zainstaluj pakiet .NET 4.8 (konieczne będzie ponowne uruchomienie komputera):

Jeśli zainstalujesz program WMF 5.1 bez platformy .NET 4.5.2, niektóre funkcje programu PowerShell nie będą dostępne.

PobieraćWMF 5.1dla Windows Server 2012 R2 —Win8.1AndW2K12R2-KB3191564-x64.msu(https://go.microsoft.com/fwlink/?linkid=839516).

Zainstaluj Windows Management Framework 5.1 z pliku MSU.

Po ponownym uruchomieniu serwera otwórz konsolę powershell.exe i upewnij się, że wersja PowerShell została zaktualizowana do wersji 5.1.

Jeśli masz nieobsługiwany system Windows 7 lub Windows Server 2008 R2, możesz zaktualizować wersję PowerShell z 2.0 do 5.1 w ten sam sposób. Najpierw zainstaluj.NET Framework 4.5.2(lub nowszy).WMF 5.1(linki pobierania będą inne niż te dla systemu Windows Server 2012 R2).

Jak zainstalować lub zaktualizować PowerShell Core 7?

PowerShell Core jest wieloplatformowy i jest w fazie aktywnego rozwoju (w przeciwieństwie do Windows PowerShell 5.1). W rzeczywistości PowerShell Core to nowa platforma instalowana w systemie operacyjnym obok klasycznego Windows PowerShell. Oznacza to, że nie można uaktualnić programu PowerShell 5.1 do programu PowerShell Core 7.3. Program PowerShell 7.x jest instalowany na komputerze oddzielnie od programu Windows PowerShell 5.1 (obok siebie).

W tej chwili dostępne są programy PowerShell Core 6.x i 7.x. Zaleca się, aby zawsze instalować najnowszą wersję PowerShell (obecnie 7.3), chyba że potrzebujesz specjalnej zgodności ze starszymi skryptami.

Istnieje kilka sposobów uaktualnienia (zainstalowania) wersji PowerShell Core w systemach Windows 10 i 11:

  • Użyj instalatora PowerShell Core MSI, który można pobrać z GitHub;
  • Korzystanie z wbudowanego menedżera pakietów Windows 10/11 WinGet;
  • Korzystanie ze sklepu Microsoft.

Następnie, korzystając z przykładu aktualizacji PowerShell Core do wersji 7.3 w systemie Windows 10 22H2, przyjrzymy się wszystkim tym metodom.

Aktualizowanie rdzenia programu PowerShell przy użyciu instalacji MSI

Jeśli chcesz zainstalować PowerShell Core przy użyciu pakietu MSI, przejdź do strony projektuhttps://github.com/PowerShell/PowerShelli pobierz pakiet instalacyjny dla swojej wersji systemu operacyjnego. W chwili pisania tego tekstu najnowsza wersja programu PowerShell tov7.3.3, z dnia 24 lutego 2023 r. (np.PowerShell-7.3.3-win-x64.msiLubPowerShell-7.3.3-win-x86.msi). W środowisku produkcyjnym używaj tylko wersji stabilnych lub LTS.

Pobierz plik MSI i zainstaluj go.

Dostępne są następujące opcje instalacji:

  • Dodaj program PowerShell do zmiennej środowiskowej ścieżki
  • Zarejestruj manifest rejestrowania zdarzeń systemu Windows (dla zdarzeń programu PowerShell tworzony jest osobny dziennik Podglądu zdarzeń).%SystemRoot%System32WinevtLogsPowerShellCore%4Operational.evtx)
  • Włącz komunikację zdalną programu PowerShell (włącza i konfiguruje usługę WinRM dla komunikacji zdalnej programu PowerShell)
  • Dodaj menu kontekstowe „Otwórz tutaj” do Eksploratora
  • Dodaj menu kontekstowe „Uruchom z PowerShell 7” dla plików PowerShell

Następnie możesz włączyć automatyczne aktualizacje rdzenia PowerShell za pośrednictwem Windows Update/WSUS (patrz poniżej).

Aby zainstalować PowerShell Core z pakietu MSI przy użyciu SCCM/MDT/skryptów w trybie cichym, możesz użyć polecenia z następującymi parametrami:

Zobacz także:Jak sprawdzić wersję programu PowerShell w systemie Windows 11

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL
  • ENABLE_PSREMOTING
  • REJESTRACJA_MANIFESTU
  • ADD_PATH
  • WYŁĄCZ_TELEMETRIĘ
  • USE_MU – skorzystaj z witryny Microsoft Update, aby uzyskać aktualizacje PSCore
  • ENABLE_MU – pozwala na aktualizację rdzenia PowerShell za pośrednictwem usługi Windows Update

Na przykład polecenie instalacji cichej może wyglądać mniej więcej tak:

msiexec.exe /package PowerShell-7.3.3-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 ADD_PATH=1 ENABLE_MU=1 ADD_PATH=1

Możesz uaktualnić program PowerShell bezpośrednio z konsoli. Aby zainstalować lub uaktualnić do najnowszej wersji PowerShell Core, uruchom następujące polecenie:

iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"

To polecenie pobiera plik MSI programu PowerShell 7.3 z GitHub, a następnie rozpoczyna instalację za pomocą instalatora MSI.

Po zakończeniu instalacji zostanie wyświetlone okno programu PowerShell Core (pwsh.exe). Sprawdź wersję programu PowerShell, aby upewnić się, że została zaktualizowana do wersji PoSh 7.3.3.

Używanie Menedżera pakietów WinGet do instalowania lub aktualizowania rdzenia programu PowerShell

Jeśli masz zainstalowany menedżer pakietów WinGet, możesz zainstalować lub zaktualizować wersję programu PowerShell do najnowszej komendy:

winget install --id Microsoft.Powershell --source winget

Możesz też zainstalować określoną wersję programu PowerShell Core:

winget install --id=Microsoft.PowerShell -v "7.1.2" -e

Jeśli masz zainstalowany menedżer pakietów Chocolatey, użyj poleceń (dla wersji 5.1):

choco install powershell -y
choco upgrade powershell -y

lub dla PowerShell 7.x:
choco install pwsh -y
choco install pwsh -y

Zwróć uwagę na domyślne katalogi dla różnych wersji PowerShell:

  • Windows PowerShell 5.1:$env:WINDIRSystem32WindowsPowerShellv1.0
  • PowerShell Core 6.x:$env:ProgramFilesPowerShell6
  • PowerShell Core 7.x:$env:ProgramFilesPowerShell7

Jeśli na komputerze zainstalowano program PowerShell 6.x, plik$env:ProgramFilesPowerShell6katalog jest automatycznie usuwany po zainstalowaniu programu PowerShell 7.3.

Należy pamiętać, że nazwa pliku wykonywalnego programu PowerShell uległa zmianie. W PowerShell Core tak jestc:Program FilesPowerShell7pwsh.exe. Ma swoją ikonę w menu Start.

  • Aby uruchomić program Windows PowerShell oparty na platformie .NET Framework, plikpowershell.exepolecenie jest używane
  • Aby uruchomić program PowerShell Core oparty na platformie .NET Core, użyjpwsh.exe

Oznacza to, że na komputerze zainstalowano program Windows PowerShell 5.1 i PowerShell Core 7.3.

Aby znaleźć wersję i kompilację programu PowerShell zainstalowanego na Twoim urządzeniu, możesz sprawdzić wersję pliku pwsh.exe:

(Get-Command 'C:Program FilesPowerShell7pwsh.exe').Version

W ten sposób możesz sprawdzić wersję pliku na komputerze zdalnym:

Invoke-Command -Computername computer1 -Scriptblock {(Get-Command 'C:Program FilesPowerShell7pwsh.exe').Version}

Program Windows PowerShell zapewnia specjalny tryb zgodności wstecznej, który umożliwia uruchomienie starszej wersji programu PowerShell, nawet jeśli są zainstalowane nowsze wersje. Możesz użyć następującego polecenia, aby uruchomić określoną wersję programu PowerShell, przykładowo 4.0):

C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -Version 4

Zainstaluj program PowerShell Core w systemie Windows 10 i 11 za pośrednictwem sklepu Microsoft Store

W systemach Windows 10 i 11 możesz zainstalować lub zaktualizować program PowerShell za pośrednictwem sklepu Microsoft Store. Możesz ręcznie znaleźć aplikację PowerShell w sklepie lub użyć jejpołączyć.

Możesz także użyć WinGet, aby zainstalować wersję PowerShell w sklepie:

winget search powershell --source msstore
winget install --id 9MZ1SNWT0N5D

Zaletą instalowania programu PowerShell Core ze sklepu Microsoft Store jest to, że sklep App Store automatycznie sprawdza zainstalowaną wersję programu PowerShell i automatycznie instaluje aktualizacje, gdy tylko staną się dostępne.

Aby sprawdzić, czy zainstalowałeś wersję PowerShell Core w sklepie, użyj polecenia:

Get-AppPackage Microsoft.PowerShell

W tym przykładzie zainstalowano pakiet Microsoft.PowerShell_7.3.3.0_x64__8wekyb3d8bbwe.

Istnieją jednak również wady związane z faktem, że taka instancja programu PowerShell będzie działać w środowisku piaskownicy.

Możesz pobrać plik aplikacji APPX lub MSIX i zainstalować go za pomocąAdd-AppxPackagePolecenie cmdlet programu PowerShell.

Instalowanie/aktualizowanie rdzenia programu PowerShell na komputerach zdalnych

Rozważ dwa scenariusze instalowania lub aktualizowania programu PowerShell Core na wielu komputerach zdalnych.

Wdrażanie programu PowerShell Core z zasadami grupy

Za pomocą zasad grupy można centralnie wdrażać i aktualizować rdzeń programu PowerShell w domenie Active Directory. Użyj funkcji obiektu GPO, aby wdrożyć pakiety MSI na komputerach w domenie.

  1. Pobierz plik instalacyjny PowerShell MSI i skopiuj go do katalogu SYSVOL na kontrolerze domeny;
  2. Otwórz konsolę zarządzania zasadami grupy domeny (gpmc.msc), utwórz nowy obiekt GPO i połącz go z jednostką organizacyjną zawierającą komputery i serwery;
  3. Przejdź do sekcji GPOKonfiguracja komputera->Ustawienia oprogramowania, utwórz nowy pakiet i podaj ścieżkę do pliku instalacyjnego MSI PowerShell w folderze SYSVOL w domenie (użyj ścieżki UNC);Aby dokładniej kierować politykę na urządzenia domeny, możesz użyć filtrów GPO WMI.
  4. Aby zaktualizować ustawienia zasad grupy dotyczące instalacji oprogramowania, należy ponownie uruchomić komputery. Nowa wersja programu PowerShell zostanie zainstalowana na wszystkich komputerach podczas uruchamiania.

Jak zaktualizować PowerShell na komputerze zdalnym z wiersza poleceń?

Za pomocą wiersza poleceń można zaktualizować program PowerShell na komputerze zdalnym.

  • Pierwsza metoda wykorzystuje instalator MSI w udostępnionym folderze sieciowym do zdalnej aktualizacji programu PowerShell na komputerze:Invoke-Command -ComputerName mun-srv01 -ScriptBlock {Start-Process msiexec.exe -ArgumentList '/package "\mun-fs01installPowerShell-7.3.3-win-x64.msi" /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1' -Wait}
  • Poniższy skrypt wybiera wszystkie włączone komputery z systemem Windows 10 z domeny Active Directory i rozpoczyna pobieranie oraz instalację programu PowerShell Core na każdym z nich:
    $ADComputers = Get-ADComputer -Filter 'operatingsystem -like "*Windows 10*" -and enabled -eq "true"'
    ForEach ($computer in $ADcomputers) {
    Invoke-Command -ComputerName $computer {iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"}
    }
    Aby móc korzystać z polecenia cmdlet GetADComputer, na komputerze musi być zainstalowany moduł Active Directory PowerShell.

Zachowaj ostrożność podczas korzystania z poleceń komunikacji zdalnej programu PowerShell podczas łączenia się z komputerami zdalnymi (z rozszerzeniemEnter-PSSessionIInvoke-Commandpolecenia cmdlet). Jeśli chcesz połączyć się z punktem końcowym PowerShell 7, musisz użyć polecenia:

Enter-PSSession -ComputerName dc01 -ConfigurationName "powershell.7"

W przeciwnym razie nawiążesz połączenie z punktem końcowym programu PowerShell Remoting 5.1.

Aktualizowanie programu PowerShell za pośrednictwem usługi Windows Update lub WSUS

Przed wersją PowerShell Core 7,2 plik pwsh.exe nie był automatycznie aktualizowany. Po wydaniu nowej wersji w konsoli pojawiło się jedynie powiadomienie:

A new PowerShell stable release is available. Upgrade now, or check out the release page at: https://aka.ms/PowerShell-Release?tag=v7.1.3

Począwszy od wersji 7.2, program PowerShell Core obsługuje automatyczne aktualizacje za pośrednictwem witryny Windows Update (Microsoft Update, Windows Update dla firm, wewnętrzny serwer WSUS lub SCCM). Aby to zrobić należy włączyć odpowiednie opcje podczas instalacji pakietu MSI.

Sprawdź, czyOtrzymuj aktualizacje innych produktów firmy Microsoft podczas aktualizacji systemu Windowsopcja jest teraz włączona w Ustawieniach -> Aktualizacja i zabezpieczenia -> Windows Update -> Opcje zaawansowane.

Administrator może skonfigurować opcje instalacji aktualizacji za pomocą ustawień zasad grupy.

Teraz, kiedy kliknieszSprawdź aktualizacjelub uruchom skanowanie aktualizacji za pośrednictwem modułu PSWindowsUpdate, otrzymasz także aktualizacje dla PowerShell Core.

Related Posts