WS-Management (WSMan) távoli eljáráshívás a PowerShell Core-banWS-Management (WSMan) Remoting in PowerShell Core

Távelérési végpont létrehozásának utasításaiInstructions to Create a Remoting Endpoint

A Windows PowerShell Core-csomagja tartalmaz egy WinRM beépülő modult ( pwrshplugin.dll ) és egy telepítési parancsfájlt ( Install-PowerShellRemoting.ps1 ) a alkalmazásban $PSHome .The PowerShell Core package for Windows includes a WinRM plug-in (pwrshplugin.dll) and an installation script (Install-PowerShellRemoting.ps1) in $PSHome. Ezek a fájlok lehetővé teszik a PowerShell számára, hogy fogadja a bejövő PowerShell távoli kapcsolatokat, amikor a végpontja meg van adva.These files enable PowerShell to accept incoming PowerShell remote connections when its endpoint is specified.

MotivációMotivation

A PowerShell telepítése a és a használatával PowerShell-munkameneteket tud létrehozni a távoli számítógépekhez New-PSSession Enter-PSSession .An installation of PowerShell can establish PowerShell sessions to remote computers using New-PSSession and Enter-PSSession. A bejövő PowerShell távoli kapcsolatok fogadásának engedélyezéséhez a felhasználónak létre kell hoznia egy WinRM távelérési végpontot.To enable it to accept incoming PowerShell remote connections, the user must create a WinRM remoting endpoint. Ez egy explicit opt-in forgatókönyv, ahol a felhasználó Install-PowerShellRemoting.ps1 futtat a WinRM-végpont létrehozásához.This is an explicit opt-in scenario where the user runs Install-PowerShellRemoting.ps1 to create the WinRM endpoint. A telepítési parancsfájl egy rövid távú megoldás, amíg további funkciókat nem adunk hozzá Enable-PSRemoting a művelet végrehajtásához.The installation script is a short-term solution until we add additional functionality to Enable-PSRemoting to perform the same action. További részletekért tekintse meg a #1193probléma című témakört.For more details, please see issue #1193.

Parancsfájlok műveleteiScript Actions

A parancsfájlThe script

  1. Létrehoz egy könyvtárat a beépülő modulhoz a következőn belül: $env:windir\System32\PowerShellCreates a directory for the plug-in within $env:windir\System32\PowerShell
  2. pwrshplugin.dll másolása erre a helyreCopies pwrshplugin.dll to that location
  3. Konfigurációs fájl generálásaGenerates a configuration file
  4. A beépülő modul regisztrálása a WinRM szolgáltatássalRegisters that plug-in with WinRM

RegisztrációRegistration

A parancsfájlt rendszergazdai szintű PowerShell-munkameneten belül kell végrehajtani, és két módban kell futnia.The script must be executed within an Administrator-level PowerShell session and runs in two modes.

A PowerShell azon példánya hajtja végre, amelyet regisztrálni fogExecuted by the instance of PowerShell that it will register

Install-PowerShellRemoting.ps1

A PowerShell egy másik példánya hajtja végre azon példány nevében, amelyet regisztrálni fogExecuted by another instance of PowerShell on behalf of the instance that it will register

<path to powershell>\Install-PowerShellRemoting.ps1 -PowerShellHome "<absolute path to the instance's $PSHOME>"

Például:For Example:

Set-Location -Path 'C:\Program Files\PowerShell\6.0.0\'
.\Install-PowerShellRemoting.ps1 -PowerShellHome "C:\Program Files\PowerShell\6.0.0\"

Megjegyzés

A távoli eljáráshívás regisztrációs parancsfájlja újraindítja a WinRM szolgáltatást.The remoting registration script restarts WinRM. A rendszer azonnal leállítja az összes meglévő PSRP-munkamenetet a parancsfájl futtatása után.All existing PSRP sessions are terminate immediately after the script is run. Ha távoli munkamenet során fut, a parancsfájl leállítja a kapcsolatot.If run during a remote session, the script terminates the connection.

Kapcsolódás az új végponthozHow to Connect to the New Endpoint

Hozzon létre egy PowerShell-munkamenetet az új PowerShell-végponthoz a megadásával -ConfigurationName "some endpoint name" .Create a PowerShell session to the new PowerShell endpoint by specifying -ConfigurationName "some endpoint name". A fenti példában szereplő PowerShell-példányhoz való kapcsolódáshoz használja az alábbiakat:To connect to the PowerShell instance from the example above, use either:

New-PSSession ... -ConfigurationName "powershell.6.0.0"
Enter-PSSession ... -ConfigurationName "powershell.6.0.0"

Vegye figyelembe, hogy New-PSSession Enter-PSSession a nem megadott meghívások -ConfigurationName az alapértelmezett PowerShell-végpontot fogják megcélozni microsoft.powershell .Note that New-PSSession and Enter-PSSession invocations that do not specify -ConfigurationName will target the default PowerShell endpoint, microsoft.powershell.