Migrálás a Windows PowerShell 5.1-ről a PowerShell 7-reMigrating from Windows PowerShell 5.1 to PowerShell 7

A Felhőbeli, helyszíni és hibrid környezetekhez tervezett PowerShell 7 fejlesztésekkel és új funkciókkalvan ellátva.Designed for cloud, on-premises, and hybrid environments, PowerShell 7 is packed with enhancements and new features.

  • A telepítése és futtatása a Windows PowerShell-lelInstalls and runs side-by-side with Windows PowerShell
  • Továbbfejlesztett kompatibilitás a meglévő Windows PowerShell-modulokkalImproved compatibility with existing Windows PowerShell modules
  • Új nyelvi funkciók, például Ternáris-operátorok ésForEach-Object -ParallelNew language features, like ternary operators and ForEach-Object -Parallel
  • Jobb teljesítményImproved performance
  • SSH-alapú távelérésSSH-based remoting
  • Platformfüggetlen együttműködésCross-platform interoperability
  • Docker-tárolók támogatásaSupport for Docker containers

A PowerShell 7 a Windows PowerShell szolgáltatással párhuzamosan működik, így a telepítés előtt egyszerűen tesztelheti és összehasonlíthatja a kiadásokat.PowerShell 7 works side-by-side with Windows PowerShell letting you easily test and compare between editions before deployment. Az áttelepítés egyszerű, gyors és biztonságos.Migration is simple, quick, and safe.

A PowerShell 7 a következő Windows operációs rendszereken támogatott:PowerShell 7 is supported on the following Windows operating systems:

  • Windows 8,1 és 10Windows 8.1 and 10
  • Windows Server 2012, 2012 R2, 2016 és 2019Windows Server 2012, 2012 R2, 2016, and 2019

A PowerShell 7 macOS-en és számos Linux-disztribúción is fut.PowerShell 7 also runs on macOS and several Linux distributions. A támogatott operációs rendszerek és a támogatási életciklussal kapcsolatos információk listáját lásd a PowerShell- támogatás életciklusacímű témakörben.For a list of supported operating systems and information about the support lifecycle, see the PowerShell Support Lifecycle.

A PowerShell 7 telepítéseInstalling PowerShell 7

A rugalmasság érdekében, valamint az informatikai, DevOps és fejlesztői igények kielégítéséhez számos lehetőség áll rendelkezésre a PowerShell 7 telepítéséhez.For flexibility and to support the needs of IT, DevOps engineers, and developers, there are several options available to install PowerShell 7. A legtöbb esetben a telepítési lehetőségek a következő módszerekre csökkenthetők:In most cases, the installation options can be reduced to the following methods:

Megjegyzés

Az MSI-csomag üzembe helyezhető és frissíthető olyan felügyeleti termékekkel, mint a System Center Configuration Manager (SCCM).The MSI package can be deployed and updated with management products such as System Center Configuration Manager (SCCM). Töltse le a csomagokat a GitHub kiadási oldaláról.Download the packages from GitHub Release page.

Az MSI-csomag üzembe helyezéséhez rendszergazdai engedély szükséges.Deploying the MSI package requires Administrator permission. A ZIP-csomagot bármely felhasználó üzembe helyezheti.The ZIP package can be deployed by any user. A ZIP-csomag a legegyszerűbb módszer a PowerShell 7 tesztelésre való telepítésére, mielőtt a teljes telepítést véglegesíti.The ZIP package is the easiest way to install PowerShell 7 for testing, before committing to a full installation.

A PowerShell 7 párhuzamos használata a Windows PowerShell 5,1Using PowerShell 7 side-by-side with Windows PowerShell 5.1

A PowerShell 7 úgy van kialakítva, hogy a Windows PowerShell 5,1-mel együtt használható legyen.PowerShell 7 is designed to coexist with Windows PowerShell 5.1. A következő szolgáltatások biztosítják, hogy a PowerShell-beli befektetés védve legyen, és a PowerShell 7-re való Migrálás egyszerű.The following features ensure that your investment in PowerShell is protected and your migration to PowerShell 7 is simple.

  • A telepítési útvonal és a végrehajtható fájl külön neveSeparate installation path and executable name
  • Különálló PSModulePathSeparate PSModulePath
  • Külön profilok az egyes verziókhozSeparate profiles for each version
  • Továbbfejlesztett modulok kompatibilitásaImproved module compatibility
  • Új távelérési végpontokNew remoting endpoints
  • Csoportházirend-támogatásGroup policy support
  • Eseménynaplók elválasztásaSeparate Event logs

