none
Windows 2016 Server: 使用 Windows API NetUserChangePassword 功能- 错误: ERROR_ACCESS_DENIED RRS feed

  • 问题

  • 在 Windows 2016 Server版中,我们想要实现用WINDOWS的接口NetUserChangePassword 去改密码,但遇到了以下问题:

    只用管理员Administrator可以改密成功,其它本地用户,不管是否管理员组的,都会遇到系统错误5:Access is denied.

    同时,使用net命令"net user [userid] [password]"去改密,此用户会出现一样的问题系统错误5:拒绝访问。

    然而这些用户的SE_CHANGE_NOTIFY_NAME都是启用中。

    请问,是什么权限导致拒绝访问吗?能如何配置解决?

    2018年9月29日 2:37

全部回复

  • 你好,

    感谢在微软论坛发帖,

    我在自己的电脑上测试了一下关于你描述的问题,登录一个本地用户(非管理者),打开Cmd命令行工具,输入修改user 密码命令,直接报Access is denied, 但是如果选中Cmd命令行工具,选择以管理者方式运行的话, 就可以成功修改密码了,应该就是涉及到管理者权限问题。 截图如下:


    然后我用MSDN中提供的代码进行测试,得到system 1351 error. 查询了一下 error 1351: Configuration information could not be read from the domain controller, either because the machine is unavailable, or access has been denied, 我将属性-配置属性-连接器-清单文件-Uac执行级别 设置成requireAdministrator结果还是一样。所以应该不只是将应用程序设置成管理者权限就能解决的。

    你有尝试过NetUserSetInfo这个函数吗?

    Best Wishes,

    Jack Zhang


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年10月1日 6:02
    版主
  • 用NetUserSetInfo这个函数是可以的,但我们现在疑惑的是,只有在Windows Server 2016或Windows 10才会出现NetUserChangePassword报ERROR_ACCESS_DENIED的问题,在其他系统中没有这种情况。希望能知道如何配置用户的权限能解决。
    2018年10月10日 4:02