有没有办法让非域计算机(本例中为 Windows 7 开发虚拟机)上的 IIS7 使用域帐户作为 AppPool 身份?我可以输入凭据(域/用户名等),但 AppPool 会抛出错误,提示帐户没有“批量登录权限”。
我无法通过 Google 找到任何可以帮助我解决这个问题的东西,所以我认为这可能是不可能的。
答案1
在我看来这几乎是不可能的。“加入域”会在计算机(对象)和域(服务)之间建立基于信任的关系。
例如,调整用户权限的最简单方法是利用本地安全策略(安全设置/本地策略 mmc 管理单元)。
但您可以使用ntrights.exe
。我这里只有一个域,但测试类似的情况很容易:
我在 COMPUTERA 上。我在 COMPUTERB 上创建了一个帐户 dummyuser(即用户是 computerb\dummyuser)
当我跑步时:
NTRIGHTS +r SeBatchLogonRight -u computerb\dummyuser
我收到一个错误:
Granting SeBatchLogonRight to computerb\dummyuser ... failed (GetAccountSid(computerb\dummyuser)=1332
C:\>net helpmsg 1332
返回:No mapping between account names and security IDs was done.
这很简单。即使以域管理员用户身份运行(因此,该用户本质上是 computerb 上本地管理员组的一部分),我执行操作的凭据也不会通过。
测试这一点的一个好方法很简单...在你的虚拟机上运行:
runas /user:domain\administrativeuser cmd.exe
我预计这会失败,1326: Logon failure: unknown user name or bad password,
因为本地机器不知道domain
是什么,所以它肯定不值得信任。
这一切的真正含义是,无论您是否在其中获得条目,本地计算机在尝试任何操作时都不会知道用户是谁,除非它可以根据其所属的数据库(您的域的 AD)对该用户进行身份验证。
我想看看是否还有其他人有解决方案。
答案2
那么,为什么需要使用域用户作为应用程序池 ID?
您可以创建一个镜像的本地用户帐户并使用它,并且如果它需要使用凭据获取机外信息,它就可以使用它们......
但是,作为域用户,还有其他关键特征无法捕获。
我想不出一个很好的用例;为什么不直接将虚拟机加入到域中呢?