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
- Cria um diretório para o plug-in dentro
$env:windir\System32\PowerShell
- Cópias pwrshplugin.dll para aquele local
- Gera um ficheiro de configuração
- 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
.