如何用IIS Web Portal管理windows user password

大多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 开发者支持组