Hogyan lehet ellenőrizni a telepített PowerShell-verziót?
Ebben a cikkben megtudhatjuk, hogy milyen PowerShell-verziók léteznek, mi a különbség Windows PowerShell
és PowerShell Core
, és a helyi vagy távoli számítógépre telepített PowerShell-verzió ellenőrzésének módja.
A Windows PowerShell és a PowerShell Core előzményei és verziói
A PowerShell alapértelmezés szerint az összes Windows verzióra telepítve van, a Windows 7 SP1 és a Windows Server 2008 R2 SP1 verziótól kezdve. A következő táblázat az összes PowerShell-verzió listáját mutatja:
PS verzió | Megjegyzés |
PowerShell 1.0 | Manuálisan telepíthető a Windows Server 2003 SP1 és a Windows XP rendszerre |
PowerShell 2.0 | Windows Server 2008 R2 és Windows 7 |
PowerShell 3.0 | Windows 8 és Windows Server 2012 |
PowerShell 4.0 | Windows 8.1 és Windows Server 2012 R2 |
PowerShell 5.0 | Előtelepítve a Windows 10 RTM rendszerre, és a Windows Update segítségével automatikusan frissítve 5.1-re |
PowerShell 5.1 | A Windows 10-be van építve (az 1709-es Build-től kezdődően) és a Windows Server 2016 |
PowerShell Core 6.0 és 6.1 | Ez lehet a következő platformok közötti (.NET Core alapú) PowerShell-verzió az összes támogatott Windows verzión, valamint MacOS, CentOS, RHEL, Debian, Ubuntu, openSUSE |
PowerShell Core 7.0 | Ez a legújabb, 2020 márciusában kiadott PowerShell-verzió (.NET Core 3.1-et használunk a .NET Core 2.x helyett) |
Érdemes megjegyezni, hogy a Microsoft az elmúlt 2 évben felfüggesztette a klasszikus Windows PowerShell fejlesztését (csak hibajavítások és biztonsági frissítések jelentek meg), és a nyílt forráskódú, több platformon futó PowerShell Core-ra koncentrált.
Mi a különbség a Windows PowerShell és a PowerShell Core között?
- A Windows PowerShell .NET-keretrendszeren alapul (például a PowerShell 5-hez a .NET Framework v4.5 szükséges, ellenőrizze, hogy telepítve van). A PowerShell Core a .Net Core-ra épül;
- A Windows PowerShell csak Windows operációs rendszerekben működik, míg a PowerShell Core több platformon működik, és Linuxban is működhet;
- PowerShell Core nem teljes mértékben kompatibilis a Windows PowerShell-lel, a Microsoft azonban a korábbi PS parancsmagokkal és szkriptekkel való visszamenőleges kompatibilitás javításán dolgozik. (ajánlott tesztelni a régi PS1 szkripteket, mielőtt a PowerShell Core-ra költözne). A PowerShell Core 7 biztosítja a legnagyobb kompatibilitást a Windows PowerShell-lel;
- Nem használhatja a PowerShell ISE szerkesztőt a PowerShell Core parancsfájlok szerkesztésére (de a Visual Studio Code is használható);
- mivel a Windows PowerShell már nem fejlett, javasoljuk, hogy kezdje át a PowerShell Core rendszerre történő áttérést.
Hogyan szerezhetem be a PowerShell verziót a konzolról?
A legkönnyebben megtudhatja, melyik A számítógépre telepített PowerShell-verzió a következő parancsot használja:
host
Ellenőrizze a Version tulajdonság értékét.
vagy
$PSVersionTable
Csak a PowerShell verzió értékét kaphatja meg :
$PSVersionTable.PSVersion.major
(ebben a példában PSVersion-t kaptunk 2.0 tiszta Win-ben dows Server 2008 R2)
A $ PSVersionTable parancs helyesen működik a PowerShell Core rendszerben különböző operációs rendszerekben.
A telepített PowerShell verziót a rendszerleíró adatbázisból is megtudhatja. Ehhez szerezze be a PowerShellVersion paraméter értékét a rendszerleíró kulcsban HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
a Get-ItemProperty parancsmag használatával:
Windows Server 2008 R2 / Windows rendszerben A 7. cikk szerint a rendszerleíró adatbázis paraméterét egy másik regkulcsban kaphatja meg:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine -Name "PowerShellVersion").PowerShellVersion
A telepített PowerShell Core verzió letöltéséhez használja a következő parancsot:
Ellenőrizze a PowerShell verzióját távoli számítógépeken
ellenőrizze a PowerShell verziót egy távoli gazdagépen, használja a $ PSVersionTable környezeti változó értékét, vagy közvetlenül szerezze be az információkat a rendszerleíró adatbázisból. Más módszerek helytelen adatokat adhatnak vissza.
A PowerShell verziót telepítheti egy távoli számítógépre a PowerShell Remoting segítségével az Invoke-Command parancsmag használatával: