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"
更改 IUSR 帐户
cscript.exe adsutil.vbs set w3svc/anonymoususername "username"
设置 IWAM 帐户密码
cscript.exe adsutil.vbs set w3svc/wamuserpass "password"
更改 IWAM 帐户
cscript.exe adsutil.vbs set w3svc/WAMusername "username"
注意:在 Windows NT 4.0 中尝试获取密码时,密码显示为明文;但在 Windows 2000 中,密码显示为星号。若要在 Windows 2000 中也让密码显示为明文,必须修改 Adsutil.vbs,使它显示明码。为此,请按照下列步骤操作:
1.在“记事本”中,打开 Adsutil.vbs。
2.在“编辑”菜单上,单击“查找”,键入 IsSecureProperty = True,然后单击“查找下一个”。
3.将“IsSecureProperty = True”更改为“IsSecureProperty = False”。
4.保存对 Adsutil.vbs 所做的更改,然后关闭“记事本”。
此问题解决的一般步骤:
微软提出了两种解决的办法,
方法1:在用户管理器或用户和组中更改密码,使其与 IIS 元数据库密码匹配。
方法2:更改 IIS 元数据库,使其与 IUSR 和/或 IWAM 密码匹配。
命令列表在上面。
最后运行:
cscript.exe synciwam.vbs -v
注意:修改密码前请一定停止所有的Internet信息服务,否则后面可能会出错,并且IWAM帐户可能会被锁定。需要手动到用户管理-IUSR属性里解除锁定。
网上流传较广的方法是第二种,但第一种更安全,因为不用手动修改iusr和iwam的密码,系统生成的密码(IIS元数据库)更安全。
在运行cscript.exe synciwam.vbs -v时,你可能会遇到:
Updating Applications:
Name: IIS Out-Of-Process Pooled Applications Key:
{3D14228D-FBE1-11D0-995D-00C04FD919C1}
Error: 80110414
这个问题可能是iusr和iwam密码仍然不同步(请检查你前面输入)或与COM++组件服务有关。
关于Error: 80110414的解释:微软知识库的地址是:http://support.microsoft.com/kb/269367/en-us/,如果这个步骤不能完全解决问题或遇到其他异常,请参见以下内容:
进入组件服务->计算机->我的电脑->COM+应用程序->IIS Out-Of-Process Pooled Applications,右击IIS Out-Of-Process Pooled Applications->属性切换到IIS Out-Of-Process Pooled Applications属性对话框的"标识"选项卡。"此应用程序在下列账户下运行"选择中"此用户"会被选中,用户名是"IWAM_***"。这些都是缺省的,不必改动。在下面的" 密码"和"确认密码"文本框内输入刚才设置的密码"password",确定退出,然后再次执行cscript.exe synciwam.vbs -v,如果这次没有提示"Error:80110414"错误,那么问题已经解决完毕。
注意1:在展开COM+应用程序时,可能出现“错误代码8004E00F-COM+无法与Microsoft分布式事物协调程序交谈"的错误。这可能是因为MS DTC日志文件被误删了。
运行net start msdtc
如果显示“distributed transaction coordinator 服务不能启动”,就把C:/WINDOWS/system32/dtclog这个目录重命名(如果有的话,没有就直接省去这一步),然后重新建立该目录。
运行:msdtc -resetlog,再输入net start msdtc,显示服务启动成功。
再次启动COM+便可展开"COM+应用程序"。
注意2:在"COM+ 应用程序中"展开后根本找不到IIS Out-Of-Process Pooled Applications的话用以下方式重建IIS Out-Of-Process Pooled Applications:
开始菜单->运行->cmd打开命令提示窗口
输入cd %windir%/system32/inetsrv切换到system32下inetsrv目录
输入rundll32 wamreg.dll, CreateIISPackage
注意:必须准确键入"CreateIISPackage"它区分大小写
输入regsvr32 asptxn.dll
关闭并重新打开"组件服务"。