Comunicazione remota di WS-Management (WS-Management) in PowerShell CoreWS-Management (WSMan) Remoting in PowerShell Core

Istruzioni per creare un endpoint di comunicazione remotaInstructions to Create a Remoting Endpoint

Il pacchetto PowerShell Core per Windows include un plug-in WinRM (pwrshplugin.dll) e uno script di installazione (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. Questi file consentono a PowerShell di accettare le connessioni remote PowerShell in ingresso quando viene specificato l'endpoint.These files enable PowerShell to accept incoming PowerShell remote connections when its endpoint is specified.

MotivazioneMotivation

Un'installazione di PowerShell può stabilire sessioni di PowerShell con i computer remoti usando New-PSSession e Enter-PSSession.An installation of PowerShell can establish PowerShell sessions to remote computers using New-PSSession and Enter-PSSession. Per abilitarla ad accettare le connessioni remote PowerShell in ingresso, l'utente deve creare un endpoint di comunicazione remota WinRM.To enable it to accept incoming PowerShell remote connections, the user must create a WinRM remoting endpoint. Si tratta di uno scenario di consenso esplicito in cui l'utente esegue Install-PowerShellRemoting.ps1 per creare l'endpoint WinRM.This is an explicit opt-in scenario where the user runs Install-PowerShellRemoting.ps1 to create the WinRM endpoint. Lo script di installazione è una soluzione provvisoria fino a quando non verranno aggiunte altre funzionalità a Enable-PSRemoting per eseguire la stessa azione.The installation script is a short-term solution until we add additional functionality to Enable-PSRemoting to perform the same action. Per altri dettagli, vedere il problema n. 1193.For more details, please see issue #1193.

Azioni scriptScript Actions

Lo scriptThe script

  1. Crea una directory per il plug-in all'interno di $env:windir\System32\PowerShellCreates a directory for the plug-in within $env:windir\System32\PowerShell
  2. Copia pwrshplugin.dll in questo percorsoCopies pwrshplugin.dll to that location
  3. Genera un file di configurazioneGenerates a configuration file
  4. Registra il plug-in in WinRMRegisters that plug-in with WinRM

RegistrazioneRegistration

Lo script deve essere eseguito all'interno di una sessione di PowerShell a livello di amministratore e viene eseguito in due modalità.The script must be executed within an Administrator-level PowerShell session and runs in two modes.

Eseguito dall'istanza di PowerShell che verrà registrataExecuted by the instance of PowerShell that it will register

Install-PowerShellRemoting.ps1

Eseguito da un'altra istanza di PowerShell per conto dell'istanza che verrà registrataExecuted 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>"

Ad esempio:For Example:

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

Nota

Lo script di registrazione remota riavvia WinRM.The remoting registration script restarts WinRM. Tutte le sessioni PSRP esistenti vengono terminate subito dopo l'esecuzione dello script.All existing PSRP sessions are terminate immediately after the script is run. Se eseguito durante una sessione remota, lo script termina la connessione.If run during a remote session, the script terminates the connection.

Come connettersi al nuovo endpointHow to Connect to the New Endpoint

Stabilire una sessione di PowerShell con il nuovo endpoint PowerShell specificando -ConfigurationName "some endpoint name".Create a PowerShell session to the new PowerShell endpoint by specifying -ConfigurationName "some endpoint name". Per connettersi all'istanza di PowerShell dall'esempio precedente, usare una delle chiamate seguenti: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"

Si noti che le chiamate New-PSSession e Enter-PSSession in cui non viene specificato -ConfigurationName avranno come destinazione l'endpoint PowerShell predefinito, microsoft.powershell.Note that New-PSSession and Enter-PSSession invocations that do not specify -ConfigurationName will target the default PowerShell endpoint, microsoft.powershell.