Autoriser les utilisateurs à modifier le mot de passe expiré via une connexion Bureau à distance


13

INFORMATION:

  • J'ai une situation où je suis obligé d'utiliser un serveur (Windows 2012 R2) qui NE fait PAS partie d'un domaine et n'a PAS AD. Ce n'est pas mon choix, ce n'est pas optimal, mais hors de mon contrôle.

  • J'ai également des utilisateurs locaux qui se connectent à ce serveur via RDP, et les utilisateurs locaux ont une politique d'expiration de mot de passe.

  • Étant donné qu'AD / Exchange ne fait pas partie de l'image, les utilisateurs ne reçoivent aucune notification indiquant que leurs mots de passe sont sur le point d'expirer.

PROBLÈME: Le problème est lorsque le mot de passe d'un utilisateur a expiré et qu'il essaie de se connecter à l'aide d'une connexion Bureau à distance. Cela ne leur permet pas de changer leur mot de passe.

J'ai décoché la case "Autoriser les connexions UNIQUEMENT à partir d'ordinateurs exécutant le Bureau à distance avec l'authentification au niveau du réseau" du côté serveur, de sorte que le serveur n'exige PAS NLA des sessions RDP entrantes.

Cependant, lorsque vous utilisez le Gestionnaire de connexion Windows Remote Desktop, il semble forcer NLA.

Si j'utilise le client de bureau à distance "Terminaux", il existe une option côté client, pour désactiver l'utilisation de "l'authentification au niveau du réseau". Si je désactive NLA via le client Terminals et que je me connecte au serveur, cela me permet de modifier le mot de passe expiré des utilisateurs.

QUESTION: Je fais l'hypothèse, peut-être à tort, que le programme Terminals est juste au-dessus des protocoles de connexion au Bureau à distance Windows, et que si vous pouvez désactiver le côté client de l'authentification au niveau du réseau via le programme Terminals, vous devriez également pouvoir désactivez-le via le Gestionnaire de connexion Bureau à distance intégré de Windows. Malheureusement, je ne vois pas cette option dans l'interface graphique des gestionnaires de connexions, et je ne vois aucun paramètre dans les fichiers ".RDP" spécifiques à NLA.

Si je clique sur «À propos» du Gestionnaire de connexion Bureau à distance côté client, il m'indique que «l'authentification au niveau du réseau est prise en charge». Le libellé me ​​porte à croire que son utilisation est facultative, mais encore une fois, je ne vois aucun moyen de le désactiver dans le gestionnaire de connexions. BTW, ce gestionnaire de connexions particulier est la v10.


1
J'ai modifié votre question (le titre en particulier) pour vous concentrer sur votre objectif sous-jacent, au lieu d'une méthode proposée pour atteindre l'objectif. Voir le problème XY .
Je dis Reinstate Monica

Réponses:


13

Vous pouvez résoudre ce problème avec une approche à deux volets:

1. Installez le rôle RD Web Access et activez l'option de changement de mot de passe à distance

Les instructions suivantes sont extraites de l'article woshub.com Autoriser les utilisateurs à réinitialiser le mot de passe expiré via RD WebAccess dans Windows Server 2012 :

Dans Windows 2012/2012 R2, une option est apparue qui permet à un utilisateur distant de modifier son mot de passe (actuel ou expiré) à l'aide d'une page Web spéciale sur le serveur d'accès Web RD. Le mot de passe sera changé comme ceci: un utilisateur se connecte à la page Web d'enregistrement sur le serveur avec le rôle RD Web Access et change son mot de passe à l'aide d'un formulaire spécial.

