最近在使用IIS的时候,突然发现之间什么网站都无法打开了,所有网页在本机通过IIS访问时,都显示"HTTP 500 - Internal server error",开了所有的权限还是不行,最后发现是匿名用户访问设置上出了问题。
具体的逻辑是这样的:IIS如果需要对匿名用户开放浏览权限,必须要打开IWAM_hostname这个用户。这个用户是“启动 IIS 进程帐户”,是用于启动进程外应用程序的 Internet 信息服务的内置帐户,所以要保证两点:第一、必须保证这个用户被启用;第二、必须保证这个用户的密码与IIS数据库中存储的密码一致。
启用用户还是比较简单的,但是保持密码一致的问题就比较复杂一点,在网上查了一下资料,方法如下:
IUSR_和IWAM_计算机名帐户的用户名和密码
IUSR_ 计算机名 和 IWAM_ 计算机名 帐户的用户名和密码存储于以下三个位置:
1、Internet Information Server (IIS) 配置数据库
2、
域用户管理器 (Windows NT) 或本地用户和组 (Windows 2000)
3、
Microsoft Transaction Server (Windows NT) 或组件服务 (Windows 2000)
如果这三个位置的用户名和/密码不同步,将出现下述问题:当您浏览现有的 Active Server Pages (ASP) 页时,浏览器可能返回"HTTP 500 - Internal server error"或"Server Application Error"的错误信息。
若要解决此问题,您必须确保上述三个位置的 IUSR 和 IWAM 帐户密码是同步的。同步方式有两种:在用户管理器 (Windows NT) 或用户和组 (Windows 2000) 中设置 IWAM 和 IUSR 帐户的密码,在 IIS 配置数据库中更改密码,由此而使用相同的密码。或者,在 IIS 配置数据库中设置密码,在用户管理器 (Windows NT) 或用户和组 (Windows 2000) 中更改密码。
方法 1:在用户管理器或用户和组中更改密码,使它们与 IIS 配置数据库密码一致
1.在"命令"窗口中,找到 Adsutil.vbs 文件所在的文件夹。使用 Adsutil.vbs 工具从 IIS 配置数据库获得 IWAM 和 IUSR 帐户的密码。
2.若要在 Windows NT 中更改 IUSR 和/或 IWAM 密码,请按照下列步骤操作:
a.在开始菜单上,依次指向程序-管理工具,然后单击域用户管理器。在"域用户管理器"中,可以更改所有 Windows NT 用户帐户和组的帐户信息。
b.双击 IUSR_ 计算机名 和/或 IWAM_ 计算机名 用户,然后修改密码,使它们与第 1 步获得的 IIS 配置数据库密码一致。
若要在 Windows 2000 中更改 IUSR 和/或 IWAM 密码,请按照下列步骤操作:
c.在开始菜单上,依次指向程序、管理工具,然后单击计算机管理。
d.在系统工具节点下面,单击展开"本地用户和组"和"用户"节点。在"用户"节点中,可以更改所有 Windows 2000 用户帐户和组的帐户信息。
e.右键单击 IUSR_ 计算机名和/或 IWAM_ 计算机名帐户,然后单击设置密码。
f.修改密码,使它们与第 1 步获得的 IIS 配置数据库密码一致。
3.浏览返回错误信息的 ASP 页,检查问题是否已解决。
方法 2:更改 IIS 配置数据库密码,使它与 IUSR 和/或 IWAM 密码一致
1.若要在 Windows NT 中更改 IUSR 和/或 IWAM 密码,请按照下列步骤操作:
a.在开始菜单上,依次指向程序、管理工具,然后单击域用户管理器。在"域用户管理器"中,可以更改所有 Windows NT 用户帐户和组的帐户信息。
b.双击 IUSR_ 计算机名 和/或 IWAM_ 计算机名 帐户,然后键入新密码。
若要在 Windows 2000 中更改 IUSR 和/或 IWAM 密码,请按照下列步骤操作:
c.在开始菜单上,依次指向程序、管理工具,然后单击计算机管理。
d.在系统工具节点下面,单击展开"本地用户和组"和"用户"节点。在"用户"节点中,可以更改所有 Windows 2000 用户帐户和组的帐户信息。
e.右键单击 IUSR_ 计算机名和/或 IWAM_ 计算机名 帐户,然后单击设置密码。键入新密码。
2.在"命令"窗口中,找到 Adsutil.vbs 文件所在的文件夹。使用 Adsutil.vbs 实用工具为 IIS 配置数据库中的 IWAM 和 IUSR 帐户设置密码。
3.浏览返回错误信息的 ASP 页,检查问题是否已解决。
如何使用 Adsutil.vbs
IIS 提供了名为 Adsutil.vbs 的脚本文件,用于获取或设置 IIS 配置数据库中的 IUSR 和 IWAM 帐户密码。
在 Windows NT 4.0 中,Adsutil.vbs 通常位于 <驱动器>\WINNT\System32\Inetsrv\Adminsamples 文件夹。
在 Windows 2000,Adsutil.vbs 位于 <驱动器>\Inetpub\Adminscripts 文件夹。
下表列出 Adsutil.vbs 实用工具各种功能的语法:
功能 语法
----------------- -----------------------------------------------
获取 IUSR 帐户密码 cscript.exe adsutil.vbs get w3svc/anonymoususerpass
获取 IWAM 帐户密码 cscript.exe adsutil.vbs get w3svc/wamuserpass
设置 IUSR 帐户密码 cscript.exe adsutil.vbs set w3svc/anonymoususerpass "password"
设置 IWAM 帐户密码 cscript.exe adsutil.vbs set w3svc/wamuserpass "password"
备注:在 Windows NT 4.0 中尝试获取密码时,密码显示为明文;但在 Windows 2000 中,密码显示为星号。若要在 Windows 2000 中也让密码显示为明文,必须修改 Adsutil.vbs,使它显示明码。为此,请按照下列步骤操作:
1.在记事本中打开 Adsutil.vbs。
2.在"编辑"菜单上,单击查找,键入 IsSecureProperty = True,然后单击查找下一个。
3.将"IsSecureProperty = True"更改为"IsSecureProperty = False"。
4.保存对 Adsutil.vbs 所做的更改,然后关闭记事本。
*****************************************************************************************************
cscript 语法:
C:\Inetpub\AdminScripts>cscript
Microsoft (R) Windows Script Host Version 5.6
版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。
用法:CScript scriptname.extension [option...] [arguments...]
选项:
//B 批模式:不显示脚本错误及提示信息
//D 启用 Active Debugging
//E:engine 使用执行脚本的引擎
//H:CScript 将默认的脚本宿主改为 CScript.exe
//H:WScript 将默认的脚本宿主改为 WScript.exe (默认)
//I 交互模式(默认,与 //B 相对)
//Job:xxxx 执行一个 WSF 工作
//Logo 显示徽标(默认)
//Nologo 不显示徽标:执行时不显示标志
//S 为该用户保存当前命令行选项
//T:nn 超时设定秒:允许脚本运行的最长时间
//X 在调试器中执行脚本
//U 用 Unicode 表示来自控制台的重定向 I/O
另:同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:\inetput\adminscripts>cscript synciwam.vbs -v
*****************************************************************************************************
-The End-