Использование MsDeploy для развертывания служб Windows с помощью команды preSync

Кто-нибудь успешно использует 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 (отладка включена), ни в журнале событий.

Есть идеи? Спасибо!

9
задан James Crowley 4 May 2011 в 10:04
поделиться