A telepítési útvonal és a végrehajtható fájl külön neveSeparate installation path and executable name

A PowerShell 7 új könyvtárba települ, amely lehetővé teszi a Windows PowerShell 5,1-mel való párhuzamos végrehajtást.PowerShell 7 installs to a new directory, enabling side-by-side execution with Windows PowerShell 5.1.

Helyszínek telepítése verzió szerint:Install locations by version:

  • Windows PowerShell 5,1:$env:WINDIR\System32\WindowsPowerShell\v1.0Windows PowerShell 5.1: $env:WINDIR\System32\WindowsPowerShell\v1.0
  • PowerShell Core 6. x:$env:ProgramFiles\PowerShell\6PowerShell Core 6.x: $env:ProgramFiles\PowerShell\6
  • PowerShell 7:$env:ProgramFiles\PowerShell\7PowerShell 7: $env:ProgramFiles\PowerShell\7

A rendszer hozzáadja az új helyet az elérési úthoz, amely lehetővé teszi a Windows PowerShell 5,1 és a PowerShell 7 futtatását.The new location is added to your PATH allowing you to run both Windows PowerShell 5.1 and PowerShell 7. Ha a PowerShell Core 6. x verzióról a PowerShell 7-re végez áttelepítést, a rendszer eltávolítja a PowerShell 6-os verzióját, és lecseréli az elérési utat.If you're migrating from PowerShell Core 6.x to PowerShell 7, PowerShell 6 is removed and the PATH replaced.

A Windows PowerShellben a PowerShell végrehajtható fájljának neve powershell.exe .In Windows PowerShell, the PowerShell executable is named powershell.exe. A 6. és újabb verziókban a végrehajtható fájl neve pwsh.exe .In version 6 and above, the executable is named pwsh.exe. Az új név megkönnyíti mindkét verzió egymás melletti végrehajtásának támogatását.The new name makes it easy to support side-by-side execution of both versions.

Különálló PSModulePathSeparate PSModulePath

Alapértelmezés szerint a Windows PowerShell és a PowerShell 7 különböző helyszíneken tárolja a modulokat.By default, Windows PowerShell and PowerShell 7 store modules in different locations. A PowerShell 7 ezeket a tárolóhelyeket a $Env:PSModulePath környezeti változóban egyesíti.PowerShell 7 combines those locations in the $Env:PSModulePath environment variable. Egy modul név szerinti importálásakor a PowerShell ellenőrzi a által megadott helyet $Env:PSModulePath .When importing a module by name, PowerShell checks the location specified by $Env:PSModulePath. Ez lehetővé teszi a PowerShell 7 számára az alapszintű és az asztali modulok betöltését.This allows PowerShell 7 to load both Core and Desktop modules.

Telepítési hatókörInstall Scope Windows PowerShell 5,1Windows PowerShell 5.1 PowerShell 7,0PowerShell 7.0
PowerShell-modulokPowerShell modules $env:WINDIR\system32\WindowsPowerShell\v1.0\Modules $PSHOME\Modules
Felhasználó telepítveUser installed
AllUsers hatóköreAllUsers scope
$env:ProgramFiles\WindowsPowerShell\Modules $env:ProgramFiles\PowerShell\Modules
Felhasználó telepítveUser installed
CurrentUser hatóköreCurrentUser scope
$HOME\Documents\WindowsPowerShell\Modules $HOME\Documents\PowerShell\Modules

