2009-11-04 58 views
1

这里的情景:遥控和自动化的IIS 7的管理 - 权限问题

  • Win2003的构建服务器(CCNET)
  • IIS7目标部署服务器

的各种MSBuild任务(SDC .Tasks,MSBuild的社区,MSBuild扩展包)执行此操作(创建VDirs,设置程序池属性)不适合用于至少一个或多个下面的原因:

  • 为IIS 7.
  • 无可能性不支持通过域用户名/密码来执行该操作。
  • Microsoft.Web.Management.dll在构建服务器上不可用。
  • '访问被拒绝'错误。

有没有问题,在IIS 6创建Vdirs - 尽管我们实际上炮击了以Iisvdir.vbs将,因为使用任何上述的MSBuild任务似乎要么不支持域用户名/密码身份验证时执行该操作或将简单地引发一个基本的“访问被拒绝”消息(尽管在IIS 6元数据库上具有适当的权限)。

另外 - 请记住,如果没有指定特定域user/pw,只要当前认证环境具有正确的权限,各种方法就可以在IIS 7上完美地工作,但出于显而易见的原因,我们不希望全部我们的CCNET构建在这种情况下运行。

我甚至用psexec.exe来远程执行appcmd.exe,如果当前的安全上下文有适当的权限,这也可以正常工作,但只要您在psexec上指定用户名/密码,就会得到一个错误消息说“由于权限不足,无法读取配置文件”。指定的用户是域帐户,并且是2008服务器上本地管理员组的一部分。

而且 - 我已经结束了我自己的滚动运行方式MSBuild任务,从Exec任务继承和使用可编程的模拟。然后,我使用它调用psexec,但没有在psexec中指定用户名和密码,而是通过模拟psexec的shelling模拟,但我只是得到1的退出码 - 没有任何更多细节。

正如你所看到的,我已经用尽了所有的选择,或者我认为。

如果你能想到的任何东西,或者已经实现管理IIS7远程,从自动化的过程在非IIS7盒(使用特定的非本地管理员用户),请让我知道。

回答

2

对。稍微有些混乱之后,它看起来像Windows 2008用户帐户控制(UAC)正在阻碍。如果您使用的是其他管理员帐户而不是内置管理员,则UAC的管理员审批模式会启用。

很明显,在自动化脚本(非交互模式)中,您将被拒绝访问,因为您没有在UAC对话框中单击“继续”的选项。

唯一的选择是编辑的安全选项在组策略(GPEDIT.MSC)并设置“运行管理员在管理员批准模式”本地计算机从启用为禁用。

重新启动,你很好。

如果您可以在特定管理员帐户上为管理员审批模式设置UAC例外情况,它实际上会更好,更安全。如果你正在阅读,MS - 把它放在功能列表中!