有没有办法在没有管理员权限的情况下从 CMD 行更改密码?
我知道旧密码,我只想通过脚本更改密码,而不能使用 UI。
我知道使用网络用户,但这是密码重置,这将使安全存储无效,而我不想这样做。
答案1
致电NetUserChangePassword()来自 Netapi32.dll 的函数,例如通过 PowerShell:
导入外部函数(使用 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); '@
执行更改:
$netapi32::NetUserChangePassword($env:USERDOMAIN, $env:USERNAME, "OldPassword", "NewPassword")
(代码未经测试;大部分复制自先前的 ServerFault 答案。
对于本地帐户,DomainName 可以是.
本地计算机名称。
它与 使用的函数属于同一类net
,应该适用于任何传统帐户类型,包括本地帐户和 Active Directory 帐户。我不确定它是否适用于 Azure AD 帐户。