Hi,
I'm not affiliated with the PyPSA team, and follow my instructions at your own peril :-P
There are a few steps necessary to get HiGHS to work with PyPSA in Windows. My memory is a little hazy about the steps here, and I'm not on my work computer to check properly, but this should be the gist of it.
First you need the binaries found on the Julia project linked to from the HiGHS github page. Put the highs.exe file in some known directory and add this directory path to the PATH environment variables in Windows. Once that is done you should be able to just run "highs" in your terminal. The first time I did this, I ran into several messages that said I was missing some different lib-files. I think what sorted that out was to follow the instructions on the HiGHS github about shared libraries.
Once you have gathered all the missing files in the same directory where you put the highs.exe file, you're good to go. I think there are a total of six additional files, and I think they are all in the shared library tarball you find from the HiGHS github link. I seem to remember finding at least one of the missing dll's through some basic googling.
To get HiGHS to actually play nice with PyPSA, a few tweaks are necessary. If you are using the most recent versions of PyPSA, where linopy is integrated (I think mostly the newly released 0.21 version, though I had it working on 0.20.3 as well), you have to use linopy==0.0.13, NOT 0.0.14. The 14 version relies on the highspy package which does not work on Windows at all. The drawback to this is that in order to use HiGHS in the linopy==0.0.13 version, you have to modify the function that runs the "highs" command through subprocess from PyPSA. If you are using an older version of PyPSA, you're on your own, as I never worked with it before 0.20.3.
In the linopy subdirectory you will find a file called solvers.py, and in it a function called "run_highs". There are two typos in this function that prevent highs from working. I've attached my fixed version of the function (which I still need to find time to notify the PyPSA team about, including a PR). Comparing it to the original function in the linopy directory you will see some more differences than just two typos, as I had to modify the function to work properly with unit commitment highs output too.
Anyway, I hope this sets you up!
All the best,
Jonas