我正在使用IIS8 / Windows 2012上的IISADMPWD页面,并且发现远程服务器上的密码更改的pipe理权限不是必需的。 我希望有人能够说明为什么。 正如所料,如果我尝试net user username newpassword我得到拒绝作为一个普通用户(不是本地pipe理员)的访问。 这是我的设置:
remote.server\username以及旧密码和新密码。 set pUser = GetObject("WinNT://" & domain & "/" & username & ",user") pUser.ChangePassword Request.Form("old"), Request.Form("new") 我的问题是,当我用来运行应用程序池(从而执行VBScript)的帐户是目标服务器上用户组的成员时,密码已更改。 我的印象是,只有本地pipe理员可以更改本地帐户的密码,但这个“testing”似乎是弯曲的规则。
我使用Wireshark跟踪事务,可以看到stream量超过445 / tcp,包括使用运行应用程序池的用户名的SMB2authentication步骤,但其余大部分stream量都是DCERPC,不是真正的人类可读的,至less我。
在查看安全事件日志时,当使用IISADMPWD更改密码时,我看到远程身份validation通信将被logging,而来自用户帐户pipe理的事件ID为4723,但没有别的。 当我运行net user更改密码时,我看到事件ID 4738和4724表示密码更改成功。
任何熟悉Windows内部的人都有任何想法,或者为什么通常的pipe理员需求似乎被忽略了? 我浏览了gpresult / h,并没有对默认安全性或(任何)GPO设置进行任何更改。
****编辑****
我做了一些进一步的testing,看起来只有更改密码是允许的。 设置密码仍然给出预期的访问拒绝错误消息。 仅供参考,使用Powershell中的[ADSI]对象进行testing非常简单。
这并不重要,但是我在testing期间运行过ProcMon,基本上所有networkingstream量和registry更改(对于密码的SAM)都是通过以SYSTEM身份运行的服务完成的。 中小型企业似乎正在进行authentication(鉴于我以前的Wireshark捕获),但我没有看到权利validation的任何证据。
是否有任何地方的文件说明或提到能够更改其他用户的密码,如果当前的密码是已知的?