Windows 7 Podłączanie pulpitu zdalnego Zapisywanie poświadczeń nie działa

40

Jak zezwolić na zapisywanie poświadczeń podczas łączenia się z innym komputerem za pomocą Podłączania pulpitu zdalnego?

tło

próbuję połączyć się z serwerem, a klient pulpitu zdalnego nie ma zapisanych poświadczeń:

wprowadź opis zdjęcia tutaj

Aby spróbować zapisać poświadczenia, zaznaczam opcję Pozwól mi zapisać poświadczenia :

wprowadź opis zdjęcia tutaj

inicjuję połączenie, wprowadzam hasło i zauważam, że zaznaczona jest opcja Zapamiętaj moje dane uwierzytelniające :

wprowadź opis zdjęcia tutaj

Po połączeniu z serwerem upewniam się, że opcje zasad grupy lokalnej

Zasady komputera lokalnego Configuration Konfiguracja komputera ➞ Szablony administracyjne ➞ Składniki systemu Windows ➞ Usługi pulpitu zdalnego ➞ Klient połączenia pulpitu zdalnego

  • Monituj o poświadczenia na komputerze klienckim
  • Nie zezwalaj na zapisywanie haseł

które domyślnie zezwala na zapisywanie haseł, a domyślne nie pyta o poświadczenia, są zmuszane do zezwalania na zapisywanie haseł i zmuszane do nie monitowania o hasła:

wprowadź opis zdjęcia tutaj

I biegam, gpupdate /forceaby upewnić się, że używane są ustawienia wymuszonego wyłączenia .

Powtórz powyższe kroki 4 lub 5 razy, po raz 6, tworząc zrzuty ekranu dla pytania dotyczącego przepływu stosu .

Zauważ, że klient usługi Podłączanie pulpitu zdalnego odmawia zapisania mojego hasła, zauważając:

Podczas łączenia zostaniesz poproszony o podanie poświadczeń

wprowadź opis zdjęcia tutaj

Pytanie brzmi: w jaki sposób zapisać poświadczenia podczas łączenia z komputerem?

Wypróbowano dodatkowe rzeczy

Jak sugerowano:

