it-swarm.com.de

Zulassen, dass Benutzer das abgelaufene Kennwort über eine Remotedesktopverbindung ändern

INFORMATION:

  • Ich habe eine Situation, in der ich gezwungen bin, einen Server (Windows 2012 R2) zu verwenden, der NICHT Teil einer Domäne ist und KEINE AD hat. Dies ist nicht meine Wahl, ist nicht optimal, aber außerhalb meiner Kontrolle.

  • Ich habe auch lokale Benutzer, die über RDP eine Verbindung zu diesem Server herstellen, und die lokalen Benutzer haben eine Kennwortablaufrichtlinie.

  • Da AD/Exchange nicht Teil des Bildes ist, erhalten die Benutzer keine Benachrichtigung, dass ihre Kennwörter bald ablaufen.

PROBLEM: Das Problem ist, wenn das Kennwort eines Benutzers abgelaufen ist und er versucht, sich über eine Remotedesktopverbindung anzumelden. Es erlaubt ihnen nicht, ihr Passwort zu ändern.

Ich habe die Option "NUR Verbindungen von Computern mit Remotedesktop und Authentifizierung auf Netzwerkebene zulassen" auf der Serverseite deaktiviert, sodass der Server für eingehende RDP-Sitzungen KEINE NLA benötigt.

Bei Verwendung des Windows-Remotedesktopverbindungs-Managers scheint NLA erzwungen zu werden.

Wenn ich den Remotedesktop-Client "Terminals" verwende, gibt es auf der Clientseite eine Option zum Deaktivieren der Authentifizierung auf Netzwerkebene. Wenn ich NLA über den Terminals-Client deaktiviere und eine Verbindung zum Server herstelle, kann ich das abgelaufene Kennwort des Benutzers ändern.

FRAGE: Ich gehe möglicherweise fälschlicherweise davon aus, dass das Terminals-Programm nur auf Windows-Remotedesktopverbindungsprotokollen sitzt und dass Sie, wenn Sie die Authentifizierung auf Netzwerkebene über das Terminals-Programm deaktivieren können, dies tun sollten Sie können dies auch über den in Windows integrierten Remotedesktop-Verbindungs-Manager deaktivieren. Leider wird diese Option in der GUI des Verbindungsmanagers nicht angezeigt, und in NLA-spezifischen ".RDP" -Dateien werden keine Parameter angezeigt.

Wenn ich auf dem Client auf "Info" klicke, wird "Authentifizierung auf Netzwerkebene unterstützt" angezeigt. Die Formulierung lässt mich glauben, dass die Verwendung optional ist, aber ich sehe auch hier keine Möglichkeit, sie im Verbindungsmanager zu deaktivieren. Übrigens, dieser spezielle Verbindungsmanager ist v10.

13
guht

Es stellt sich heraus, dass dies über eine nicht aufgeführte Eigenschaft in der RDP-Konfigurationsdatei mit dem Namen "enablecredsspsupport" gesteuert wird. Wenn Sie diese auf "0" setzen, wird die Anmeldeseite in einer RDP-Sitzung geladen und ein Benutzer kann sein abgelaufenes Kennwort ändern.

Die genaue Syntax, die in der .RDP-Konfigurationsdatei benötigt wird, lautet:

enablecredsspsupport: i: 0

Wenn Sie weitere Informationen benötigen, gehen Sie hier: Die Tyrannei der Authentifizierung auf Netzwerkebene und CredSSP

9
guht

Sie können dies mit einem zweigleisigen Ansatz lösen:

1. Installieren Sie die Web Access-Rolle für Remotezugriff, und aktivieren Sie die Option zum Ändern des Remotekennworts

Die folgenden Anweisungen stammen aus dem woshub.com-Artikel Benutzern erlauben, abgelaufene Kennwörter über RD WebAccess in Windows Server 2012 zurückzusetzen :

In Windows 2012/2012 R2 wurde eine Option angezeigt, mit der ein Remotebenutzer sein (aktuelles oder abgelaufenes) Kennwort mithilfe einer speziellen Webseite auf dem RD Web Access-Server ändern kann. Das Kennwort wird folgendermaßen geändert: Ein Benutzer meldet sich auf der Registrierungswebseite auf dem Server mit der RD-Webzugriffsrolle an und ändert sein Kennwort mithilfe eines speziellen Formulars.

Auf dem Server mit der Remotedesktop-Webzugriffsrolle (RD-Webzugriff) ist eine Option zum Ändern des Remotekennworts verfügbar, die jedoch standardmäßig deaktiviert ist. Um ein Passwort zu ändern, wird ein Skript password.aspx verwendet, das sich in C:\Windows\Web\RDWeb\Pages\de-DE befindet.

  1. Um die Option zum Ändern des Kennworts zu aktivieren, öffnen Sie auf dem Server mit der konfigurierten RD Web Access-Rolle die Konsole IIS Manager. Gehen Sie zu [Servername] -> Sites -> Standardwebsite -> RDWeb - > Seiten und öffnen Sie den Bereich Anwendungseinstellungen .

     enter image description here

  2. Suchen Sie im rechten Bereich nach PasswordChangeEnabled parameter und ändern Sie den Wert in true .

     enter image description here

  3. Sie können den Kennwortänderungsmechanismus testen, indem Sie auf die folgende Webseite gehen:

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

     enter image description here

  4. Wenn nun versucht wird, mit dem abgelaufenen Kennwort eine Verbindung zum RD Web Access-Server herzustellen, wird ein Benutzer zur password.aspx-Webseite umgeleitet und aufgefordert, sein Kennwort zu ändern.

     enter image description here

    Tipp . Die gleiche Windows Server 2008 R2-Funktion ist möglicherweise verfügbar, nachdem Sie einen speziellen Patch installiert haben - KB2648402 .


2. Aktivieren Sie Eingabeaufforderungen, mit denen Benutzer über den Ablauf des ausstehenden Kennworts benachrichtigt werden

  1. Führen Sie gpedit.msc auf dem RDSH-Server aus, um die lokale Gruppenrichtlinie zu öffnen
  2. Nagivate zu Computer Configuration\Windows Settings\Local Policies\Security Options
  3. Bearbeiten Sie die Einstellung Interaktive Anmeldung: Fordern Sie den Benutzer auf, das Kennwort vor dem Ablauf zu ändern und geben Sie eine angemessene Anzahl von Tagen an, z. B. 14.
  4. Benutzer, einschließlich der über Remotedesktop angemeldeten Benutzer, erhalten vor Ablauf ihres Kennworts eine Benachrichtigung.
12

Keine der Optionen hat bei mir funktioniert, da ich NLA aktiviert habe. Hier ist eine Möglichkeit, dies über PowerShell zu ändern - vollständige Beschreibung zu So ändern Sie Ihr eigenes abgelaufenes Passwort, wenn Sie sich nicht bei RDP anmelden können .

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

Führen Sie einfach Set-PasswordRemotely aus und es werden Ihnen 4 Fragen gestellt - Benutzername, altes Kennwort, neues Kennwort, Domänencontroller und ändern Sie das Kennwort für Sie. Es funktioniert auch auf einem PC ohne Domänenbeitritt. Benötigt Konnektivität zu DC.

0
MadBoy