Permitir que os usuários alterem a senha expirada via conexão de área de trabalho remota

13

EM FORMAÇÃO:

  • Tenho uma situação em que sou forçado a usar um servidor (Windows 2012 R2) que NÃO faz parte de um domínio e NÃO possui AD. Esta não é minha escolha, não é ideal, mas está fora de meu controle.

  • Também tenho usuários locais que se conectam a este servidor através do RDP, e os usuários locais têm uma política de expiração de senha.

  • Como o AD / Exchange não faz parte da imagem, os usuários não recebem nenhuma notificação de que suas senhas estão prestes a expirar.

PROBLEMA: O problema é quando a senha de um usuário expirou e eles tentam fazer login usando uma Conexão de Área de Trabalho Remota. Não permite que eles alterem sua senha.

Desmarquei a opção "Permitir conexões somente de computadores executando a Área de trabalho remota com autenticação no nível da rede" no lado do servidor, para que o servidor NÃO exija NLA das sessões RDP recebidas.

No entanto, ao usar o Gerenciador de Conexão da Área de Trabalho Remota do Windows, parece estar forçando o NLA.

Se eu estiver usando o cliente de área de trabalho remota "Terminais", existe uma opção no lado do cliente para desativar o uso de "Autenticação no nível da rede". Se eu desabilitar o NLA através do cliente Terminais e me conectar ao servidor, ele permitirá que eu altere a senha expirada dos usuários.

PERGUNTA: Estou supondo, talvez incorretamente, que o programa Terminals esteja apenas sobre os protocolos de Conexão da Área de Trabalho Remota do Windows e que, se você puder desabilitar o lado do cliente de Autenticação no Nível de Rede através do programa Terminals, também poderá desative isso através do Gerenciador de Conexão da Área de Trabalho Remota interno do Windows. Infelizmente, não vejo essa opção na GUI do gerenciador de conexões e não vejo parâmetros nos arquivos ".RDP" específicos do NLA.

Se eu clicar em "Sobre" no Gerenciador de Conexão da Área de Trabalho Remota do lado do cliente, ele informa que "Autenticação no nível da rede é suportada". A redação me leva a acreditar que o uso é opcional, mas, novamente, não vejo como desativá-lo no gerenciador de conexões. BTW, esse gerenciador de conexões em particular é a v10.

guht
fonte
1
Editei sua pergunta (especificamente o título) para focar em seu objetivo subjacente, em vez de em um método proposto para atingir esse objetivo. Veja o problema XY .
Eu digo Reinstate Monica

Respostas:

13

Você pode resolver isso com uma abordagem em duas frentes:

1. Instale a função Acesso via Web RD e ative a opção de alteração remota de senha

As instruções a seguir são do artigo woshub.com Permitir que os usuários redefinam a senha expirada via RD WebAccess no Windows Server 2012 :

No Windows 2012/2012 R2, apareceu uma opção que permite que um usuário remoto altere sua senha (atual ou expirada) usando uma página da Web especial no servidor RD Web Access. A senha será alterada da seguinte maneira: um usuário fará login na página da Web de registro no servidor com a função Acesso via Web RD e altera sua senha usando um formulário especial.

Uma opção de alteração remota de senha está disponível no servidor com a função Acesso via Web à Área de Trabalho Remota (Acesso via Web RD), mas está desativada por padrão. Para alterar uma senha, é usado um script password.aspx , localizado em C: \ Windows \ Web \ RDWeb \ Pages \ en-US .

  1. Para habilitar a opção de alteração de senha, no servidor com a função RD Web Access configurada, abra o console do Gerenciador do IIS, vá para [Nome do Servidor] -> Sites -> Site Padrão -> RDWeb -> Páginas e abra a seção Configurações do Aplicativo .

    insira a descrição da imagem aqui

  2. No painel direito, localize o parâmetro PasswordChangeEnabled e altere seu valor para true .

    insira a descrição da imagem aqui

  3. Você pode testar o mecanismo de alteração de senha, acessando a seguinte página da web:

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

    insira a descrição da imagem aqui

  4. Agora, ao tentar se conectar ao servidor RD Web Access com a senha expirada, um usuário será redirecionado para a página da web password.aspx e oferecido para alterar sua senha.

    insira a descrição da imagem aqui

    Dica . O mesmo recurso do Windows Server 2008 R2 pode se tornar disponível após a instalação de um patch especial - KB2648402 .


2. Ativar prompts notificando os usuários sobre a expiração de senha pendente

  1. Execute gpedit.mscno servidor RDSH para abrir a Diretiva de Grupo Local
  2. Nagivate to Computer Configuration\Windows Settings\Local Policies\Security Options
  3. Edite a configuração Logon interativo: solicita que o usuário altere a senha antes da expiração e especifique um número razoável de dias, como 14.
  4. Os usuários, incluindo aqueles que efetuaram login na Área de Trabalho Remota, receberão uma notificação antes da expiração da senha.
Eu digo Restabelecer Monica
fonte
Obrigado @twisty, eu deveria ter mencionado que instalar a função de servidor de área de trabalho remota também não era uma opção. No entanto, essa é uma ótima informação para outra pessoa em uma situação semelhante. As instruções são uma boa coisa para saber!
guht
3
Então você não tem escolha a não ser desativar o NLA no servidor e nos clientes para permitir que eles alterem sua senha. Perigosamente, isso reduz significativamente a segurança das conexões RDP.
Eu digo Reinstate Monica
10

Acontece que isso é controlado através de uma propriedade não listada no arquivo de configuração .RDP chamado "enablecredsspsupport". Ao definir como "0", ele carrega a página de login em uma sessão RDP e permite que o usuário altere sua senha expirada.

A sintaxe exata necessária no arquivo de configuração .RDP é:

enablecredsspsupport: i: 0

Se você precisar de mais referências ou leitura, acesse aqui: A Tirania da Autenticação no Nível da Rede e do CredSSP

guht
fonte
7
Isso funciona apenas se o NLA não for exigido pelo servidor. Caso contrário, você receberá uma mensagem informando que o suporte no nível da rede é necessário pelo computador remoto, mas não no computador local. Você deve explicar o que essa configuração realmente faz, possivelmente citando um parágrafo do artigo vinculado.
simlev 3/08
1
Nota: clicar no botão Salvar em Conexão de área de trabalho remota criará o arquivo de configuração Default.rdc. (Clique no botão Salvar como para ver em qual diretório o arquivo está armazenado.) Esse é o arquivo a ser editado, se você desejar essa configuração por padrão. Ou você pode colocá-lo em um arquivo .RDP diferente que você abre manualmente quando necessário.
Bampfer
3

Nenhuma das opções funcionou para mim desde que eu tenho o NLA ativado. Aqui está uma maneira de alterá-lo via PowerShell - história completa em Como alterar sua própria senha expirada quando você não pode fazer login no 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.'
    }
}

Basta executar Set-PasswordRemotelye ele fará 4 perguntas - nome de usuário, senha antiga, nova senha, controlador de domínio e alterará a senha para você. Também funciona a partir de PCs não pertencentes ao domínio. Requer conectividade com o DC.

MadBoy
fonte
você pode usar ECHO% LOGONSERVER% para obter o seu controlador de domínio, este eo PowerShell acima funcionou muito bem
kevinsky