O problema está nas configurações do firewall no servidor remoto. A seção HOW TO ADD A FIREWALL EXCEPTION
dos estados about_Remote_Troubleshooting
:
Enable-PSRemoting attempts to create a firewall exception for WS-Management communications. On server versions of Windows, it creates a firewall exception for all network locations.
o que ele fez. No entanto, se o perfil de rede for Privado, ele só permitirá conexões de servidores na sub-rede local, o que não aconteceu na minha situação. Depois de adicionar um escopo adicional à regra de firewall, consegui me conectar ao servidor.
Ainda tive mais um problema para resolver, pois não consegui obter uma lista dos serviços usando Get-Service
, mas como sei o nome do serviço que estou parando, posso substituí-lo por Stop-Service
. O script agora parece:
$securePassword = ConvertTo-SecureString –String $password –AsPlainText -Force
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $userName, $securePassword
$sess = New-PSSession -ComputerName $ipAddress -Credential $credential
$scriptBlock = {
$serviceName = "SeriveName"
Stop-Service -Name $serviceName
}
Invoke-Command -Session $sess -ScriptBlock $scriptBlock
Remove-PSSession -Session $sess