Windows:使用命令行更改标准用户的密码

Windows:使用命令行更改标准用户的密码

我想以脚本方式更改当前登录的 Windows 用户(无 Active Directory)的密码。用户有权更改自己的密码,并且已经可以通过 GUI 更改密码。但我无法将其集成到脚本中。

我已尝试过net use %user% %newpassword%但这似乎只有当前用户拥有管理员权限时才有效。

我也尝试过 powershell 脚本:

param (
    [string]$oldPassword = $( Read-Host "Old Password"),
    [string]$newPassword = $( Read-Host "New Password")
)

$MethodDefinition = @'
[DllImport("netapi32.dll", CharSet = CharSet.Unicode)]
public static extern bool NetUserChangePassword(string domainname, string username, string oldPassword, string newPassword);
'@

$NetAPI32 = Add-Type -MemberDefinition $MethodDefinition -Name 'NetAPI32' -Namespace 'Win32' -PassThru

$NetAPI32::NetUserChangePassword('.', $env:username, $oldPassword, $newPassword)

结果为“True”,但没有任何变化。

有谁知道我如何通过脚本更改密码?

答案1

我找到了答案:

$oldpw = "oldpassword"
$newpw = "newpassword"
$user = $env:username
$computer = $env:computername
$user = [adsi]"WinNT://$computer/$user"
$user.ChangePassword($oldpw, $newpw)

这对我有用。谢谢您的回复!

答案2

我没有足够的积分来更改它,但这个问题看起来像是这个

相关内容