Externe communicatie van WS-Management (WSMan) in PowerShell CoreWS-Management (WSMan) Remoting in PowerShell Core

Instructies voor het maken van een eindpunt voor externe toegangInstructions to Create a Remoting Endpoint

Het PowerShell-kern-pakket voor Windows bevat een WinRM-invoegtoepassing (pwrshplugin.dll) en een script voor installatie (Install-PowerShellRemoting.ps1) in $PSHome.The PowerShell Core package for Windows includes a WinRM plug-in (pwrshplugin.dll) and an installation script (Install-PowerShellRemoting.ps1) in $PSHome. Deze bestanden inschakelen PowerShell te accepteren van binnenkomende PowerShell externe verbindingen wanneer het eindpunt is opgegeven.These files enable PowerShell to accept incoming PowerShell remote connections when its endpoint is specified.

DoelMotivation

Een installatie van PowerShell kan verbinding maken met PowerShell-sessies met externe computers met behulp van New-PSSession en Enter-PSSession.An installation of PowerShell can establish PowerShell sessions to remote computers using New-PSSession and Enter-PSSession. De gebruiker moet een WinRM-eindpunt voor externe toegang maken zodat het accepteren van binnenkomende PowerShell externe verbindingen.To enable it to accept incoming PowerShell remote connections, the user must create a WinRM remoting endpoint. Dit is een expliciete opt-in-scenario waarin de gebruiker wordt uitgevoerd met Install-PowerShellRemoting.ps1 om de WinRM-eindpunt te maken.This is an explicit opt-in scenario where the user runs Install-PowerShellRemoting.ps1 to create the WinRM endpoint. Het script voor installatie is een oplossing op korte termijn totdat we toevoegen van aanvullende functionaliteit voor Enable-PSRemoting de dezelfde actie uit te voeren.The installation script is a short-term solution until we add additional functionality to Enable-PSRemoting to perform the same action. Zie voor meer informatie probleem #1193.For more details, please see issue #1193.

ScriptactiesScript Actions

Het scriptThe script

  1. Hiermee maakt u een map voor de invoegtoepassing binnen %windir%\System32\PowerShellCreates a directory for the plug-in within %windir%\System32\PowerShell
  2. Pwrshplugin.dll naar die locatie opgehaaldCopies pwrshplugin.dll to that location
  3. Genereert een configuratiebestandGenerates a configuration file
  4. Registers dat invoegtoepassing met WinRMRegisters that plug-in with WinRM

RegistratieRegistration

Het script moet worden uitgevoerd binnen een beheerdersniveau PowerShell-sessie en wordt uitgevoerd in twee modi.The script must be executed within an Administrator-level PowerShell session and runs in two modes.

Uitgevoerd door het exemplaar van PowerShell die wordt geregistreerdExecuted by the instance of PowerShell that it will register

Install-PowerShellRemoting.ps1

Uitgevoerd door een ander exemplaar van PowerShell namens het exemplaar dat wordt geregistreerdExecuted 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>"

Bijvoorbeeld:For Example:

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

Opmerking: wordt het script voor de registratie voor externe toegang opnieuw starten van WinRM, zodat alle bestaande PSRP-sessies wordt beƫindigd onmiddellijk nadat het script wordt uitgevoerd.NOTE: The remoting registration script will restart WinRM, so all existing PSRP sessions will terminate immediately after the script is run. Als tijdens een externe sessie worden uitgevoerd, wordt deze de verbinding verbreken.If run during a remote session, this will terminate the connection.

Verbinding maken met het nieuwe eindpuntHow to Connect to the New Endpoint

Een PowerShell-sessie met het nieuwe PowerShell-eindpunt maken door te geven -ConfigurationName "some endpoint name".Create a PowerShell session to the new PowerShell endpoint by specifying -ConfigurationName "some endpoint name". Maak verbinding met de PowerShell-exemplaar van het bovenstaande voorbeeld door een te gebruiken: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"

Houd er rekening mee dat New-PSSession en Enter-PSSession aanroepen die geen opgeeft -ConfigurationName heeft betrekking op het standaardeindpunt PowerShell microsoft.powershell.Note that New-PSSession and Enter-PSSession invocations that do not specify -ConfigurationName will target the default PowerShell endpoint, microsoft.powershell.