Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ms_windows_ms_sql:remote_ad_expired_password_reset [2019/09/02 07:07] – created adminms_windows_ms_sql:remote_ad_expired_password_reset [2019/09/02 07:09] (current) admin
Line 1: Line 1:
 +====== Проблема ======
 +Просрочился пароль. Залогиниться не удается. Доступа к консоли компа нет - только удаленный доступ в сеть. \\
 +Как удаленно сбросить просроченный пароль от учетки **Active Directory**, про условии, что она не залочена, старый пароль известен и есть доступ в сеть, пусть даже под учеткой с меньшими привилегиями?
  
 +====== Решение ======
 +Можно применить скрипт **Powershell**:
 +
 +<code>    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' </code>
  • ms_windows_ms_sql/remote_ad_expired_password_reset.txt
  • Last modified: 2019/09/02 07:09
  • by admin