Az alábbi példák az egyes verziók alapértelmezett értékeit mutatják $Env:PSModulePath be.The following examples show the default values of $Env:PSModulePath for each version.

  • Windows PowerShell 5,1 esetén:For Windows PowerShell 5.1:

    $Env:PSModulePath -split (';')
    
    C:\Users\<user>\Documents\WindowsPowerShell\Modules
    C:\Program Files\WindowsPowerShell\Modules
    C:\WINDOWS\System32\WindowsPowerShell\v1.0\Modules
    
  • PowerShell 7 esetén:For PowerShell 7:

    $Env:PSModulePath -split (';')
    
    C:\Users\<user>\Documents\PowerShell\Modules
    C:\Program Files\PowerShell\Modules
    C:\Program Files\PowerShell\7\Modules
    C:\Program Files\WindowsPowerShell\Modules
    C:\WINDOWS\System32\WindowsPowerShell\v1.0\Modules
    

Figyelje meg, hogy a PowerShell 7 tartalmazza a Windows PowerShell-elérési utakat és a PowerShell 7 elérési útját a modulok automatikus betöltéséhez.Notice that PowerShell 7 includes the Windows PowerShell paths and the PowerShell 7 paths to provide autoloading of modules.

Megjegyzés

További elérési utak is előfordulhatnak, ha megváltoztatta a PSModulePath környezeti változót, vagy telepítette az egyéni modulokat vagy alkalmazásokat.Additional paths may exist if you have changed the PSModulePath environment variable or installed custom modules or applications.

További információ: PSModulePath about_Environment_Variables.For more information, see PSModulePath in about_Environment_Variables.

További információ a modulokról: about_Modules.For more information about Modules, see about_Modules.

Különálló profilokSeparate profiles

A PowerShell-profilok olyan parancsfájlok, amelyek a PowerShell indításakor futnak.A PowerShell profile is a script that executes when PowerShell starts. Ez a parancsfájl parancsok, aliasok, függvények, változók, modulok és PowerShell-meghajtók hozzáadásával szabja testre a környezetet.This script customizes your environment by adding commands, aliases, functions, variables, modules, and PowerShell drives. A profil parancsfájlja minden munkamenetben elérhetővé teszi ezeket a testreszabásokat anélkül, hogy ezeket manuálisan újra létre kellene hoznia.The profile script makes these customizations available in every session without having to manually recreate them.

A profil helyének elérési útja megváltozott a PowerShell 7-ben.The path to the location of the profile has changed in PowerShell 7.

  • A Windows PowerShell 5,1-ben a profil helye: $HOME\Documents\WindowsPowerShell .In Windows PowerShell 5.1, the location of the profile is $HOME\Documents\WindowsPowerShell.
  • A PowerShell 7-ben a profil helye: $HOME\Documents\PowerShell .In PowerShell 7, the location of the profile is $HOME\Documents\PowerShell.

A profil fájlnevei is módosultak:The profile filenames have also changed:

PS> $PROFILE | Select-Object *Host* | Format-List

AllUsersAllHosts       : C:\Program Files\PowerShell\7\profile.ps1
AllUsersCurrentHost    : C:\Program Files\PowerShell\7\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts    : C:\Users\<user>\Documents\PowerShell\profile.ps1
CurrentUserCurrentHost : C:\Users\<user>\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

További információ: about_Profiles.For more information about_Profiles.

PowerShell 7 kompatibilitás a Windows PowerShell 5,1 moduljaivalPowerShell 7 compatibility with Windows PowerShell 5.1 modules

A Windows PowerShell 5,1-ben használt modulok többsége már együttműködik a PowerShell 7 rendszerrel, beleértve a Azure PowerShell és a Active Directory.Most of the modules you use in Windows PowerShell 5.1 already work with PowerShell 7, including Azure PowerShell and Active Directory. Továbbra is együttműködünk más csapatokkal, hogy natív PowerShell 7-támogatást adjanak a további modulokhoz, többek között a Microsoft Graph, az Office 365-hez és egyebekhez.We're continuing to work with other teams to add native PowerShell 7 support for more modules including Microsoft Graph, Office 365, and others. A támogatott modulok aktuális listájáért lásd: PowerShell 7 modul kompatibilitása.For the current list of supported modules, see PowerShell 7 module compatibility.

Megjegyzés

Windows rendszeren egy UseWindowsPowerShell kapcsolót is hozzáadunk, amely Import-Module megkönnyíti a PowerShell 7-re való áttérést a nem kompatibilis modulok használatával.On Windows, we've also added a UseWindowsPowerShell switch to Import-Module to ease the transition to PowerShell 7 for those using incompatible modules. További információ erről a funkcióról: about_Windows_PowerShell_Compatibility.For more information on this functionality, see about_Windows_PowerShell_Compatibility.

