diff --git a/lib/srv/desktop/windows_server.go b/lib/srv/desktop/windows_server.go index ded417b25587a..30cb97c54d25f 100644 --- a/lib/srv/desktop/windows_server.go +++ b/lib/srv/desktop/windows_server.go @@ -763,8 +763,7 @@ func (s *WindowsService) handleConnection(proxyConn *tls.Conn) { return } if len(desktops) == 0 { - log.Error("no windows desktops with HostID %s and Name %s", s.cfg.Heartbeat.HostUUID, - desktopName) + log.Errorf("desktop %v/%v not found", s.cfg.Heartbeat.HostUUID, desktopName) sendTDPError(fmt.Sprintf("Could not find desktop %v.", desktopName)) return } @@ -798,6 +797,11 @@ func (s *WindowsService) connectRDP(ctx context.Context, log logrus.FieldLogger, return trace.Wrap(err) } + addr, err := utils.ParseHostPortAddr(desktop.GetAddr(), defaults.RDPListenPort) + if err != nil { + return trace.Wrap(err) + } + sessionID := session.NewID() // in order for the session to be recorded, the cluster's session recording mode must @@ -875,7 +879,7 @@ func (s *WindowsService) connectRDP(ctx context.Context, log logrus.FieldLogger, return s.generateUserCert(ctx, username, ttl, desktop, createUsers, groups) }, CertTTL: windows.CertTTL, - Addr: desktop.GetAddr(), + Addr: addr.String(), Conn: tdpConn, AuthorizeFn: authorize, AllowClipboard: authCtx.Checker.DesktopClipboard(),