Проблема
Просрочился пароль. Залогиниться не удается. Доступа к консоли компа нет - только удаленный доступ в сеть.
Как удаленно сбросить просроченный пароль от учетки Active Directory, про условии, что она не залочена, старый пароль известен и есть доступ в сеть, пусть даже под учеткой с меньшими привилегиями?
Решение
Можно применить скрипт Powershell:
function Set-PasswordRemotely { [CmdletBinding()] param( [Parameter(Mandatory = $true)][string] $UserName, [Parameter(Mandatory = $true)][string] $OldPassword, [Parameter(Mandatory = $true)][string] $NewPassword, [Parameter(Mandatory = $true)][alias('DC', 'Server', 'ComputerName')][string] $DomainController ) $DllImport = ' [DllImport("netapi32.dll", CharSet = CharSet.Unicode)] public static extern bool NetUserChangePassword(string domain, string username, string oldpassword, string newpassword); ' $NetApi32 = Add-Type -MemberDefinition $DllImport -Name 'NetApi32' -Namespace 'Win32' -PassThru if ($result = $NetApi32::NetUserChangePassword($DomainController, $UserName, $OldPassword, $NewPassword)) { Write-Output -InputObject 'Password change failed. Please try again.' } else { Write-Output -InputObject 'Password change succeeded.' } } Set-PasswordRemotely 'username' 'OlD_Pa$$W0Rd' 'NeW_P@$$W0rD' 'domain_controller.domain.local'
Discussion