WS-Management (WSMan) Remoting em PowerShell

Instruções para criar um ponto final de remoting

O pacote PowerShell para Windows inclui um plug-in WinRM (pwrshplugin.dll) e um script de instalação (Install-PowerShellRemoting.ps1) em $PSHome. Estes ficheiros permitem ao PowerShell aceitar ligações remotas PowerShell quando o seu ponto final for especificado.

Motivação

Uma instalação de PowerShell pode estabelecer sessões PowerShell para computadores remotos que utilizam New-PSSession e Enter-PSSession. Para permitir a aceitação de ligações remotas PowerShell, o utilizador deve criar um ponto final de remoing WinRM. Este é um cenário explícito de opt-in onde o utilizador executa Install-PowerShellRemoting.ps1 para criar o ponto final winRM. O script de instalação é uma solução de curto prazo até adicionarmos funcionalidade adicional para Enable-PSRemoting executar a mesma ação. Para mais detalhes, consulte a edição nº 1193.

Ações de script

O guião

  1. Cria um diretório para o plug-in dentro $env:windir\System32\PowerShell
  2. Cópias pwrshplugin.dll para aquele local
  3. Gera um ficheiro de configuração
  4. Regista o plug-in com o WinRM

Registo

O script deve ser executado dentro de uma sessão PowerShell ao nível do administrador e executado em dois modos.

Executado pela instância de PowerShell que vai registar

Install-PowerShellRemoting.ps1

Executada por outro caso de PowerShell em nome da instância que irá registar

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

Por Exemplo:

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

Nota

O roteiro de registo de remoing reinicia o WinRM. Todas as sessões psrp existentes terminam imediatamente após a execução do script. Se for executado durante uma sessão remota, o script termina a ligação.

Como ligar-se ao novo ponto final

Crie uma sessão PowerShell para o novo ponto final powerShell especificando -ConfigurationName "some endpoint name". Para ligar à instância PowerShell a partir do exemplo acima, utilize:

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

Note que New-PSSession e Enter-PSSession as invocações que não especificam -ConfigurationName direcionarão o ponto final padrão do PowerShell, microsoft.powershell.