Como faço para parar o serviço no servidor remoto, que não está conectado a um domínio, usando um usuário não administrador via PowerShell

3

Eu tenho o começo do script para conseguir isso:

$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
Invoke-Command -Session $sess -ScriptBlock {Get-Service}
Remove-PSSession -Session $sess

mas estou recebendo este erro de conexão:

New-PSSession : [xx.xx.xx.xx] Connecting to remote server xx.xx.xx.xx failed with the following error message : WinRM cannot complete the operation. Verify that the specified computer name is valid, that the computer is accessible over the network, and that a firewall exception for the WinRM service is enabled and allows access from this computer. By default, the WinRM firewall exception for public profiles limits access to remote computers within the same local subnet. For more information, see the about_Remote_Troubleshooting Help topic.

  • Para tentar executar o script, executei o comando Enable-PSRemoting nos servidores cliente e remoto.
  • Como o servidor remoto não faz parte de um domínio, adicionei o endereço IP dos servidores ao TrustedHosts no servidor cliente.

Estou usando este página, entre muitos outros, para tentar resolver este problema e, tanto quanto eu posso dizer que deveria estar trabalhando (ou pelo menos não ter problemas de conexão).

  • O usuário com o qual estou me conectando ao servidor remoto não é , mas faz parte do Remote Managers Group .
  • Eu também segui o conselho da pergunta para conceder acesso ao serviço. Eu não acho que está chegando tão longe, mas eu queria mencionar isso por completo.

Todas as respostas, conselhos, sugestões, etc. são muito apreciadas. Obrigado.

    
por Wayne Scott 05.11.2015 / 04:00

1 resposta

1

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
    
por 06.11.2015 / 02:15