Une option de modification de mot de passe à distance est disponible sur le serveur avec le rôle Accès Web Bureau à distance (RD Web Access), mais elle est désactivée par défaut. Pour modifier un mot de passe, un script password.aspx est utilisé, qui se trouve dans C: \ Windows \ Web \ RDWeb \ Pages \ en-US .

  1. Pour activer l'option de changement de mot de passe, sur le serveur avec le rôle d'accès Web RD configuré, ouvrez la console du gestionnaire IIS, accédez à [Nom du serveur] -> Sites -> Site Web par défaut -> RDWeb -> Pages et ouvrez la section Paramètres d'application .

    entrez la description de l'image ici

  2. Dans le volet droit, recherchez le paramètre PasswordChangeEnabled et remplacez sa valeur par true .

    entrez la description de l'image ici

  3. Vous pouvez tester le mécanisme de changement de mot de passe sur la page Web suivante:

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

    entrez la description de l'image ici

  4. Désormais, lorsque vous essayez de vous connecter au serveur RD Web Access avec le mot de passe expiré, un utilisateur sera redirigé vers la page Web password.aspx et proposera de changer son mot de passe.

    entrez la description de l'image ici

    Astuce . La même fonctionnalité Windows Server 2008 R2 peut devenir disponible après avoir installé un correctif spécial - KB2648402 .


2. Activer les invites informant les utilisateurs de l'expiration du mot de passe en attente

  1. Exécuter gpedit.mscsur le serveur RDSH pour ouvrir la stratégie de groupe locale
  2. Nagivate to Computer Configuration\Windows Settings\Local Policies\Security Options
  3. Modifiez le paramètre Ouverture de session interactive: invitez l'utilisateur à modifier le mot de passe avant l'expiration et spécifiez un nombre raisonnable de jours, par exemple 14.
  4. Les utilisateurs, y compris ceux connectés via Remote Desktop, recevront une notification avant l'expiration de leur mot de passe.

Merci @twisty, j'aurais dû mentionner que l'installation du rôle serveur de bureau à distance n'était pas non plus une option. Cependant, c'est une excellente information pour quelqu'un d'autre dans une situation similaire. Les invites sont une bonne chose à savoir cependant!
guht

3
Ensuite, vous n'avez d'autre choix que de désactiver NLA sur le serveur et les clients afin de leur permettre de changer leur mot de passe. Dangereusement, cela réduit considérablement la sécurité des connexions RDP.
Je dis Reinstate Monica

10

Il s'avère que cela est contrôlé via une propriété non répertoriée dans le fichier de configuration .RDP appelée "enablecredsspsupport", en définissant ce paramètre sur "0", il charge la page de connexion dans une session RDP et permet à un utilisateur de modifier son mot de passe expiré.

La syntaxe exacte requise dans le fichier de configuration .RDP est:

enablecredsspsupport: i: 0

Si vous avez besoin de plus de référence ou de lecture, allez ici: La tyrannie de l'authentification au niveau du réseau et CredSSP


7
Cela ne fonctionne que si NLA n'est pas requis par le serveur. Sinon, vous recevrez un message indiquant que la prise en charge au niveau du réseau est requise par l'ordinateur distant mais non prise en charge sur l'ordinateur local. Vous devez expliquer ce que ce paramètre fait réellement, en citant éventuellement un paragraphe de l'article lié.
simlev

1
Remarque: cliquez sur le bouton Enregistrer dans Connexion Bureau à distance pour créer le fichier de configuration Default.rdc. (Cliquez sur le bouton Enregistrer sous pour voir dans quel répertoire le fichier est stocké.) C'est le fichier à modifier si vous souhaitez ce paramètre par défaut. Ou vous pouvez le placer dans un autre fichier .RDP que vous ouvrez manuellement lorsque vous en avez besoin.
Bampfer

3

Aucune des options n'a fonctionné pour moi car j'ai activé l'ALN. Voici un moyen de le changer via PowerShell - histoire complète sur Comment changer votre propre mot de passe expiré lorsque vous ne pouvez pas vous connecter à 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.'
    }
}

Exécutez simplement Set-PasswordRemotelyet il vous posera 4 questions - nom d'utilisateur, ancien mot de passe, nouveau mot de passe, contrôleur de domaine et changer le mot de passe pour vous. Il fonctionne également à partir d'un PC non lié à un domaine. Nécessite une connectivité à DC.


vous pouvez utiliser ECHO% LOGONSERVER% pour obtenir votre contrôleur de domaine, cela et le PowerShell ci-dessus ont très bien fonctionné
kevinsky
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.