Ошибка создания задачи удаленного Powershell VSTS - PullRequest
0 голосов
/ 08 сентября 2018

Я создаю определение сборки в VSTS, которое будет создавать службы Windows и развертывать службы Windows на определенном сервере.

Я могу скопировать все необходимые файлы служб Windows на сервер. Я использую скрипт powershell для установки и запуска этих служб Windows. У меня есть скрипт powershell уже на сервере. Моя последняя задача VSTS Remote Powershell вызывает следующее

[ошибка] Не удалось подключиться к удаленному серверу со следующим сообщением об ошибке: WinRM не может завершить операцию. Убедитесь, что указанное имя компьютера является действительным, что компьютер доступен по сети и что исключение брандмауэра для службы WinRM включено и разрешает доступ с этого компьютера. По умолчанию исключение брандмауэра WinRM для общедоступных профилей ограничивает доступ к удаленным компьютерам в одной локальной подсети. Для получения дополнительной информации см. Раздел справки about_Remote_Trou Troubleshooting.

Код сценария Powershel:

$serviceName = "Service"
$displayName = "Service name"            
$sourceLocation = "C:\temp\Service\bin\Release\*"
$destinationLocation = "C:\TestService\"
$binaryName = $destinationLocation + "Service1.exe"
$serviceName = "Service1"
$serviceDef = Get-Service -Name $serviceName -ErrorAction SilentlyContinue

If ($serviceDef -eq $null)
{
   New-Item $destinationLocation -ItemType directory 
   Copy-Item $sourceLocation $destinationLocation -Force
   New-Service -Name $serviceName -StartupType Automatic -DisplayName $displayName -BinaryPathName $binaryName
}
else
{
  # has already been installed
  if($serviceDef.Status -eq "Running")
  {
    Stop-Service -Name $serviceName        
  }
  Copy-Item $sourceLocation $destinationLocation -Force
}
Start-Service -Name $serviceName


$serviceName = "Service2"
$displayName = "Service2"            
$sourceLocation = "C:\temp\Service2\bin\Release\*"
$destinationLocation = "C:\Service2\"
$binaryName = $destinationLocation + "Service2.exe"
$serviceName = "Service2"
$serviceDef = Get-Service -Name $serviceName -ErrorAction SilentlyContinue

If ($serviceDef -eq $null)
{
   New-Item $destinationLocation -ItemType directory 
   Copy-Item $sourceLocation $destinationLocation -Force
   New-Service -Name $serviceName -StartupType Automatic -DisplayName $displayName -BinaryPathName $binaryName
}
else
{
  # has already been installed
  if($serviceDef.Status -eq "Running")
  {
    Stop-Service -Name $serviceName        
  }
  Copy-Item $sourceLocation $destinationLocation -Force
}
Start-Service -Name $serviceName

1 Ответ

0 голосов
/ 08 сентября 2018

Судя по сообщению об ошибке, это должна быть проблема WinRM, вам нужно включить WinRM на конкретном сервере.

Просто попробуйте запустить команду winrm quickconfig из cmd в качестве администратора на определенном сервере, чтобы включить WinRM. После этого попробуйте снова.

 C:\Windows\system32>WinRM quickconfig
 WinRM service is already running on this machine.
 WinRM is not set up to allow remote access to this machine for management.
 The following changes must be made:

 Create a WinRM listener on HTTP://* to accept WS-Man requests to any IP on this
 machine.

 Make these changes [y/n]? y

 WinRM has been updated for remote management.

 Created a WinRM listener on HTTP://* to accept WS-Man requests to any IP on this
 machine.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...