Windows: измените собственный пароль типичного пользователя при помощи командной строки

Я хочу измениться, пароль тока вошел в систему пользователь Windows (никакой Active Directory) scriptable способом. Пользователи имеют право изменить их собственные пароли и уже могут изменить пароль через 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)

Это дает "Верный", но ничто не изменяется.

У кого-либо есть идея, как я могу изменить пароль с помощью сценария?

1
задан 25 March 2015 в 18:08
2 ответа

Я нашел ответ:

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

У меня это сработало. Спасибо за ответы!

1
ответ дан 4 December 2019 в 00:10

У меня недостаточно очков, чтобы изменить его, но этот вопрос выглядит как дубликат этого .

0
ответ дан 4 December 2019 в 00:10

Теги

Похожие вопросы