Назад | Перейти на главную страницу

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

Я хочу изменить пароль текущего вошедшего в систему пользователя Windows (без Active Directory) с помощью сценариев. Пользователи имеют право изменять свои собственные пароли и уже могут изменить пароль через графический интерфейс. Но у меня нет возможности интегрировать это в сценарий.

я пробовал 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)

Это дает «Истина», но ничего не меняется.

Кто-нибудь знает, как я могу изменить пароль через скрипт?

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

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

Это сработало для меня. Спасибо за ваши ответы!

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