PowerShell távvezérlésePowerShell Remoting

A PowerShell távoli eljáráshívás lehetővé teszi a PowerShell-parancsok futtatását egy vagy több távoli számítógépen.PowerShell remoting lets you run any PowerShell command on one or more remote computers. Állandó kapcsolatokat hozhat létre, megkezdheti az interaktív munkameneteket, és parancsfájlokat futtathat a távoli számítógépeken.You can establish persistent connections, start interactive sessions, and run scripts on remote computers.

WS-Management távelérésWS-Management remoting

A Windows PowerShell 5,1 és az alábbi verzió a WS-Management (WSMAN) protokollt használja a kapcsolat egyeztetéséhez és az adatátvitelhez.Windows PowerShell 5.1 and below use the WS-Management (WSMAN) protocol for connection negotiation and data transport. A Rendszerfelügyeleti webszolgáltatások (WinRM) a WSMAN protokollt használják.Windows Remote Management (WinRM) uses the WSMAN protocol. Ha engedélyezve van a WinRM, a PowerShell 7 a távelérési kapcsolatok nevű meglévő Windows PowerShell 5,1-végpontot használja Microsoft.PowerShell .If WinRM has been enabled, PowerShell 7 uses the existing Windows PowerShell 5.1 endpoint named Microsoft.PowerShell for remoting connections. A PowerShell 7 frissítéséhez, hogy a saját végpontját is tartalmazza, futtassa a Enable-PSRemoting parancsmagot.To update PowerShell 7 to include its own endpoint, run the Enable-PSRemoting cmdlet. További információ az adott végpontokhoz való csatlakozásról: a WS-Management távelérés a PowerShell Core-ban .For information about connecting to specific endpoints, see WS-Management Remoting in PowerShell Core

A Windows PowerShell távelérés használatához a távoli számítógépet konfigurálni kell a távoli felügyelethez.To use Windows PowerShell remoting, the remote computer must be configured for remote management. További információk, például utasítások: a távoli követelmények ismertetése.For more information, including instructions, see About Remote Requirements.

További információ a távoli eljáráshívás használatáról: About RemoteFor more information about working with remoting, see About Remote

SSH-alapú távelérésSSH-based remoting

Az SSH-alapú távelérés a PowerShell Core 6. x verzióban lett hozzáadva, hogy támogassa azokat a más operációs rendszereket, amelyek nem használhatják a Windows natív összetevőket, például a WinRMszolgáltatást.SSH-based remoting was added in PowerShell Core 6.x to support other operating systems that can't use Windows native components like WinRM. Az SSH távelérés egy PowerShell-gazdagépet hoz létre a célszámítógépen SSH alrendszerként.SSH remoting creates a PowerShell host process on the target computer as an SSH subsystem. Az SSH-alapú távelérés Windows vagy Linux rendszeren való beállításával kapcsolatos részleteket és példákat itt tekintheti meg: PowerShell TÁVELÉRÉS SSH-val.For details and examples on setting up SSH-based remoting on Windows or Linux, see: PowerShell remoting over SSH.

Megjegyzés

A PowerShell-galéria (PSGallery) modult és parancsmagot tartalmaz, amely automatikusan konfigurálja az SSH-alapú távelérést.The PowerShell Gallery (PSGallery) contains a module and cmdlet that automatically configures SSH-based remoting. Telepítse a Microsoft.PowerShell.RemotingTools modult a PSGallery , és futtassa a Enable-SSH parancsmagot.Install the Microsoft.PowerShell.RemotingTools module from the PSGallery and run the Enable-SSH cmdlet.

A New-PSSession , a Enter-PSSession és a Invoke-Command parancsmagok új paraméter-készletekkel támogatják az SSH-kapcsolatokat.The New-PSSession, Enter-PSSession, and Invoke-Command cmdlets have new parameter sets to support SSH connections.

[-HostName <string>]  [-UserName <string>]  [-KeyFilePath <string>]

