Zezwól użytkownikom na zmianę wygasłego hasła za pomocą połączenia pulpitu zdalnego

13

INFORMACJA:

  • Mam sytuację, w której jestem zmuszony do korzystania z serwera (Windows 2012 R2), który NIE jest częścią domeny i NIE ma AD. To nie jest mój wybór, nie jest optymalny, ale poza moją kontrolą.

  • Mam również lokalnych użytkowników, którzy łączą się z tym serwerem za pośrednictwem protokołu RDP, a lokalni użytkownicy mają zasady dotyczące wygaśnięcia hasła.

  • Ponieważ AD / Exchange nie jest częścią obrazu, użytkownicy nie otrzymują powiadomienia o wygaśnięciu ich haseł.

PROBLEM: Problem polega na tym, że hasło użytkownika wygasło i próbują się zalogować przy użyciu połączenia pulpitu zdalnego. Nie pozwala im to zmienić hasła.

Odznaczono opcję „Zezwalaj na połączenia TYLKO z komputerów z uruchomionym Pulpitem zdalnym z uwierzytelnianiem na poziomie sieci” po stronie serwera, więc serwer NIE wymaga NLA od przychodzących sesji RDP.

Jednak podczas korzystania z Menedżera połączeń pulpitu zdalnego systemu Windows wydaje się wymuszać NLA.

Jeśli korzystam z klienta pulpitu zdalnego „Terminale”, po stronie klienta istnieje opcja wyłączenia używania „Uwierzytelniania na poziomie sieci”. Jeśli wyłączę NLA za pośrednictwem klienta Terminali i połączę się z serwerem, pozwoli mi to zmienić hasło, które wygasło.

PYTANIE: Zakładam, być może niepoprawnie, że program Terminals po prostu siedzi na protokołach Windows Remote Desktop Connection, a jeśli możesz wyłączyć po stronie klienta Uwierzytelnianie na poziomie sieci za pomocą programu Terminals, powinieneś także mieć możliwość wyłącz to za pomocą wbudowanego w Windows Menedżera połączeń pulpitu zdalnego. Niestety nie widzę tej opcji w interfejsie GUI menedżerów połączeń i nie widzę żadnych parametrów w plikach „.RDP” specyficznych dla NLA.

Jeśli kliknę „Informacje” po stronie klienta Menedżera połączeń pulpitu zdalnego, powie mi, że „Obsługiwane jest uwierzytelnianie na poziomie sieci”. Sformułowanie prowadzi mnie do przekonania, że ​​korzystanie z niego jest opcjonalne, ale ponownie nie widzę sposobu, aby wyłączyć go w menedżerze połączeń. BTW, ten konkretny menedżer połączeń to v10.

guht
źródło
1
Zredagowałem twoje pytanie (konkretnie tytuł), aby skupić się na twoim podstawowym celu, zamiast proponowanej metody jego osiągnięcia. Zobacz problem XY .
Mówię: Przywróć Monikę

Odpowiedzi:

13

Możesz to rozwiązać za pomocą dwóch zasad:

1. Zainstaluj rolę RD Web Access i włącz opcję zdalnej zmiany hasła

Poniższe wskazówki pochodzą z artykułu woshub.com Zezwalaj użytkownikom na resetowanie wygasłego hasła za pośrednictwem RD WebAccess w systemie Windows Server 2012 :

W systemie Windows 2012/2012 R2 pojawiła się opcja, która pozwala zdalnemu użytkownikowi zmienić hasło (aktualne lub wygasłe) za pomocą specjalnej strony internetowej na serwerze RD Web Access. Hasło zostanie zmienione w następujący sposób: użytkownik loguje się na stronie internetowej rejestracji na serwerze za pomocą roli RD Web Access i zmienia swoje hasło za pomocą specjalnego formularza.

