사용자가 원격 데스크톱 연결을 통해 만료 된 비밀번호를 변경할 수 있도록 허용 관리자를 사용하는 경우

정보:

  • 도메인에 속하지 않으며 AD가없는 서버 (Windows 2012 R2)를 사용해야하는 상황이 있습니다. 이것은 나의 선택이 아니며, 최적의 것이 아니라 통제 할 수없는 것입니다.

  • 또한 RDP를 통해이 서버에 연결하는 로컬 사용자가 있으며 로컬 사용자에게는 암호 만료 정책이 있습니다.

  • AD / Exchange는 그림의 일부가 아니므로 암호가 곧 만료된다는 알림을받지 않습니다.

문제 :
문제는 사용자의 암호가 만료되어 원격 데스크톱 연결을 사용하여 로그인을 시도한 경우입니다. 비밀번호를 변경할 수 없습니다.

서버 쪽에서 “네트워크 수준 인증을 사용하는 원격 데스크톱을 실행하는 컴퓨터에서만 연결 허용”을 선택 해제 했으므로 서버는 들어오는 RDP 세션에서 NLA를 요구하지 않습니다.

그러나 Windows 원격 데스크톱 연결 관리자를 사용하는 경우 NLA가 적용되는 것 같습니다.

“터미널”원격 데스크톱 클라이언트를 사용하는 경우 “네트워크 수준 인증”을 사용하지 않도록 설정하는 옵션이 클라이언트 측에 있습니다. 터미널 클라이언트를 통해 NLA를 비활성화하고 서버에 연결하면 사용자 만료 암호를 변경할 수 있습니다.

질문 :
터미널 프로그램이 Windows 원격 데스크톱 연결 프로토콜 위에 있고 터미널 프로그램을 통해 네트워크 수준 인증 클라이언트를 비활성화 할 수 있다고 가정 할 수도 있습니다. Windows 기본 제공 원격 데스크톱 연결 관리자를 통해이 기능을 비활성화하십시오. 불행히도 연결 관리자 GUI에는이 옵션이 표시되지 않으며 NLA와 관련된 “.RDP”파일에는 매개 변수가 표시되지 않습니다.

클라이언트 쪽 원격 데스크톱 연결 관리자에서 “정보”를 클릭하면 “네트워크 수준 인증이 지원됩니다”라는 메시지가 표시됩니다. 이 문구는 사용하는 것이 선택 사항이라고 믿게하지만 연결 관리자 에서이 기능을 끌 수있는 방법은 없습니다. BTW,이 특정 연결 관리자는 v10입니다.



답변

두 가지 방법 으로이 문제를 해결할 수 있습니다.

1. RD 웹 액세스 역할을 설치하고 원격 암호 변경 옵션을 활성화합니다

다음 지침은 woshub.com 기사 사용자가 Windows Server 2012에서 RD WebAccess를 통해 만료 된 비밀번호를 재설정 할 수 있도록 허용합니다 .

Windows 2012/2012 R2에서는 원격 사용자가 RD 웹 액세스 서버의 특수 웹 페이지를 사용하여 암호 (현재 또는 만료 된 암호)를 변경할 수있는 옵션이 나타났습니다. 비밀번호는 다음과 같이 변경됩니다. 사용자가 RD 웹 액세스 역할을 사용하여 서버의 등록 웹 페이지에 로그인 한 후 특수 양식을 사용하여 비밀번호를 변경합니다.

RD 웹 액세스 (원격 데스크톱 웹 액세스) 역할이있는 서버에서 원격 암호 변경 옵션을 사용할 수 있지만 기본적으로 비활성화되어 있습니다. 암호를 변경하려면 C : \ Windows \ Web \ RDWeb \ Pages \ en-US에 있는 스크립트 password.aspx 가 사용됩니다 .

  1. 암호 변경 옵션을 활성화하려면 RD 웹 액세스 역할이 구성된 서버에서 IIS 관리자 콘솔 을 열고 [서버 이름] –> 사이트 –> 기본 웹 사이트 –> RDWeb –> 페이지로 이동하여 응용 프로그램 설정 섹션을 엽니 다 .

  2. 오른쪽 분할 창에서 PasswordChangeEnabled 매개 변수를 찾고 해당 값을 true로 변경하십시오 .

  3. 다음 웹 페이지로 이동하는 비밀번호 변경 메커니즘을 테스트 할 수 있습니다.

    https : //RDSServerName/RDWeb/Pages/en-US/password.aspx

  4. 이제 만료 된 암호로 RD 웹 액세스 서버에 연결하려고하면 사용자가 password.aspx 웹 페이지로 리디렉션되고 암호를 변경하라는 제안이 표시됩니다.

    . 특수 패치 KB2648402 를 설치 한 후 동일한 Windows Server 2008 R2 기능을 사용할 수 있습니다 .


2. 보류중인 암호 만료를 사용자에게 알리는 프롬프트를 활성화합니다.

  1. gpedit.mscRDSH 서버에서 실행 하여 로컬 그룹 정책을 엽니 다.
  2. 나기 테 Computer Configuration\Windows Settings\Local Policies\Security Options
  3. 편집은 설정 이 만료되기 전에 암호 변경할지 묻는 메시지를 : 대화 형 로그온 과 같은 14로, 일의 적절한 수와 지정합니다.
  4. 원격 데스크톱을 통해 로그인 한 사용자를 포함하여 사용자는 비밀번호가 만료되기 전에 알림을받습니다.

답변

“enablecredsspsupport”라는 .RDP 구성 파일에 나열되지 않은 속성을 통해 제어되는 것으로 나타났습니다.이 값을 “0”으로 설정하면 RDP 세션에 로그인 페이지가로드되고 만료 된 암호를 변경할 수 있습니다.

.RDP 구성 파일에 필요한 정확한 구문은 다음과 같습니다.

enablecredsspsupport : i : 0

추가 참조 또는 읽기가 필요한 경우 여기로 이동하십시오 :
네트워크 레벨 인증 및 CredSSP의 폭정


답변

NLA를 사용하도록 설정 한 후 어떤 옵션도 효과가 없었습니다. RDP에 로그인 할 수 없을 때 만료 된 암호를 변경하는 방법에 대한 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하면 사용자 이름, 이전 비밀번호, 새 비밀번호, 도메인 컨트롤러 및 비밀번호 변경 등 4 가지 질문이 표시됩니다. 도메인에 가입하지 않은 PC에서도 작동합니다. DC에 연결해야합니다.