diff --git a/lib/srv/desktop/windows_server.go b/lib/srv/desktop/windows_server.go index 94deec7f23254..0e018c0cc83c9 100644 --- a/lib/srv/desktop/windows_server.go +++ b/lib/srv/desktop/windows_server.go @@ -27,6 +27,7 @@ import ( "errors" "fmt" "log/slog" + "maps" "net" "os" "strconv" @@ -1119,10 +1120,10 @@ func (s *WindowsService) staticHostHeartbeatInfo(host servicecfg.WindowsHost, ) func() (types.Resource, error) { return func() (types.Resource, error) { addr := host.Address.String() + labels := getHostLabels(addr) - for k, v := range host.Labels { - labels[k] = v - } + maps.Copy(labels, host.Labels) + name := host.Name if name == "" { var err error @@ -1131,14 +1132,21 @@ func (s *WindowsService) staticHostHeartbeatInfo(host servicecfg.WindowsHost, return nil, trace.Wrap(err) } } + labels[types.OriginLabel] = types.OriginConfigFile labels[types.ADLabel] = strconv.FormatBool(host.AD) + + var domain string + if host.AD { + domain = s.cfg.Domain + } + desktop, err := types.NewWindowsDesktopV3( name, labels, types.WindowsDesktopSpecV3{ Addr: addr, - Domain: s.cfg.Domain, + Domain: domain, HostID: s.cfg.Heartbeat.HostUUID, NonAD: !host.AD, })