Šiame straipsnyje aprašoma, kaip atnaujinti„Windows PowerShell“.į naujausią 5.1 versiją ir kaip įdiegti (atnaujinti)„PowerShell“ branduolys7.3. Šiuo metu yra dvi „PowerShell“ atšakos:
- Klasika„Windows PowerShell“.(maksimali versija yra 5.1, kuri nebekuriama.);
- Naujasis„PowerShell“ branduolysplatforma (dabar pasiekiama 7.3 versija).
Nors „PowerShell“ versijų numeracija tęsiasi nuo 5.1 (6.0, 6.1, 7.0, 7.1 ir t. t.), tai yra dvi skirtingos platformos. Todėl Windows PowerShell ir PowerShell Core atnaujinimas bus aptariamas atskirai.
„PowerShell Core 7.x“ yra versija, kuri labiausiai suderinama su klasikine „Windows PowerShell“. Tai reiškia, kad galite lengvai paleisti senus PS1 scenarijaus failus ir cmdlet naudodami „PowerShell Core“.
Turinys:
- Naujovinimas į Windows PowerShell 5.1
- Kaip įdiegti arba atnaujinti „PowerShell Core 7“?
- „PowerShell Core“ diegimas / atnaujinimas nuotoliniuose kompiuteriuose
- „PowerShell“ atnaujinimas naudojant „Windows Update“ arba WSUS
Naujovinimas į Windows PowerShell 5.1
„Windows PowerShell 5.1“ jau įdiegta pagal numatytuosius nustatymus visose versijose, pradedant „Windows 10“ ir „Windows Server 2016“.
Turite rankiniu būdu atnaujinti į PowerShell 5.1 ankstesnėms versijoms (Windows 7/8.1 ir Windows 2008 R2/2012). Pavyzdžiui, Windows Server 2012 R2 (Windows 8.1) įdiegta PowerShell 4.0.
Pabandykime naujovinti „Windows PowerShell“ versiją į 5.1 sistemoje „Windows Server 2012 R2“.
Pirmiausia patikrinkite dabartinę „PowerShell“ versiją (ekrano kopijoje rodoma, kad tai „PowerShell 4.0“):
$PSVersionTable.PSVersion

Norėdami atnaujinti „PowerShell“ versiją į 5.1, įdiekite„Windows“ valdymo sistema 5.1, kuriai reikia.NET Framework 4.5.2(arba vėliau). Įsitikinkite, kad .NET 4.5.2 arba naujesnė versija yra įdiegta naudojant šią komandą:
(Get-ItemProperty ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv4Full’ -Name Release).Release


