Como verificar se o mstsc.exe configurou com êxito uma conexão RDP?

3

Usamos o mstsc.exe para estabelecer conexões RDP com outros servidores em arquivos em lotes, que são finalizados após a execução de algumas tarefas. Isso basicamente funciona bem, mas de vez em quando leva o mstsc.exe extraordinariamente longo para configurar a conexão. Existe uma maneira de verificar / sugerir que o mstsc concluiu a configuração do link com sucesso e que a conexão RDP pode ser usada?

AlvaHenrik
fonte

Respostas:

4

Você pode verificar se o logon do RDP foi bem-sucedido consultando o log de segurança do sistema de destino. Os eventos de logon são ID 4624, os logons RDP são do tipo 10. Outros tipos de logon https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4624

$user2find = "santaClaus"
$target = "server1234"
Get-winevent -comp $target -FilterHashtable @{Logname='security'; ID=4624; starttime=(get-date).addMinutes(-5)} | where {$_.properties[8].value -eq 10 -and $_.properties[5].value -eq $user2find}
Clayton
fonte
Obrigado, que funciona muito bem. Tive que adicionar um pequeno código para o problema de credenciais, mas ele faz exatamente o que eu precisava.
AlvaHenrik
0

Se você estiver usando arquivos em lote, o netstat provavelmente é sua ferramenta preferida. Supondo que você esteja executando mstsc /admin /v:SERVERNAME, você pode seguir essa linha com o comando:

netstat | findstr "ms-wbt-server"

"ms-wbt-server" indica uma conexão RDP e você pode verificar a saída% errorlevel% do comando findstr para ver se a sequência foi encontrada. Se o nível de erro for 0, foi encontrado e você pode prosseguir; se o nível de erro for 1, a sequência não foi encontrada.

SturdyErde
fonte
hm, muito obrigado pela sua resposta, mas no meu caso, receio que não seja tão útil. Brincando com ele, percebi que essa conexão TCP é estabelecida muito antes de a conexão RDP estar pronta para uso. Portanto, se o atraso for causado pelo handshake RDP, ele não funcionará.
AlvaHenrik
Estou curioso para saber como você está utilizando uma conexão RDP para executar ferramentas de linha de comando ... ou pelo menos é o que parece que você está tentando fazer. Além disso, este comando foi sugerido porque você disse que estava usando arquivos em lote. Eu teria adotado uma abordagem totalmente diferente se você indicasse o PowerShell. :)
SturdyErde
É ainda pior. Utilizamos ferramentas de linha de comando do HP ALM que permitem executar testes em máquinas remotas. Mas para que isso funcione, é necessário que haja uma conexão RDP já estabelecida com essa máquina remota. Então, o que fazemos é iniciar o RDP com o mstsc.exe, esperar e orar e, em seguida, usar essa ferramenta da HP. Quando termina, matamos a conexão RDP novamente. É uma configuração realmente estranha. :-)
AlvaHenrik
11
Foge chorando
SturdyErde