Obsługa zdalna usługi WS-Management (WSMan) w programie PowerShell CoreWS-Management (WSMan) Remoting in PowerShell Core

Instrukcje dotyczące tworzenia punktu końcowego komunikacji zdalnejInstructions to Create a Remoting Endpoint

Pakiet programu PowerShell Core dla systemu Windows zawiera wtyczkę usługi WinRM ( pwrshplugin.dll ) i skrypt instalacji ( Install-PowerShellRemoting.ps1 ) w programie $PSHome .The PowerShell Core package for Windows includes a WinRM plug-in (pwrshplugin.dll) and an installation script (Install-PowerShellRemoting.ps1) in $PSHome. Te pliki umożliwiają programowi PowerShell akceptowanie przychodzących połączeń zdalnych programu PowerShell po określeniu punktu końcowego.These files enable PowerShell to accept incoming PowerShell remote connections when its endpoint is specified.

MotywacjaMotivation

Instalacja programu PowerShell może nawiązywać sesje programu PowerShell z komputerami zdalnymi przy użyciu New-PSSession i Enter-PSSession .An installation of PowerShell can establish PowerShell sessions to remote computers using New-PSSession and Enter-PSSession. Aby umożliwić jej akceptowanie przychodzących połączeń zdalnych programu PowerShell, użytkownik musi utworzyć punkt końcowy komunikacji zdalnej usługi WinRM.To enable it to accept incoming PowerShell remote connections, the user must create a WinRM remoting endpoint. Jest to jawny scenariusz opt, w którym użytkownik uruchamia Install-PowerShellRemoting.ps1, aby utworzyć punkt końcowy usługi WinRM.This is an explicit opt-in scenario where the user runs Install-PowerShellRemoting.ps1 to create the WinRM endpoint. Skrypt instalacji to krótkoterminowe rozwiązanie do momentu dodania dodatkowych funkcji do Enable-PSRemoting wykonania tej samej akcji.The installation script is a short-term solution until we add additional functionality to Enable-PSRemoting to perform the same action. Aby uzyskać więcej informacji, zobacz problem #1193.For more details, please see issue #1193.

Akcje skryptuScript Actions

SkryptThe script

  1. Tworzy katalog dla wtyczki w ramach $env:windir\System32\PowerShellCreates a directory for the plug-in within $env:windir\System32\PowerShell
  2. Kopiuje pwrshplugin.dll do tej lokalizacjiCopies pwrshplugin.dll to that location
  3. Generuje plik konfiguracjiGenerates a configuration file
  4. Rejestruje Tę wtyczkę przy użyciu usługi WinRMRegisters that plug-in with WinRM

RejestracjaRegistration

Skrypt musi być wykonywany w sesji programu PowerShell na poziomie administratora i uruchomiony w dwóch trybach.The script must be executed within an Administrator-level PowerShell session and runs in two modes.

Wykonywane przez wystąpienie programu PowerShell, które zostanie zarejestrowaneExecuted by the instance of PowerShell that it will register

Install-PowerShellRemoting.ps1

Wykonywane przez inne wystąpienie programu PowerShell w imieniu wystąpienia, które zostanie zarejestrowaneExecuted 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>"

Na przykład:For Example:

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

Uwaga

Skrypt rejestracji zdalnej jest uruchamiany ponownie WinRM.The remoting registration script restarts WinRM. Wszystkie istniejące sesje PSRP są przerywane natychmiast po uruchomieniu skryptu.All existing PSRP sessions are terminate immediately after the script is run. W przypadku uruchomienia w sesji zdalnej skrypt kończy połączenie.If run during a remote session, the script terminates the connection.

Jak nawiązać połączenie z nowym punktem końcowymHow to Connect to the New Endpoint

Utwórz sesję programu PowerShell z nowym punktem końcowym programu PowerShell, określając -ConfigurationName "some endpoint name" .Create a PowerShell session to the new PowerShell endpoint by specifying -ConfigurationName "some endpoint name". Aby nawiązać połączenie z wystąpieniem programu PowerShell z powyższego przykładu, użyj następujących poleceń: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"

Należy zauważyć, że New-PSSession Enter-PSSession wywołania, które nie określają, -ConfigurationName będą wskazywać domyślny punkt końcowy programu PowerShell microsoft.powershell .Note that New-PSSession and Enter-PSSession invocations that do not specify -ConfigurationName will target the default PowerShell endpoint, microsoft.powershell.