Távoli munkamenet létrehozásához adja meg a célszámítógép nevét a hostname paraméterrel, és adja meg a felhasználónevet a felhasználónévvel.To create a remote session, specify the target computer with the HostName parameter and provide the user name with UserName. A parancsmagok interaktív futtatásakor a rendszer jelszót kér.When running the cmdlets interactively, you're prompted for a password.

Enter-PSSession -HostName <Computer> -UserName <Username>

Másik lehetőségként a hostname paraméter használatakor adja meg a felhasználónevet, majd írja be a következőt: ( @ ), majd a számítógép nevét.Alternatively, when using the HostName parameter, provide the username information followed by the at sign (@), followed by the computer name.

Enter-PSSession -HostName <Username>@<Computer>

Az SSH-kulcsos hitelesítést a KeyFilePath paraméterrel rendelkező titkos kulcsfájl használatával lehet beállítani.You may set up SSH key authentication using a private key file with the KeyFilePath parameter. További információ: az OpenSSH kulcskezelőszolgáltatás.For more information, see OpenSSH Key Management.

Csoportházirend támogatottGroup Policy supported

A PowerShell Csoportházirend-beállításokat tartalmaz, amelyek segítségével konzisztens beállítási értékeket adhat meg a kiszolgálók számára a vállalati környezetben.PowerShell includes Group Policy settings to help you define consistent option values for servers in an enterprise environment. Ezek a beállítások többek között:These settings include:

  • Konzol munkamenet-konfigurációja: olyan konfigurációs végpontot állít be, amelyben a PowerShell fut.Console session configuration: Sets a configuration endpoint in which PowerShell is run.
  • A modul naplózásának bekapcsolása: beállítja a modulok LogPipelineExecutionDetails tulajdonságát.Turn on Module Logging: Sets the LogPipelineExecutionDetails property of modules.
  • A PowerShell parancsfájl-blokkoló naplózásának bekapcsolása: az összes PowerShell-parancsfájl részletes naplózásának engedélyezése.Turn on PowerShell Script Block Logging: Enables detailed logging of all PowerShell scripts.
  • Parancsfájl végrehajtásának bekapcsolása: beállítja a PowerShell végrehajtási házirendjét.Turn on Script Execution: Sets the PowerShell execution policy.
  • A PowerShell átírásának bekapcsolása: lehetővé teszi a PowerShell-parancsok bemenetének és kimenetének rögzítését szöveg-alapú átiratokra.Turn on PowerShell Transcription: enables capturing of input and output of PowerShell commands into text-based transcripts.
  • Állítsa be az alapértelmezett forrás elérési útját a frissítéshez – Súgó: a frissíthető Súgó forrásának beállítása egy címtárhoz, nem az Internet.Set the default source path for Update-Help: Sets the source for Updatable Help to a directory, not the Internet.

További információ: about_Group_Policy_Settings.For more information, see about_Group_Policy_Settings.

A PowerShell 7 Csoportházirend sablonokat és telepítési parancsfájlt tartalmaz a alkalmazásban $PSHOME .PowerShell 7 includes Group Policy templates and an installation script in $PSHOME.

A Csoportházirend eszközök felügyeleti sablonfájlok ( .admx , .adml ) segítségével töltik fel a házirend-beállításokat a felhasználói felületen.Group Policy tools use administrative template files (.admx, .adml) to populate policy settings in the user interface. Ez lehetővé teszi a rendszergazdák számára a beállításjegyzék-alapú házirend-beállítások kezelését.This allows administrators to manage registry-based policy settings. A InstallPSCorePolicyDefinitions.ps1 parancsfájl a PowerShell Core felügyeleti sablonok telepíti a helyi gépre.The InstallPSCorePolicyDefinitions.ps1 script installs PowerShell Core Administrative Templates on the local machine.

Get-ChildItem -Path $PSHOME -Filter *Core*Policy*
    Directory: C:\Program Files\PowerShell\7

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2/27/2020 12:38 AM          15861 InstallPSCorePolicyDefinitions.ps1
-a---           2/27/2020 12:28 AM           9675 PowerShellCoreExecutionPolicy.adml
-a---           2/27/2020 12:28 AM           6201 PowerShellCoreExecutionPolicy.admx

