Windows: altere a própria senha do usuário padrão usando a linha de comando

1

Eu quero alterar a senha do usuário atual do Windows conectado (sem o Active Directory) de uma maneira que possa ser gravada. Os usuários têm o direito de alterar suas próprias senhas e já podem alterar a senha via GUI. Mas não tenho como integrar isso em um script.

Eu tentei net use %user% %newpassword% , mas isso parece funcionar apenas se o usuário atual tiver direitos de administrador.

Eu também testei um script do 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)

Isso dá "True", mas nada muda.

Alguém tem uma ideia de como eu posso mudar a senha via script?

    
por Colorando 25.03.2015 / 17:08

2 respostas

1

Eu encontrei a resposta:

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

Isso funcionou para mim. Obrigado pelas suas respostas!

    
por 25.03.2015 / 20:52
0

Não tenho pontos suficientes aqui para alterá-lo, mas essa questão parece uma duplicata de este .

    
por 25.03.2015 / 19:59