Mano atveju, išleidimo versija378675reiškia, kad įdiegta .NET Framework 4.5.1 versija. Taigi, turiu atsisiųsti ir įdiegti naujausią .NET Framework 4.8 versiją (čia yra nuoroda į diegimo programą neprisijungus:https://go.microsoft.com/fwlink/?linkid=2088631—ndp48-x86-x64-allos-enu.exe).
Įdiekite .NET 4.8 paketą (jums reikės iš naujo paleisti kompiuterį):


Jei įdiegsite WMF 5.1 be .NET 4.5.2, kai kurios PowerShell funkcijos nebus pasiekiamos.
AtsisiųstiWMF 5.1skirta „Windows Server 2012 R2“ –Win8.1AndW2K12R2-KB3191564-x64.msu(https://go.microsoft.com/fwlink/?linkid=839516).
Įdiekite „Windows Management Framework 5.1“ iš MSU failo.


Iš naujo paleidę serverį atidarykite powershell.exe konsolę ir įsitikinkite, kad PowerShell versija atnaujinta į 5.1.


Jei turite nepalaikomą „Windows 7“ arba „Windows Server 2008 R2“, tokiu pat būdu galite atnaujinti „PowerShell“ versiją iš 2.0 į 5.1. Pirma, įdiekite.Net Framework 4.5.2(arba naujesnė), tadaWMF 5.1(atsiuntimo nuorodos skirsis nuo Windows Server 2012 R2).
Kaip įdiegti arba atnaujinti „PowerShell Core 7“?
„PowerShell Core“ yra kelių platformų ir aktyviai kuriama (skirtingai nei „Windows PowerShell 5.1“). Tiesą sakant, „PowerShell Core“ yra nauja platforma, įdiegta operacinėje sistemoje kartu su klasikine „Windows PowerShell“. Tai reiškia, kad negalite naujovinti iš PowerShell 5.1 į PowerShell Core 7.3. „PowerShell 7.x“ įdiegiamas jūsų kompiuteryje atskirai nuo „Windows PowerShell 5.1“ (greta).
Šiuo metu yra „PowerShell Core 6.x“ ir „7.x“. Rekomenduojama visada įdiegti naujausią PowerShell versiją (šiuo metu 7.3), nebent jums reikia specialaus suderinamumo su senais scenarijais.
Yra keli būdai, kaip atnaujinti (įdiegti) PowerShell Core versiją Windows 10 ir 11:
- Naudokite PowerShell Core MSI diegimo programą, kurią galima atsisiųsti iš GitHub;
- Naudojant integruotą Windows 10/11 paketų tvarkyklę WinGet;
- „Microsoft Store“ naudojimas.
Toliau, naudodamiesi PowerShell Core atnaujinimo į 7.3 Windows 10 22H2 pavyzdžiu, apžvelgsime visus šiuos metodus.
„PowerShell Core“ atnaujinimas naudojant MSI diegimą
Jei norite įdiegti „PowerShell Core“ naudodami MSI paketą, eikite į projekto puslapįhttps://github.com/PowerShell/PowerShellir atsisiųskite savo OS versijos diegimo paketą. Rašymo metu naujausias „PowerShell“ leidimas yrav7.3.3, 2023 m. vasario 24 d. (pvz.,PowerShell-7.3.3-win-x64.msiarbaPowerShell-7.3.3-win-x86.msi). Gamybos aplinkai naudokite tik stabilius arba LTS leidimus.


Atsisiųskite MSI failą ir įdiekite jį.
Galimos šios diegimo parinktys:
- Pridėkite „PowerShell“ prie kelio aplinkos kintamojo
- Užregistruokite „Windows“ įvykių registravimo manifestą (atskiras įvykių peržiūros programos žurnalas sukuriamas „PowerShell“ įvykiams.
%SystemRoot%System32WinevtLogsPowerShellCore%4Operational.evtx) - Įgalinti „PowerShell Remoting“ (įjungia ir sukonfigūruoja „WinRM“, skirtą „PowerShell“ nuotoliniam valdymui)
- Prie Explorer pridėkite kontekstinį meniu „Atidaryti čia“.
- Pridėkite „PowerShell“ failų kontekstinį meniu „Vykdyti naudojant PowerShell 7“.


Tada galite įjungti automatinius „PowerShell Core“ naujinimus naudodami „Windows Update“ / WSUS (žr. toliau).


Norėdami įdiegti „PowerShell Core“ iš MSI paketo naudodami SCCM/MDT/skriptus tyliuoju režimu, galite naudoti komandą su šiais parametrais:
Taip pat žiūrėkite:Kaip patikrinti „PowerShell“ versiją sistemoje „Windows 11“.
- ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL
- ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL
- ENABLE_PSREMOTING
- REGISTER_MANIFEST
- ADD_PATH
- DISABLE_TELEMETRY
- USE_MU – naudokite „Microsoft Update“, kad gautumėte PSCore naujinimus
- ENABLE_MU – leiskite „PowerShell Core“ atnaujinti naudojant „Windows Update“.
Pavyzdžiui, tylaus diegimo komanda gali atrodyti maždaug taip:
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
Galite atnaujinti „PowerShell“ tiesiai iš konsolės. Norėdami įdiegti arba atnaujinti į naujausią PowerShell Core versiją, paleiskite šią komandą:
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
Ši komanda atsisiunčia PowerShell 7.3 MSI failą iš GitHub ir pradeda diegti naudojant MSI diegimo programą.


Kai diegimas bus baigtas, pasirodys PowerShell Core (pwsh.exe) langas. Patikrinkite PowerShell versiją, kad įsitikintumėte, jog ji atnaujinta į PoSh 7.3.3.


„WinGet Package Manager“ naudojimas norint įdiegti arba atnaujinti „PowerShell Core“.
Jei turite įdiegtą „WinGet“ paketų tvarkyklę, galite įdiegti arba atnaujinti „PowerShell“ versiją į naujausią komandą:
winget install --id Microsoft.Powershell --source winget
Arba galite įdiegti konkrečią „PowerShell Core“ versiją:
winget install --id=Microsoft.PowerShell -v "7.1.2" -e
Jei turite įdiegtą „Chocolatey“ paketų tvarkyklę, naudokite komandas (5.1):
choco install powershell -y
choco upgrade powershell -y
arba PowerShell 7.x:choco install pwsh -y
choco install pwsh -y
Atkreipkite dėmesį į numatytuosius skirtingų „PowerShell“ versijų katalogus:
- „Windows PowerShell 5.1“:
$env:WINDIRSystem32WindowsPowerShellv1.0 - „PowerShell Core 6.x“:
$env:ProgramFilesPowerShell6 - „PowerShell Core 7.x“:
$env:ProgramFilesPowerShell7
Jei jūsų kompiuteryje buvo įdiegta PowerShell 6.x,$env:ProgramFilesPowerShell6katalogas automatiškai pašalinamas, kai įdiegiate PowerShell 7.3.
Atminkite, kad PowerShell vykdomojo failo pavadinimas pasikeitė. „PowerShell Core“ taip yrac: Program FilesPowerShell7pwsh.exe. Jis turi savo piktogramą meniu Pradėti.
- Norėdami paleisti .NET Framework pagrįstą Windows PowerShell,
powershell.exenaudojama komanda - Norėdami paleisti .NET Core pagrįstą PowerShell Core, naudokite
pwsh.exe


Tai reiškia, kad jūsų kompiuteryje įdiegta Windows PowerShell 5.1 ir PowerShell Core 7.3.


Norėdami sužinoti jūsų įrenginyje įdiegtą PowerShell versiją ir versiją, galite patikrinti failo pwsh.exe versiją:
(Get-Command 'C:Program FilesPowerShell7pwsh.exe').Version


Taip galite patikrinti failo versiją nuotoliniame kompiuteryje:
Invoke-Command -Computername computer1 -Scriptblock {(Get-Command 'C:Program FilesPowerShell7pwsh.exe').Version}
„Windows PowerShell“ suteikia specialų atgalinio suderinamumo režimą, leidžiantį paleisti senesnę „PowerShell“ versiją, net jei įdiegta naujesnė versija. Norėdami paleisti konkrečią „PowerShell“ pavyzdžio 4.0 versiją, galite naudoti šią komandą:
C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -Version 4
Įdiekite „PowerShell Core“ sistemoje „Windows 10“ ir „Windows 11“ naudodami „Microsoft Store“.
„Windows 10“ ir „Windows 11“ galite įdiegti arba atnaujinti „PowerShell“ naudodami „Microsoft Store“. Galite rankiniu būdu rasti „PowerShell“ programą parduotuvėje arba naudoti jąnuoroda.
Taip pat galite naudoti „WinGet“, kad įdiegtumėte „PowerShell“ parduotuvės versiją:
winget search powershell --source msstore
winget install --id 9MZ1SNWT0N5D
„PowerShell Core“ diegimo iš „Microsoft Store“ pranašumas yra tas, kad „App Store“ automatiškai patikrina jūsų įdiegtą „PowerShell“ versiją ir automatiškai įdiegia naujinimus, kai tik jie atsiranda.
Norėdami patikrinti, ar įdiegėte „PowerShell Core“ „Store“ versiją, naudokite komandą:
Get-AppPackage Microsoft.PowerShell
Šiame pavyzdyje įdiegtas Microsoft.PowerShell_7.3.3.0_x64__8wekyb3d8bbwe paketas.


Tačiau yra ir trūkumų, susijusių su tuo, kad toks „PowerShell“ egzempliorius veiks smėlio dėžės aplinkoje.


Galite atsisiųsti APPX arba MSIX programos failą ir įdiegti jį naudodamiAdd-AppxPackagePowerShell cmdlet.
„PowerShell Core“ diegimas / atnaujinimas nuotoliniuose kompiuteriuose
Apsvarstykite du „PowerShell Core“ diegimo arba atnaujinimo keliuose nuotoliniuose kompiuteriuose scenarijus.
„PowerShell Core“ diegimas naudojant grupės politiką
Galite naudoti grupės politiką, norėdami centralizuotai diegti ir atnaujinti „PowerShell Core“ „Active Directory“ domene. Naudokite GPO funkcijas, kad diegtumėte MSI paketus domeno kompiuteriuose.
- Atsisiųskite PowerShell MSI diegimo failą ir nukopijuokite jį į domeno valdiklio SYSVOL katalogą;
- Atidarykite domenų grupės strategijos valdymo pultą (
gpmc.msc), sukurti naują GPO ir susieti jį su OU su kompiuteriais ir serveriais; - Eikite į GPO skyriųKompiuterio konfigūracija->Programinės įrangos nustatymai, sukurkite naują paketą ir nurodykite kelią į PowerShell MSI diegimo failą domeno aplanke SYSVOL (naudokite UNC kelią);

Norėdami tiksliau taikyti savo politiką domeno įrenginiams, galite naudoti GPO WMI filtrus. - Norėdami atnaujinti programinės įrangos diegimo grupės strategijos parametrus, turite iš naujo paleisti kompiuterius. Nauja PowerShell versija bus įdiegta visuose kompiuteriuose paleidžiant.
Kaip atnaujinti „PowerShell“ nuotoliniame kompiuteryje iš komandų eilutės?
Norėdami atnaujinti „PowerShell“ nuotoliniame kompiuteryje, galite naudoti komandų eilutės eilutę.
- Pirmasis metodas naudoja MSI diegimo programą bendrame tinklo aplanke, kad nuotoliniu būdu atnaujintų „PowerShell“ kompiuteryje:
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}
- Šis scenarijus parenka visus įgalintus kompiuterius, kuriuose veikia „Windows 10“, iš „Active Directory“ domeno ir pradeda atsisiųsti bei diegti „PowerShell Core“ kiekviename iš jų:
$ADComputers = Get-ADComputer -Filter 'operatingsystem -like "*Windows 10*" -and enabled -eq "true"'Kad galėtumėte naudoti GetADComputer cmdlet, kompiuteryje turi būti įdiegtas Active Directory PowerShell modulis.
ForEach ($computer in $ADcomputers) {
Invoke-Command -ComputerName $computer {iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"}
}
Būkite atsargūs naudodami „PowerShell Remoting“ komandas jungdamiesi prie nuotolinių kompiuterių (suEnter-PSSessionirInvoke-Commandcmdlet). Jei reikia prisijungti prie „PowerShell 7“ galinio taško, turite naudoti komandą:
Enter-PSSession -ComputerName dc01 -ConfigurationName "powershell.7"
Kitu atveju prisijungsite prie „PowerShell Remoting 5.1“ galutinio taško.
„PowerShell“ atnaujinimas naudojant „Windows Update“ arba WSUS
Prieš PowerShell Core 7.2 versiją pwsh.exe nebuvo automatiškai atnaujintas. Išleidus naują versiją, konsolėje buvo tik pranešimas:
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


Pradedant nuo 7.2 versijos, „PowerShell Core“ palaiko automatinius naujinimus per „Windows Update“ („Microsoft Update“, „Windows Update for Business“, vidinį WSUS serverį arba SCCM). Norėdami tai padaryti, diegdami MSI paketą turite įjungti atitinkamas parinktis.
Patikrinkite, arGaukite naujinimus kitiems Microsoft produktams, kai atnaujinate Windowsparinktis dabar įjungta skiltyje Nustatymai -> Atnaujinimas ir sauga -> Windows naujinimas -> Išplėstinės parinktys.


Administratorius gali konfigūruoti naujinimo diegimo parinktis naudodamas grupės strategijos nustatymus.
Dabar, kai spustelėsitePatikrinkite, ar nėra atnaujinimųmygtuką arba paleiskite naujinimų nuskaitymą per PSWindowsUpdate modulį, taip pat gausite PowerShell Core naujinimus.

















