Use Cygwin. I use Ubuntu on Docker container but this will work easily without containered Ubuntu, i.e. full-blown Ubuntu machine on the same LAN as the Windows machine.
Just ignore the host container IP term. Host container IP == Ubuntu machine IP.
Ubuntu host container IP 192.168.1.20
Remote windows machine on same LAN IP 192.168.1.4
On ssh ubuntu container : sudo vim /etc/ssh/sshd_config:
X11UseLocalhost no
restart ssh server on Ubuntu
On remote Windows machine running Cygwin X server:
Open Cygwin bash
cd /cygdrive
On the bash startx -- -listen tcp &
export DISPLAY=192.168.1.4:0.0
xhost + 192.168.1.20
On the X term launched by running the command in step 3 do the same as in steps 4 and 5
On the xterm ssh -Y
Either use PuTTY. IP address docker host 192.168.1.20 and ssh port 22
Enable port forward SSH ---> X11 tick the enable port forward. In the same tab use the Display location remote windows machine 192.168.1.4:0.0 on which the remote Ubuntu container will throw its display
Click connect, enter credentials and run an X11-GUI like xeyes
Two eyes will appear on 192.168.1.4:0.0 remote windows machine not using linux display.
So no need to install a separate full-blown X11 server on Ubuntu, keeping the container lightweight
Oh yes, for xeyes you need to install some x-11 GUI apps, sudo apt-get install x11-apps.
Make sure you type in xeyes & so that it does not block the shell.
On the Xterminal you can do the same as in PuTTY. ssh -Y wasadmin@192.168.1.20. The -Y flag is required for trusted port forwarding. Once logged in type xeyes &.