Я пытаюсь запустить следующую команду веб-развертывания:
msdeploy.exe -verb:dump -source:dirPath="C:\Deploy",wmsvc=localhost,username=<user>,password=<pass>
Я попытался запустить это с двумя пользователями, Джоном и Мэри. Джон является членом группы администраторов на коробке, а Мэри — нет; команда работает для Джона, но терпит неудачу с ошибкой 401 для Мэри.
У меня настроено следующее:
- Мэри имеет полный доступ к C:\Deploy через ACL (как и группа администраторов).
- И Джону, и Мэри был предоставлен доступ к C:\Deploy dirPath в IIS с использованием функции делегирования (см. ниже).
Моя запись в файлеadmin.config:
<rule enabled="true" providers="dirPath" actions="*" path=".*" pathType="RegularExpression">
<runAs identityType="SpecificUser" userName="AnAdministrator" password="..." />
<permissions>
<user name="PC\John" isRole="false" accessType="Allow" />
<user name="PC\Mary" isRole="false" accessType="Allow" />
</permissions>
</rule>
Когда я добавляю Мэри в группу администраторов, команда работает. Но весь смысл делегирования заключается в том, чтобы иметь возможность запускать команды развертывания без прав администратора. Я могу запускать другие команды (например, -verb:dump -source:appHostConfig="Веб-сайт по умолчанию"), которые подходят для Мэри - просто dirPath не работает.
WMSvc.log, похоже, не содержит ошибок для неудачной команды, хотя я вижу успешные. Я вижу 401 для запроса HEAD в трассировке неудачных запросов, но не знаю, почему это происходит...
Любые указатели приветствуются.