Web Deploy dirPath не работает с делегированием и пользователем без прав администратора - PullRequest
0 голосов
/ 02 февраля 2011

Я пытаюсь запустить следующую команду Web Deploy:

msdeploy.exe -verb:dump -source:dirPath="C:\Deploy",wmsvc=localhost,username=<user>,password=<pass>

Я пытался запустить это с двумя пользователями, Джоном и Мэри. Джон входит в группу администраторов на коробке, Мэри - нет; команда работает для Джона, но не работает с 401 для Мэри.

У меня есть следующие настройки:

  • Мэри имеет полный доступ к C: \ Deploy через ACL (как и группа администраторов)
  • И Джон, и Мэри получили доступ к C: \ Deploy dirPath в IIS с помощью функции делегирования (см. Ниже)

Моя запись управления.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 в трассировке невыполненных запросов, но нет указаний на то, почему это происходит ...

Любые указатели приветствуются.

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

zcrar70, вы правы: делегирование включается только тогда, когда пользователь имеет доступ к области сайта. В вашем примере, если вы предоставили PC \ Mary доступ к сайту (через разрешения диспетчера IIS), это просто сработает.

Можете ли вы объяснить свой сценарий немного дальше? Вы пытаетесь дать не-администратору разрешение на запуск определенных провайдеров на ВСЕХ сайтах?

1 голос
/ 02 февраля 2011

Ваша идентификация RunAs «AnAdministrator» должна иметь разрешения для доступа к c: \ Deploy, поскольку и Мэри, и Джон будут выдавать себя за (если исходная идентификация не пройдена, что не для Джона) от имени этого пользователя. ACL C: \ Deploy for AnAdministrator и попробуйте снова.

Вы также можете использовать ServerValidator , чтобы проверить, готова ли ваша среда к делегированному развертыванию.

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