Próbowałem umożliwienie „Zezwalaj na delegowanie zapisanych poświadczeń NTLM tylko do uwierzytelniania serwera” na TERMSRV/*na gpedit.mscna kliencie (np Windows 7) maszyny:

wprowadź opis zdjęcia tutaj

Ludzie sugerują to, nie zdając sobie sprawy, że dotyczy to tylko uwierzytelniania NTLM. NTLM jest przestarzały, niepewny i nie powinien być używany :

NTLM to przestarzały protokół uwierzytelniania z wadami, które potencjalnie zagrażają bezpieczeństwu aplikacji i systemu operacyjnego. Chociaż Kerberos jest dostępny od wielu lat, wiele aplikacji wciąż jest napisanych tak, aby używać tylko NTLM. To niepotrzebnie zmniejsza bezpieczeństwo aplikacji.

Tak czy inaczej: to nie działało.

Informacje o bonusie

  • wypróbowałem zarówno nowoczesne, jak [email protected]i starsze avatopia.com\ianformaty nazw użytkowników
  • próbował ustawić zasady grupy na kontrolerze domeny
  • 64-bitowy klient Windows 7 Professional
  • Serwer Windows Server 2008 R2
  • Serwer Windows Server 2008
  • Serwer Windows Server 2012
  • Serwer Windows Server 2003 R2
  • wszystko w tle jest tylko wypełniaczem, aby wyglądało na to, że „podjąłem wysiłek badawczy” ; możesz to zignorować; włączając tę ​​linię, która mówi o ignorowaniu tej linii

załącznik A

Klientem jest system Windows 7, łączący się z systemem Windows Server 2008 R2 za pośrednictwem protokołu RDP 7.1, z serwerem korzystającym z automatycznie wygenerowanego certyfikatu:

wprowadź opis zdjęcia tutaj

Klient uwierzytelnił tożsamość serwera:

wprowadź opis zdjęcia tutaj

Dzieje się tak również podczas łączenia z Windows Server 2008 i Windows Server 2012 (wszystkie z klienta Windows 7). Wszystkie maszyny są przyłączone do tej samej domeny.

Załącznik B

Wynikowy zestaw zasad ( rsop.msc) na kliencie zawsze wyświetla monit o podanie hasła przy ustawianiu połączenia na Wyłączone :

wprowadź opis zdjęcia tutaj

Załącznik C

Wyniki połączenia z każdym serwerem, jaki mogę znaleźć. myliłem się, kiedy powiedziałem, że nie udaje się przy żadnym połączeniu z Server 2003 . Problem jest ograniczony do Server 2008 , 2008 R2 i 2012 :

  • Windows Server 2000: Tak *
  • Windows Server 2000: Tak *
  • Windows Server 2003: Tak
  • Windows Server 2003 R2: Tak
  • Windows Server 2003 R2: Tak (kontroler domeny)
  • Windows Server 2003 R2: Tak
  • Windows Server 2008: Nie
  • Windows Server 2008: Nie
  • Windows Server 2008 R2: Nie
  • Windows Server 2008 R2: Nie
  • Windows Server 2012: Nie
  • Windows Server 2012: Nie

* wskazuje, że użyje zapisanych danych logowania, ale musi ponownie wprowadzić hasło na ekranie logowania 2000

Czytanie bonusowe

Ian Boyd
źródło
Jeśli przejdziesz do, Server Manager -> Roles -> Remote Desktop Services -> RD Session Host Configurationkliknij dwukrotnie połączenie (prawdopodobnie o nazwie „RDP-Tcp”), co jest ustawione dla Certyfikatu na karcie ogólnej? W przeszłości miałem problemy, w których gdyby klient nie przestrzegał certyfikatu, nie zapisywałby poświadczeń.
Scott Chamberlain,
Również ustawienia GP pokazane na zrzucie ekranu są ustawieniami po stronie klienta. Sprawdź ustawienia ustawione na kliencie łączącym się z serwerem. (użyj, rsop.mscaby szybko zobaczyć, jakie ustawienia zasad są ustawione na kliencie)
Scott Chamberlain
Czy używasz RDP 8? Czy to wszystko dzieje się w jednej domenie, czy więcej?
harrymc
@ScottChamberlain Dodano zrzut ekranu. Zakładka ogólna mówi, że certyfikat to „Wygenerowane automatycznie” .
Ian Boyd
Czy klient i serwer są w tej samej domenie?
Scott Chamberlain,

Odpowiedzi:

17

znalazłem rozwiązanie. Było to jednocześnie subtelne i oczywiste.

Jak wspomniano w pytaniu, kiedy modyfikowałem następujące ustawienia zasad grupy klienta połączenia pulpitu zdalnego :

  • Monituj o poświadczenia na komputerze klienckim
  • Nie zezwalaj na zapisywanie haseł

sprawdzałem je na serwerze :

wprowadź opis zdjęcia tutaj

myślałem, że to serwer dyktuje, co klient może robić. Okazuje się, że jest to całkowicie błędne. To była odpowiedź @ mpy (choć niepoprawna), która doprowadziła mnie do rozwiązania. nie powinienem patrzeć na zasady klienta RDP na serwerze RDP , muszę spojrzeć na zasady klienta RDP na moim komputerze klienta RDP :

wprowadź opis zdjęcia tutaj

Na moim klienckim komputerze z systemem Windows 7 zasada była następująca:

  • Nie zezwalaj na zapisywanie haseł: Włączone
  • Monituj o poświadczenia na komputerze klienckim: włączone

nie wiem, kiedy te opcje były włączone (nie włączałem ich w ostatniej pamięci). Mylące jest jednak to, że

Nie zezwalaj na zapisywanie haseł

jest włączony, klient RDP nadal zapisuje hasło; ale tylko dla serwerów poniżej Windows Server 2008.

Tabela prawdy funkcjonowania:

Do not allow saved  Prompt for creds  Works for 2008+ servers  Works for 2003 R2- servers
==================  ================  =======================  ==========================
Enabled             Enabled           No                       Yes
Enabled             Not Configured    No                       No
Not Configured      Enabled           Yes                      Yes
Not Configured      Not Configured    Yes                      Yes

Więc jest sztuczka. Ustawienia zasad grupy w:

Konfiguracja komputera \ Zasady \ Szablony administracyjne \ Składniki systemu Windows \ Usługi terminalowe \ Klient połączenia pulpitu zdalnego

na komputerze klienckim należy skonfigurować:

  • Nie zezwalaj na zapisywanie haseł: Nieskonfigurowane (krytyczne)
  • Monituj o poświadczenia na komputerze klienckim: Nieskonfigurowane

Innym źródłem zamieszania jest ten czas

  • zasada włączona w domenie nie może zastąpić lokalnej wyłączonej
  • domena niepełnosprawnych polityka może być przesłonięta przez lokalnego Włączone polityki

Co ponownie prowadzi do tabeli prawdy:

Domain Policy   Local Policy    Effective Policy
==============  ==============  ==============================
Not Configured  Not Configured  Not configured (i.e. disabled)
Not Configured  Disabled        Disabled
Not Configured  Enabled         Enabled
Disabled        Not Configured  Disabled
Disabled        Disabled        Disabled
Disabled        Enabled         Disabled (client wins)
Enabled         Not Configured  Enabled
Enabled         Disabled        Enabled (domain wins)
Enabled         Enabled         Enabled
Ian Boyd
źródło
1
W systemie Windows 10 jest to lokalizacja Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Connection Client.
Marc.2377
12

Ponieważ bezpośrednia odpowiedź na to pytanie już istnieje, zaproponuję alternatywne podejście.

Remote Desktop Connection Manager (RDCMan) to narzędzie napisane przez Juliana Burgera i używane wewnętrznie w Microsoft . Jest bardzo lekki i darmowy i moim zdaniem znacznie poprawia wydajność, szczególnie gdy utrzymujesz wiele połączeń. I tak, przechowuje również hasła (w pliku konfiguracyjnym xml).

Zalety:

  • Możesz organizować połączenia w hierarchie, które dziedziczą właściwości (np. Poświadczenia, ustawienia kolorów, rozdzielczość).
  • Cała konfiguracja, w tym hashowane hasła, jest przechowywana w jednym pliku - łatwe do przenoszenia między komputerami.
  • Lekki, bezpłatny, niezawodny.

Niedogodności:

  • Niektórym nie podoba się menu nawigacyjne po lewej, gdy nie jest w trybie pełnoekranowym. Osobiście szybko się do tego przyzwyczaiłem.

Menedżer połączeń pulpitu zdalnego

Zrzut ekranu z artykułu:
Jak Sysadmins RDP skutecznie korzysta z Menedżera połączeń pulpitu zdalnego

Paweł Bulwan
źródło
Z braku uzasadnienia / prawdziwej odpowiedzi (gpolicy jest w porządku dla obu moich) to służy. A dokładniej: działa. Przestał pytać dwukrotnie o hasło. (raz przez hosta (zapisany zapis rdp hasła w Win7) i raz przez zdalny (serwer 2012r2), chociaż jestem już zalogowany - po prostu dc'd)
bshea
Nie wiem, jak nigdy wcześniej tego nie używałem. Używam RDP DAILY na wielu serwerach. To oszczędność wydajności! ŁAŁ. Dziękuję Ci!
ScottN
6

Najbardziej szczegółowa odpowiedź już istnieje, zadana przez pytającego. Chcę tylko zauważyć, że ten problem może się również zdarzyć, gdy system operacyjny komputera klienckiego jest domową jednostką SKU, dlatego nie może być dostępny lokalny edytor GP, ani zasady domeny. Niemniej jednak klient może zachowywać się tak, jakby ustawiona była zasada zawsze pytająca o hasło (nie wiem, co powoduje takie domyślne - może jakiś program jest zainstalowany?).

Następnie przydatne jest ręczne ustawienie ustawienia rejestru (klient MS RDP sprawdza to; możesz je znaleźć za pomocą narzędzia takiego jak procmon). To jest tutaj:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]

"PromptForCredsOnClient"=dword:00000000

"DisablePasswordSaving"=dword:00000000
Mike Kaganski
źródło
3

Czytając pytania, natknąłem się na to ustawienie zasad grupy: Prompt for credentials on the client computerktóre wyłączyłeś .

MS Technet podaje następujące wyjaśnienie tego ustawienia:

Prompt for credentials on the client computer

To ustawienie zasad określa, czy użytkownik zostanie poproszony na komputerze klienckim o podanie poświadczeń dla zdalnego połączenia z serwerem terminali.

Jeśli włączysz to ustawienie zasad, użytkownik zostanie poproszony na komputerze klienckim - zamiast na serwerze terminali - o podanie poświadczeń dla zdalnego połączenia z serwerem terminali. Jeśli zapisane poświadczenia dla użytkownika są dostępne na komputerze klienckim, użytkownik nie zostanie poproszony o podanie poświadczeń.

Uwaga: Jeśli włączysz to ustawienie zasad, a na komputerze klienckim i na serwerze terminali zostanie wyświetlony monit o podanie poświadczeń, uruchom narzędzie konfiguracji usług terminalowych na serwerze terminali oraz w oknie dialogowym Właściwości połączenia wyczyść pole wyboru Zawsze pole wyboru monitu o hasło na karcie Ustawienia logowania.

Jeśli wyłączysz lub nie skonfigurujesz tego ustawienia zasad, wersja systemu operacyjnego na serwerze terminali określi, kiedy użytkownik zostanie poproszony o podanie poświadczeń dla zdalnego połączenia z serwerem terminali . W systemach Windows 2000 i Windows Server 2003 użytkownik zostanie poproszony na serwerze terminali o podanie poświadczeń dla połączenia zdalnego. W systemie Windows Server 2008 użytkownik zostanie poproszony na komputerze klienckim o podanie poświadczeń dla połączenia zdalnego.

Brzmi dokładnie tak, jak przed scenariuszem. Chcesz zapisać poświadczenia na komputerze klienckim, więc po prostu włącz to Prompt for credentials on the client computerustawienie.

mpy
źródło
3

W moim przypadku problemem było to, że *.rdpplik pobrany z Microsoft Azure miał następujący wiersz:

prompt for credentials:i:1

Zwykle sprawdzenie „poświadczeń zapisu” zmieniłoby ten wiersz, ale z jakiegoś powodu jest on również oznaczony jako „tylko do odczytu”.


Odznaczenie go jako „tylko do odczytu” i zmiana linii na

prompt for credentials:i:0

w notatniku naprawiono problem.

BlueRaja - Danny Pflughoeft
źródło
Doprowadzało mnie to do szału, musiałem szukać haseł i prawdopodobnie straciłem kilka godzin w ciągu ostatniego roku. Nie mam pojęcia, dlaczego to robią. Dzięki!
makhdumi,
2

Wypróbowałem wszystkie możliwe opcje i nic nie pomogło. Rozwiązałem problem, resetując hasło przechowywane w Windows Vault dla połączenia RDP.

Kroki do zrobienia:

  1. Kliknij prawym przyciskiem myszy ikonę połączenia RDP => Edytuj
  2. Wybierz „Zawsze pytaj o dane uwierzytelniające”
  3. Połączyć. Wprowadź prawidłowe hasło i wybierz „Zapamiętaj moje dane logowania”

To wszystko.

PS: Problem został spowodowany przez niektóre aktualizacje systemu Windows.

Igor
źródło
0

Sugeruję korzystanie z Royal TS , który zarządza danymi uwierzytelniającymi znacznie lepiej niż bałagan, jaki robi RDP Microsoftu.

Najnowsza wersja jest komercyjna, począwszy od 35 USD za licencję indywidualną.

Możesz też wybrać wersję 1.5.1 , która jest ostatnią darmową wersją, która wydaje się wystarczająca do wykonania zadania.

harrymc
źródło
Niestety RoyalTS nie obsługuje pełnoekranowego, 32-bitowego koloru, jest osobnym plikiem do pobrania. A przejście do innego klienta nie rozwiązuje problemu w tym kliencie.
Ian Boyd
Darmowa wersja obsługuje pełny ekran, ale w wersji 24-bitowej. Jeśli to nie wystarczy, być może nowa wersja komercyjna (dostępna wersja próbna) może działać lepiej.
harrymc
Gdybym miał RoyalTS: moje pytanie wciąż jest aktualne. Zwłaszcza dla osób, które nigdy nie były w stanie rozwiązać tego problemu przez ostatnie pięć lat; i przyszedł do SuperUser w nadziei na rozwiązanie.
Ian Boyd
Nie „reklamuj” płatnych lub udostępnianych produktów. To nie odpowiada na pytanie, a tego rodzaju „odpowiedzi” stają się dość denerwujące.
bshea
RDCMan jest odpowiedni bez wchodzenia w płatne lub okaleczone / lite / shareware „darmowe” oprogramowanie. Po co więc to dodawać? Wypróbuj superuser.com/a/606433/47628 - całkowicie za darmo.
bshea
0

Nie wiem dlaczego, ale zadziałało:

(W systemie Windows 7 Home Basic) Nie skonfigurowałem wstępnie nazwy użytkownika w oknie opcji Podłączania pulpitu zdalnego. Zamiast tego połączyłem się ze zdalnym hostem i czekałem na monit o poświadczenia (Windows Security). Następnie podałem poświadczenia (nazwę użytkownika i hasło) i zaznaczyłem opcję zapamiętania moich poświadczeń.

W systemie Windows 7 Home Basic nie ma edytora zasad grupy. Również RDCMan (jak zasugerowano w innej odpowiedzi ) nie pomógł.

dresh
źródło
Moja odpowiedź na system Windows 7 (Home Premium): eventvwr.exe: Jak zalogować blokowanie i odblokowywanie stacji roboczej oraz zdarzenia wywoływane i odrzucane wygaszacza ekranu pokazuje, jak zainstalować gpedit.msc w Windows Starter Edition, Home i Home Premium
DavidPostill