Voici le scénario:IIS à distance et automatisée 7 gestion de build serveur - problème d'autorisations
- Win2003 Build Server (CCNET)
- IIS7 serveur de déploiement cible
Les différentes tâches MSBuild (Sdc .Tasks, MSBuild Community, MSBuild Extension Pack) pour ce faire (création de VDirs, définition des propriétés AppPool) ne conviennent pas pour au moins une ou plusieurs des raisons suivantes:
- Aucun support pour IIS 7.
- Aucune possibilité de passer le nom d'utilisateur/mot de passe du domaine pour effectuer l'opération.
- Microsoft.Web.Management.dll n'est pas disponible sur le serveur de génération.
- Erreur «Accès refusé».
Il n'y a pas de problèmes créant Vdirs sur IIS 6 - si nous sommes réellement bombardements à iisvdir.vbs, en utilisant toute la tâche MSBuild tel que décrit ci-dessus semblent soit de ne pas supporter le domaine nom d'utilisateur/mot de passe auth lors de l'exécution l'opération ou lancera simplement un message de base 'Accès refusé' (malgré les autorisations appropriées sur la métabase IIS 6). N'oubliez pas non plus que les différentes méthodes fonctionnent parfaitement sur IIS 7 si vous ne spécifiez pas un utilisateur/pw de domaine spécifique tant que le contexte d'authentification actuel dispose des permissions correctes, mais pour des raisons évidentes, nous ne voulons pas tous notre build CCNET pour fonctionner dans ce contexte. J'ai même utilisé psexec.exe pour exécuter appcmd.exe sur la boîte à distance, ce qui fonctionne aussi bien si le contexte de sécurité actuel a l'autorisation appropriée, mais dès que vous spécifiez nom d'utilisateur/mot de passe sur psexec, vous obtenez un message d'erreur indiquant "Impossible de lire le fichier de configuration en raison d'autorisations insuffisantes". L'utilisateur spécifié est un compte de domaine et fait partie du groupe Administrateurs local sur le serveur 2008.
En outre, j'ai fini de lancer ma propre tâche RunAs MSBuild, héritant de la tâche Exec et utilisant l'emprunt d'identité programmatique. Je l'utilise ensuite pour appeler psexec sans spécifier le nom d'utilisateur et le mot de passe dans psexec, mais en usurpant l'identité lors du bombardement de psexec, mais je reçois simplement un code de sortie de 1 - sans plus de détails.
Comme vous voyez, j'ai presque épuisé toutes les options, ou alors je pense.
Si vous pensez à autre chose ou avez réussi à gérer IIS7 à distance, à partir d'un processus automatisé sur une boîte non IIS7 (en utilisant un utilisateur administrateur non local spécifique), faites le moi savoir.