Сначала узнаём, через что в принципе можно программно управлять вентиляторами:
https://stackoverflow.com/questions/485448/program...
Узнаём, что вентиляторы управляются через SuperIO, а к SuperIO можно обратиться через MMIO/PMIO.
К MMIO/PMIO можно обратиться только на уровне ядра - значит нужен свой драйвер, либо какой-то уже существующий софт, у которого есть API, к которому мы можем обратиться.
За своими драйверами идём сюда:
https://docs.microsoft.com/en-us/windows-hardware/...
За существующими:
https://github.com/starofrainnight/winio
Потом вызываешь его через
P/Invoke
Кажется, на хабре ещё не так давно статья была про такое, но не могу её найти.