Кто-нибудь успешно использует MsDeploy для развертывания служб Windows с preSync runCommand? У меня он работает с учетной записью администратора, но, хоть убей, не могу заставить его работать со стандартной учетной записью пользователя. К сожалению, я не могу использовать встроенную аутентификацию (мы выполняем развертывание на внешнем сервере), и мысль о том, что наш пароль администратора находится в виде открытого текста в журналах на нашем сервере сборки, не совсем заставляет меня чувствовать себя слишком комфортно. В этом отношении нет и учетных данных пользователя - но я не вижу способа обойти это.
Я использую следующую команду:
"tools/deploy/msdeploy.exe" -verb:sync
-preSync:runCommand="tools\Deploy\PreSyncCommand.cmd",waitInterval=30000
-source:dirPath="C:\BuiltSourcePath"
-dest:computerName=https://server:8172/msdeploy.axd?site=dummysitename,userName=service-deploy,password=service-deploy-pass,authType=basic,dirPath="C:\DeployPath\"
-allowUntrusted
с правилами, установленными в IIS для фиктивного сайта, чтобы разрешить аутентификацию для учетной записи Windows для развертывания службы с разрешениями contentPath и runCommand (на данный момент установлено значение C: \ as it ' Не совсем понятно, нужно ли указать временный путь, по которому MsDeploy передает потоки, или путь развертывания?). Учетная запись службы развертывания также имеет полный контроль над целевым каталогом. Я получаю следующее:
Performing '-preSync'...
Info: Using ID '7a7d34a1-b5d8-49f1-960a-31c9cf825868' for connections to the remote server.
Info: Using ID '4d0b910c-aca4-4640-84bd-3597d22d99d1' for connections to the remote server.
Info: Updating runCommand (C:\TeamCity\buildAgent\work\aec989676b349656\tools\De
ploy\PreSyncCommand.cmd).
Warning: Access is denied.
Warning: The process 'C:\Windows\system32\cmd.exe' (command line '/c "C:\Windows
\ServiceProfiles\LocalService\AppData\Local\Temp\giz2t0kb.0ay.cmd"') exited with
code '0x1'.
Это происходит, даже если содержимое PreSyncCommand.cmd пустое. Та же самая команда работает нормально, если я передаю учетные данные администратора. Я пробовал использовать ProcessMonitor, чтобы проверить, не запрещен ли доступ к чему-либо, но ничего не вижу - поэтому я предполагаю, что это все еще правило аутентификации MsDeploy. Нет ничего ни в WmSvc.log (отладка включена), ни в журнале событий.
Есть идеи? Спасибо!