Как запустить задачу сборки или выпуска VSTS под другим пользователем, а не под учетной записью службы сборки? - PullRequest
0 голосов
/ 07 июня 2018

Я настраиваю конвейер сборки и выпуска, и часть требований заключается в том, чтобы некоторые команды Powershell и Batch выполнялись на целевом сервере (ах).

В большинстве случаев все определения сборки и выпуска выполняются нашей выделенной учетной записью службы сборки, что обычно достаточно, однако в этом конкретном случае команду Batch следует запускать на целевом сервере (ах) другой службойучетная запись или пользователь с необходимыми привилегиями на сервере (ах).

К сожалению, наша специальная учетная запись службы сборки не обладает необходимыми привилегиями для целевого (ых) сервера (ов), поскольку они являются ограниченными средами и не планируется снимать эти ограничения.

Аналогичным образом, только ограниченное число учетных записей служб имеют полномочия для выполнения желаемых задач на целевом сервере (ах), но ни один из них не имеет привилегий для запуска задач сборки, и нет планов изменить это,

Поэтому моя задача состоит в том, чтобы как обычно запускать определения сборки / выпуска под учетной записью службы сборки, однако для определенных операций пакетной команды эти задачи должны запускаться назначенными учетными записями службы целевого сервера (-ов).Как мне этого добиться?

1 Ответ

0 голосов
/ 08 июня 2018

Мы не можем изменить учетную запись службы сборки во время процесса сборки или выпуска.

Однако вы можете попробовать следующие способы запуска пакетных команд с другой учетной записью на целевом сервере (ах):

  • Если вы можете преобразовать пакетные команды в сценарий PowerShell, то вы можете использовать задачу Развертывание: PowerShell на целевых машинах непосредственно для запуска сценария PowerShell на целевых компьютерах с определенными учетными данными.
  • Вы также можете попробовать создать сценарий PowerShell (см. Пример ниже), чтобы вызвать cmd.exe для запуска пакетного сценария с определенными учетными данными.Затем добавьте задачу Utility: PowerShell для запуска сценария.

Param(
  [string]$computerName = "v-tinmo-12r2",
)
$Username = "username"
$Password = ConvertTo-SecureString "pasword" -AsPlainText -Force

$cred = New-Object System.Management.Automation.PSCredential($Username,$password)

Invoke-Command -ComputerName $computerName  -Credential $cred -ErrorAction Stop -ScriptBlock {Invoke-Expression -Command:"cmd.exe /c 'C:\Scripts\Test.bat'"}

Обратите внимание, что для обоихиз них вам необходимо скопировать пакетный сценарий или сценарий PowerShell, который вы хотите запустить на целевом сервере (ах).

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...