Eseménynaplók elválasztásaSeparate Event Logs

A Windows PowerShell és a PowerShell 7 naplózza az eseményeket az eseménynaplók elválasztásához.Windows PowerShell and PowerShell 7 log events to separate event logs. Használja a következő parancsot a PowerShell-naplók listájának lekéréséhez.Use the following command to get a list of the PowerShell logs.

Get-WinEvent -ListLog *PowerShell*

További információ: about_Logging_Windows.For more information, see about_Logging_Windows.

Továbbfejlesztett szerkesztési élmény a Visual Studio Code-banImproved editing experience with Visual Studio Code

A PowerShell- bővítmény a Visual Studio Code (VSCode) a PowerShell 7-es támogatott parancsfájl-kezelési környezete.Visual Studio Code (VSCode) with the PowerShell Extension is the supported scripting environment for PowerShell 7. A Windows PowerShell integrált parancsfájlkezelési környezet (ISE) csak a Windows PowerShellt támogatja.The Windows PowerShell Integrated Scripting Environment (ISE) only supports Windows PowerShell.

A frissített PowerShell-bővítmény a következőket tartalmazza:The updated PowerShell extension includes:

  • Új ISE kompatibilitási módNew ISE compatibility mode
  • PSReadLine az integrált konzolon, beleértve a szintaxis kiemelését, a többsoros szerkesztést és a vissza keresésétPSReadLine in the Integrated Console, including syntax highlighting, multi-line editing, and back search
  • A stabilitás és a teljesítmény fejlesztéseStability and performance improvements
  • Új Codelensben-integrációNew CodeLens integration
  • Továbbfejlesztett útvonal automatikus kiegészítéseImproved path auto-completion

A Visual Studio Code-ra való áttérés megkönnyítéséhez használja az ISE mód engedélyezése funkciót a parancs palettáján.To make the transition to Visual Studio Code easier, use the Enable ISE Mode function available in the Command Palette. Ez a függvény egy ISE stílusú elrendezésbe kapcsol egy VSCode.This function switches VSCode into an ISE-style layout. Az ISE stílusú elrendezéssel a PowerShell összes új funkciója és funkciója ismerős felhasználói élményt nyújt.The ISE-style layout gives you all the new features and capabilities of PowerShell in a familiar user experience.

Az új ISE-elrendezésre való váltáshoz nyomja le a CTRL + SHIFT + P billentyűkombinációt a parancs palettamegnyitásához, írja be a parancsot, PowerShell majd válassza a PowerShell: az ISE mód engedélyezéselehetőséget.To switch to the new ISE layout, press Ctrl+Shift+P to open the Command Palette, type PowerShell and select PowerShell: Enable ISE Mode.

Ha az elrendezést az eredeti elrendezésre szeretné beállítani, nyissa meg a parancssort, majd válassza a POWERSHELL: az ISE üzemmód letiltása (Visszaállítás az alapértékekre) lehetőséget.To set the layout to the original layout, open the Command Palette, select PowerShell: Disable ISE Mode (restore to defaults).

A VSCode elrendezés ISE-re való testreszabásával kapcsolatos részletekért lásd: az ISE-élmény replikálása a Visual Studio Code-ban .For details about customizing the VSCode layout to ISE, see How to Replicate the ISE Experience in Visual Studio Code

Megjegyzés

Az ISE új funkciókkal való frissítése nem tervezi.There no plans to update the ISE with new features. Az ISE mostantól a Windows 10 és a Windows Server legújabb verzióiban a felhasználó által nem telepíthető szolgáltatás.The ISE is now a user-uninstallable feature in the latest versions of Windows 10 and Windows Server. Az ISE végleges eltávolítására nincs terv.There are no plans to permanently remove the ISE. A PowerShell csapata és partnerei a Visual Studio Code-hoz készült PowerShell-bővítmény parancsfájl-kezelési funkciójának fejlesztésére összpontosítanak.The PowerShell Team and its partners are focused on improving the scripting experience in the PowerShell extension for Visual Studio Code.

Következő lépésekNext Steps

A PowerShell 7 telepítésének ismerete a hatékony áttelepítéshezArmed with the knowledge to effectively migrate, install PowerShell 7 now!