Opcja zdalnej zmiany hasła jest dostępna na serwerze z rolą Remote Desktop Web Access (RD Web Access), ale jest domyślnie wyłączona. Aby zmienić hasło, używany jest skrypt password.aspx , który znajduje się w C: \ Windows \ Web \ RDWeb \ Pages \ en-US .

  1. Aby włączyć opcję zmiany hasła, na serwerze ze skonfigurowaną rolą RD Web Access otwórz konsolę Menedżera IIS, przejdź do [Nazwa serwera] -> Witryny -> Domyślna witryna sieci Web -> RDWeb -> Strony i otwórz sekcję Ustawienia aplikacji .

    wprowadź opis zdjęcia tutaj

  2. W prawym okienku znajdź parametr PasswordChangeEnabled i zmień jego wartość na true .

    wprowadź opis zdjęcia tutaj

  3. Możesz przetestować mechanizm zmiany hasła przechodząc do następującej strony internetowej:

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

    wprowadź opis zdjęcia tutaj

  4. Teraz, gdy próbujesz połączyć się z serwerem RD Web Access za pomocą wygasłego hasła, użytkownik zostanie przekierowany na stronę password.aspx i zaoferuje zmianę swojego hasła.

    wprowadź opis zdjęcia tutaj

    Tip . Ta sama funkcja systemu Windows Server 2008 R2 może być dostępna po zainstalowaniu specjalnej poprawki - KB2648402 .


2. Włącz monity powiadamiające użytkowników o zbliżającym się wygaśnięciu hasła

  1. Uruchom gpedit.mscna serwerze RDSH, aby otworzyć lokalne zasady grupy
  2. Nagivate to Computer Configuration\Windows Settings\Local Policies\Security Options
  3. Edytuj ustawienie Logowanie interakcyjne: Monituj użytkownika o zmianę hasła przed wygaśnięciem i określ rozsądną liczbę dni, na przykład 14.
  4. Użytkownicy, w tym zalogowani za pomocą pulpitu zdalnego, otrzymają powiadomienie przed wygaśnięciem hasła.
Mówię: Przywróć Monikę
źródło
Dzięki @twisty, powinienem wspomnieć, że zainstalowanie roli serwera pulpitu zdalnego również nie było opcją. Jest to jednak świetna informacja dla kogoś innego w podobnej sytuacji. Podpowiedzi warto jednak wiedzieć!
guht
3
W takim razie nie masz innego wyjścia, jak wyłączyć NLA na serwerze i klientach, aby umożliwić im zmianę hasła. Niebezpiecznie zmniejsza to znacznie bezpieczeństwo połączeń RDP.
Mówię: Przywróć Monikę
10

Okazuje się, że jest to kontrolowane przez niepubliczną właściwość w pliku konfiguracyjnym .RDP o nazwie „enablecredsspsupport”, poprzez ustawienie na „0” ładuje stronę logowania w sesji RDP i pozwala użytkownikowi zmienić wygasłe hasło.

Dokładna składnia wymagana w pliku konfiguracyjnym .RDP to:

enablecredsspsupport: i: 0

Jeśli potrzebujesz dalszych informacji lub lektury, przejdź tutaj: Tyranny uwierzytelniania na poziomie sieci i CredSSP

guht
źródło
7
Działa to tylko wtedy, gdy serwer nie wymaga NLA. W przeciwnym razie pojawi się komunikat informujący, że obsługa na poziomie sieci jest wymagana przez komputer zdalny, ale nie jest obsługiwana na komputerze lokalnym. Powinieneś wyjaśnić, co tak naprawdę robi to ustawienie, prawdopodobnie powołując się na akapit z powiązanego artykułu.
simlev
1
Uwaga: kliknięcie przycisku Zapisz w programie Podłączanie pulpitu zdalnego spowoduje utworzenie pliku konfiguracyjnego Default.rdc. (Kliknij przycisk Zapisz jako, aby zobaczyć, w którym katalogu jest zapisany plik.) To jest plik do edycji, jeśli chcesz domyślnie to ustawienie. Lub możesz umieścić go w innym pliku .RDP, który otwierasz ręcznie, gdy jest to potrzebne.
Bampfer
3

Żadna z opcji nie działała dla mnie, ponieważ mam włączoną NLA. Oto sposób, aby to zmienić za pomocą PowerShell - pełna historia na temat zmiany własnego wygasłego hasła, gdy nie możesz zalogować się do RDP .

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.'
    }
}

Po prostu uruchom, Set-PasswordRemotelya zadadzą ci 4 pytania - nazwa użytkownika, stare hasło, nowe hasło, kontroler domeny i zmień hasło. Działa również z komputera nieprzyłączonego do domeny. Wymaga połączenia z DC.

MadBoy
źródło
możesz użyć ECHO% LOGONSERVER%, aby uzyskać kontroler domeny, to i powyższy PowerShell działały świetnie
Kevinsky