Not that I would defend M$, but the cost of the operating system and the software is a fraction of the cost of the machines it runs and and the personnel that use it.
Retraining thousands of employees to use Open source products might be more expensive than the cost of the operating system & software.
Then there's the problem that almost always there will be essential software that only runs on MS desktops.
And then there's hardware compatibility issues.