Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
大多IIS用户都可能还记得我们曾经用老的版本的IIS(例如IIS 5或者IIS 6)架设的叫做IISADMPWD的web application。这个应用对domain user更改密码很有用。可能很多人还在想既然我可以通过简单的Ctrl+Alt+Delete来更改密码,那这个还有什么用呢?我们先来看一个例子。
IISAPDPWD in Use
当我不在办公室的时候必须要通过OWA来收发邮件。然而,由于我忘记更新我的密码而且它已经过期,我没有能够成功的收到重要邮件。(VPN可能能够帮我解决,但是如果我同样不能连接VPN)
IT部门帮助我设置了IISADMPWD,这样我就可以进入一个页面来更改我的密码。现在OWA又恢复了正常,我也能够成功的检查到邮件!
IISAPDPWD Setup (for IIS 5/6 )
下面文章可以帮助我们在IIS 5和6设置这样一个web application。
https://support.microsoft.com/kb/269082
https://support.microsoft.com/kb/833734
Tony DeCock提供了一篇文章,介绍可能在此过程中碰到的各种问题。
https://support.microsoft.com/kb/907271
IISAPDPWD on IIS 7
IIS 7中不再有IISAPDPWD这个功能。因此在Windows Server 2008下也没有IISADMPWD目录。这样除了使用VPN,我们还有别的办法来更改密码么?事实上如果我们从Windows Server 2003 box上拿到一份IISADMPWD的copy并且把它作为一个ASP/COM应用来使用,它也是可以帮助我们来更改密码的。解决方案如下:
- 1. 复制Server 2003 box到Server 2008 box,在这边我用的是C:\Windows\system32\inetsrv\Iisadmpwd on Server 2008。
- 2. 在IISADMPWD目录下注册IISpwchg.dll文件
- a. 打开一个命令运行栏。
- b. 在Open box中,输入下述命令后按Enter:regsvr32 c:\windows\system32\inetsrv\iisadmpwd\iispwchg.dll
- 3. 配置PasswordChangeFlags特性,注意Password Change功能必须开启:
- a. 打开一个命令运行栏。
- b. 进入C:\Inetpub\Adminscripts目录(注意IIS 6 Scripting Tools feature必须打开)
- c. 输入以下命令,按enter:
cscript.exe adsutil.vbs set w3svc/passwordchangeflags Value
注意这里Value为你所设置的PasswordChangeFlags的位置标识符,有如下几个数值,也可以使用它们的组合数值:
- 0:默认值。这个值表明当你试图更改密码的时候一定要使用安全网路连接(SSL)
- 1:这个值允许对non-secure端口进行密码更改。如果SSL被禁用的话可以使用这个值。
- 2:这个值禁用了密码更改功能。
- 4:这个值禁用了密码过期提示。
- 4. 在IISADMPWD目录下创建一个应用:
- a. 打开IIS Manager,左边面板右键Default Web Site节点。
- b. 选中Add Application。在对话框中,输入alias(我用的是IISADMPWD)和路径(C:\Windows\system32\inetsrv\Iisadmpwd)。然后选中Select来选择一个合适的application pool,点击两次OK就可以了。
- 5. 现在就可以进入password change的页面:https://<server>/iisadmpwd/aexp4b.asp(或者https的页面)
注释:
如果只有x86版本的Server 2003,但是Server 2008却是x64版本,上诉步骤要稍作修改:首先,必须复制文件到%windir%\SysWOW64\inetsrv文件夹中,这个路径也要在之后介绍的步骤中用到。然后,application必须在一个32-bit的application pool中。
微软全球技术支持中心Internet 开发者支持组