Windows 更改密码

Windows 更改密码

有没有办法在没有管理员权限的情况下从 CMD 行更改密码?

我知道旧密码,我只想通过脚本更改密码,而不能使用 UI。

我知道使用网络用户,但这是密码重置,这将使安全存储无效,而我不想这样做。

答案1

致电NetUserChangePassword()来自 Netapi32.dll 的函数,例如通过 PowerShell:

  1. 导入外部函数(使用 C#P/调用句法):

    $netapi32 = Add-Type -PassThru -Name NetAPI32 -MemberDefinition @'
        [DllImport("netapi32.dll", CharSet = CharSet.Unicode)]
        public static extern bool NetUserChangePassword(string DomainName,
                                                        string UserName,
                                                        string OldPassword,
                                                        string NewPassword);
    '@
    
  2. 执行更改:

    $netapi32::NetUserChangePassword($env:USERDOMAIN,
                                     $env:USERNAME,
                                     "OldPassword",
                                     "NewPassword")
    

(代码未经测试;大部分复制自先前的 ServerFault 答案

对于本地帐户,DomainName 可以是.本地计算机名称。

它与 使用的函数属于同一类net,应该适用于任何传统帐户类型,包括本地帐户和 Active Directory 帐户。我不确定它是否适用于 Azure AD 帐户。

相关内容